1、支持客户端交易委托编号。目前的期货软件只维护服务器端(期货公司)的交易委托编号,一张单子只能用服务器端的委托编号进行查询或撤单,这给开发高可靠性的客户端自动交易软件带来非常大的隐患; 2、支持推送消息的范围除行情、委托、成交以外,还必须有头寸、资金、可平/可平今,后面这三项(相当于业务事件)的推送时间要提前于委托和成交消息的推送; 3、委托不搞指定开平,由服务器端做先进先出的开平头寸处理(或允许选择头寸处理的策略); 4、支持200笔/秒以上的并发能力。
前一阵子出差了,这么晚才回复,请原谅: 1、事实上我们目前也没有服务器端委托号,服务器仅是把委托转发到柜台,所以从头到尾都是使用的柜台委托号。既然单子始终要跟柜台委托对应起来。那为什么一定要有客户端委托号呢?请具体解释一下。 2、头寸、资金、可平/可平金目前都已经是推送到客户端了的。 3、先进先出的策略目前难以实现,因为柜台的结算机制并不是象国外柜台那样采用的逐笔结算,而是采用的盯市结算。你可以指定平今仓还是平老仓,但是你无法指定具体要平那一笔。 4、200笔/秒的并发能力我们的服务器是支持的,只是目前长城和东银用的都是V5柜台,并发量太大,V5有问题。希望V6会改善些。 具体的细节问题,可否在QQ上沟通?我的QQ是:54653460。我曾经加过你的QQ,但是认证没通过
我的机器在最近一次打补丁后与QQ兼容性大大下降,经常在QQ时死机,后来还发现鼠标响应也有问题,也不知道是不是有黑客,所以就不太用了。现在有了TRADEBLAZER专版,可以吸引多位朋友一同讨论,其实也是一个比较好的途径。 关于你的回复: 1、客户端委托号是交易行为的主键,这在国外所有的金融协议中上都是如此(FIX中为CLORDID),因为交易是客户发起的,控制权应该在他那一端。如果说具体的技术细节,可以举两个例子。1)当客户提起一笔委托后,如果在服务器响应之前网络中断,那么客户端就无法知道柜台委托号,也无法查询委托状态,对于高频率的自动交易系统这个问题很要命的;2)如果在同一个接口上运行多个策略,同时产生价格方向相同的委托,有的委托有成交,有的委托没有成交,或者有的委托开仓,有的委托平仓,这些策略无法判断哪笔单子属于自己,影响后续应对行动。 2、业务事件驱动是交易策略的核心,这个事件集要定义完备,从某种意义上说目前国内的柜台商还不懂这些东西,他们的东西不能作为当然的参考,需要自己做设计; 3、先进先出仅仅是指先平仓(有反向头寸)后开仓(没有反向头寸),无须指定具体平仓对象。指定平仓对象这个东西就像朝三暮四还是朝四暮三一样,没有意义。头寸敞口是交易者主要关心的对象,如何记帐和相关盈亏是客观的结果,接受不接受都存在; 4、V5和V6的后台核心其实都是一个SYBASE数据库,金仕达在存储过程的编码优化上软件能发挥的空间有限。它的通讯中间件(就是你能联的部分)是一个统一规划的业务消息路由平台,不但在期货柜台上用,在证券柜台上也用,增加了通讯的层次/复杂性,因此可能也会影响效率,但保证了可靠性/安全性。金士达的产品在并发性能上不到它所有的竞争对手的一半,我估计跟这个结构有关,很难期望V6能在这个方面有提升。想要提高性能,可能只有从金士达外围网关的配置上动脑筋,例如在期货公司局域网使用非加密通讯等等。
FIX相关: http://www.hylt.net/vb/showthread.php?t=3921 http://www.hylt.net/wiki/WLD-Track.html http://www.hylt.net/wiki/wiki.html#SECTION03310000000000000000 FIX官方: http://www.fixprotocol.org
给两个交易网关参考文件 http://www.wealth-lab.cn/download.php?file=631794c36dc1e13a9d616140c8614905 http://www.wealth-lab.cn/download.php?file=32a451a89d362d8df1ae2e0a5b99ce67