0

我正在研究 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.dll 中出现“System.ObjectDisposedException”类型的第一次机会异常

出现同样的错误@

RequestForPositions 和 OrderStatusRequest

在使用 NetworkStream 而不是 QuickFix lib 的 api 中的同一帐户上,它工作正常。

4

1 回答 1

1

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

oc.SetField(TransactTime);
于 2017-03-29T19:50:05.687 回答