我正在使用FxPro Ctrader代理(FIX 4.4),并且我正在尝试使用QuickFix / n库(1.7.0.0)在C#中创建FixApi。
我坚持使用NewOrderSingle': 登录成功后,我试图下订单:
class TradeConnection : MessageCracker, IApplication
{
public void OnLogon(SessionID sessionID)
{
Write.Info("Account TRADE successful logged " + sessionID);
sendOrder();
}
public void sendOrder()
{
NewOrderSingle oc = new NewOrderSingle();
ClOrdID ID = new ClOrdID("1408479");
Symbol symb = new Symbol("1");
Side side = new Side('1');
OrderQty lots = new OrderQty(1000);
OrdType type = new OrdType('1');
TransactTime TransactTime = new TransactTime(DateTime.Now);
TimeInForce TimeInForce = new TimeInForce('3');
oc.SetField(ID);
oc.SetField(symb);
oc.SetField(side);
oc.SetField(lots);
oc.SetField(type);
oc.SetField(TimeInForce);
send(oc);
}
public void send(QuickFix.Message message)
{
Session.SendToTarget(message, sessionID);
}
}
不幸的是,它没有工作,我收到错误:
类型' System.ObjectDisposedException'的第一次机会异常。发生在System.dll
中
@
出现相同的错误RequestForPositions和OrderStatusRequest
在使用NetworkStream而不是QuickFix lib的api中的同一帐户上,它可以正常工作。
答案 0 :(得分:1)
问题解决了。 忘了设置所需的交易对象的TransactTime字段:
oc.SetField(TransactTime);