我已经实现了自己的FIX客户端,比如QuickFIX。现在我需要测试它。我可以使用某个假的FIX交换吗?有没有人实现过我可以用来验证我的客户端的FIX服务器?是否有真正的交换,我可以使用他们的测试连接来测试和验证我的修复客户端?
非常感谢任何帮助!
答案 0 :(得分:10)
你试过FIXimulator吗? http://code.google.com/p/fiximulator/它不能完全作为交换工作,但您可以建立会话,接收订单并执行(尽可能自动执行)它们。看看吧。
答案 1 :(得分:3)
Mini-FIX可用于基于GUI的
QuickFix示例应用程序"执行程序"和" ordermatch"应该有帮助。代码很简单,您甚至可以增强它以满足您对交换功能的需求。 关于这些解决方案的好处是支持不同版本的FIX,因为FIX 4.2是最广泛接受的。
答案 2 :(得分:2)
检查quickFIX发行版。 在这里:http://www.quickfixengine.org/quickfix/doc/html/examples.html您可以找到“执行者”。
是一个样本服务器,它只是填写它收到的每个限制订单。
您还可以找到“ ordermatch ”,这是一个匹配并执行限价订单的c ++服务器。
答案 3 :(得分:2)
CoralFIX附带一个即用型服务器实现,您可以触发并开始接受来自FIX客户端的连接。它将处理所有FIX会话级别的详细信息,如登录,心跳,序列重置,重新发送请求等。要为您的测试实现一个简单的服务器,您所要做的就是:
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的开发者之一。
答案 4 :(得分:1)
几年前,我无法找到一个测试平台,我没有必要签订一份大额许可费用的合同,所以我创建了一个。很抱歉这里有无耻的插件,但我最终将它转变为www.fixsim.com托管的产品/服务产品,并提供免费试用。 QuickFIX附带的Banzai是一个很好的免费开始,但如果您需要不同的资产类别,取消/更正,分配或其他消息类型,您必须建立或购买。