我正在尝试连接到 ForexTrading 经纪人 FIX API 并进行一些交易。
我尽力通读了.net 的 Quickfix。并且几乎了解 quickfix 的工作过程。但是,当我尝试启动 socketinitiator 时,我没有这样做,并且 VS 2012 没有任何投诉和异常。它只是卡在那里。
这是我的代码:
private void iFind_ItemClick(object sender, ItemClickEventArgs e)
{
try
{
QuickFix.SessionSettings settings = new QuickFix.SessionSettings("C:\\Users\\Administrator\\Documents\\My Box Files(shewenhao@hotmail.com)\\Work With Mr.Liu\\ForexAutoTradingSystem\\ForexAutoTradingSystem\\integralfix.cfg");
IntegralFixAPI integralFixAPIApplication = new IntegralFixAPI();
QuickFix.IMessageStoreFactory storeFactory = new QuickFix.FileStoreFactory(settings);
QuickFix.ILogFactory logFactory = new QuickFix.ScreenLogFactory(settings);
QuickFix.Transport.SocketInitiator initiator = new QuickFix.Transport.SocketInitiator(
integralFixAPIApplication, storeFactory, settings, logFactory);
MessageBox.Show(settings.ToString());
integralFixAPIApplication.MyInitiator = initiator;
initiator.Start();
while (true)
{
Thread.Sleep(200);
MessageBox.Show("true");
}
//initiator.Stop();
}
catch (System.Exception systeme)
{
Console.WriteLine(systeme.Message);
Console.WriteLine(systeme.StackTrace);
}
}
您可能会注意到我在 SocketInitiator 正下方有一个 MessageBox,它在 QuickFix.Transport.SocketInitiator 行之前弹出。我不明白为什么我在这一点上失败了。在 quickfix .Net http://quickfixn.org/tutorial/creating-an-application的页面上,它说您只需用 socketinitiator 替换 threadedacceptor。但是,我不能通过这条启蒙线。