1

我正在尝试连接到 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。但是,我不能通过这条启蒙线。

4

0 回答 0