【问题标题】:FIX protocol using java使用 java 的 FIX 协议
【发布时间】:2012-02-07 08:28:33
【问题描述】:

我使用Financial Information eXchange(FIX) 协议在Java 中开发了一个实用程序,用于从输入流中提取数据。但是,我目前还没有找到任何可以连接到实现 FIX 协议的在线测试服务器。有人可以告诉我如何实现这一目标吗?

【问题讨论】:

  • 有一个问题,既然有开源引擎可用,为什么要构建自己的引擎?您可以为自己定制。
  • 感谢 DumbCoder 的评论。我还没有建立自己的引擎。相反,我在 quickfixj 之上构建了我的实用程序。但是,我想连接到一个测试服务器,从那里我可以使用 FIX 协议提取流媒体价格。你知道是否有任何测试服务器可以帮助我实现这一目标?

标签: java protocols fix-protocol


【解决方案1】:

http://www.quickfixj.org/ 有一个开源修复引擎。它带有一个具有简单服务器的示例。您可能也想为客户端使用他们的库,而不是从头开始重建 FIX 引擎...

【讨论】:

  • 感谢您的 assylias。我已经检查了示例客户端/服务器应用程序,但我正在寻找的是连接到测试服务器,我的程序可以从那里拉取流媒体价格。
  • 我不知道有免费的测试服务器,但大多数经纪人都可以为您提供登录名来运行一些测试。因此,无论您尝试联系的人都应该能够提供帮助。或者,您可以在 quickfixj 中修改服务器的代码以返回随机价格...
  • 也不确定您所说的流式价格是什么意思,您是指执行价格吗?或者例如询价后的价格?
  • 感谢 assylias。我的意思是一个RFQ。所以基本上,我会向服务器传递一条初始消息,其中包含我想要的流媒体价格(报价)的产品,然后我会每 500 毫秒左右轮询一次服务器以获取这些价格。 quickfixj 中的示例服务器是否推出了流媒体价格?到目前为止,我无法看到它。我是否需要启用某些东西才能看到这种情况发生?
  • 我认为您无法通过示例获得流媒体价格,因此您需要对其进行修改...
【解决方案2】:

您可以使用CoralFIX 快速启动测试服务器。它负责处理所有会话级别的 FIX 消息,例如 Logon、ResendRequest、SequenceReset、Heartbeat,以便您准备好开始与客户端交换消息。下面是一个简单的例子:

import com.coralblocks.coralfix.FixMessage;
import com.coralblocks.coralreactor.client.Client;
import com.coralblocks.coralreactor.nio.NioReactor;
import com.coralblocks.coralreactor.util.Configuration;
import com.coralblocks.coralreactor.util.MapConfiguration;

public class SimpleFixApplicationServer extends FixApplicationServer {

    public SimpleFixApplicationServer(NioReactor nio, int port, Configuration config) {
        super(nio, port, config);
    }

    @Override
    protected void handleFixApplicationMessage(Client client, FixMessage fixMsg, boolean possDupe) {
        // do whatever you want to do with the application message received from this client...
    }

    public static void main(String[] args) {

        NioReactor nio = NioReactor.create();

        MapConfiguration config = new MapConfiguration();

        // print all messages received and sent to STDOUT for debugging purposes
        // (default is false)
        config.add("debugMessages", "true");

        // accept as the client inbound sequence whatever 
        // sequence I receive in the first message coming from the client
        // (default is false)
        config.add("acceptInboundSeqFromClient", "false");

        Server server = new SimpleFixApplicationServer(nio, 45451, config);

        server.open();
        nio.start();
    }
}

上面代码的完整解释可以在here找到。

免责声明:我是 CoralFIX 的开发者之一。

【讨论】:

  • 感谢发布。这看起来像一个非常简单的服务器。有简单的客户端示例吗?我有一个发送价格的服务器,我只想连接到它并查看价格流。
【解决方案3】:

我假设您不是在真空中构建它,而是与某些经纪人的 FIX 服务器交谈?如果是这种情况,请与您的代理联系,因为他们可能有您可以连接的测试服务器。

【讨论】:

  • 感谢 aix 的评论。从我的经纪人那里拿到测试服务器还需要一段时间。大约2周。同时,我想知道是否有任何免费的测试服务器可以连接到这将帮助我的程序从市场上拉下流媒体价格。
【解决方案4】:

这取决于您需要托管解决方案还是 DIY 解决方案。如果您想快速启动 FIX 会话而无需编译/构建/设置,那么我会选择托管模拟器。

我们在这些人 http://www.fixsim.com/ 有一个帐户,并会推荐他们(设置简单并添加更多连接)。

(我不为公司工作,对此无话可说)

【讨论】:

    【解决方案5】:

    您可以尝试在这里搜索更多信息:http://fixprotocol.org/discuss/

    【讨论】:

      【解决方案6】:

      我为经纪人工作,非常欢迎您连接到我们的 Staging FIX 服务器。我不知道周围有任何匿名服务器,也许这是 FIX 社区可以设置的东西..

      干杯, 克里斯

      【讨论】:

      • 嗨,克里斯.. 这个选项仍然可用吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多