QuickFix - ' ObjectDisposedException' NewOrderSingle上的错误

时间:2017-03-01 14:02:18

标签: c# quickfix forex

我正在使用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中的同一帐户上,它可以正常工作。

1 个答案:

答案 0 :(得分:1)

问题解决了。 忘了设置所需的交易对象的TransactTime字段:

oc.SetField(TransactTime);