首先,感谢大家对TradeBlazer软件的强烈兴趣和支持。 现在我们打算开始做未成交单的处理模块。大的方案是在客户端做一个监控服务线程,由它来监视所有的未成交单,并做相应处理。 想请大家提点相关的具体需求。如果一个单没有成交,该如何处理此单呢?是否需要N秒后自动撤单(定时),或者加N个价位继续抢单?或者你有什么特殊的想法,请告诉我们。
我觉得你这个大的方案在思路上有问题,这个监控不应该放在客户端(因为客户端难以避免可能出现的宕机或受网络影响而出现的链接中断或者延迟问题),建议你在服务端专门做一个触发扫描程序,以Tick行情触发跟行情相关的委托单的触发扫描(如MIT/AON单等),以委托和成交信息触发跟成交相关的委托扫描(如OCO/FAK/FOK单等),然后把执行的结果推送到客户端
这个担心是多余的。服务器一个不够可以两个,客户端可只有一个,如果遭到病毒或者网络出现问题那么客户可能出现的损失就大了。国外支持各种委托单往往都是告诉服务器或者直接发往交易所(部分交易所支持)这个功能单的功能号(如止损单类型),然后在入口参数给出止损价等参数即可,经纪商或者交易所的系统里面直接就处理了,没有听说有效率不够的问题。 何况国内的期货交易所使用的新一代交易系统本身已经支持止损止盈单等指令了,只是目前尚未开放而已;等开放的时候你只需告诉金仕达这是止损单,止损价是多少,金仕达也只需要把这个止损单和止损价告诉交易所就行了,下面的事情交给交易所来处理。
一般连接到公司要么电信要么网通,我们这里大厦电信的资源不够才用网通的。而托管服务器可以托管到双线路机房的啊,这样不论电信还是网通都会很快了。建议hylt考虑换托管服务器到双线路机房,这样的机房现在很多了。
我今天登陆tradeblazer看了一下,平仓还是需要自己去选择“平仓”和“平今仓”,不能让系统自己帮客户做选择吗?因为模拟交易要我用帐户登陆(而我好象没模拟交易帐户,和MT的不一样),所以还没测试委托,这个系统的委托指令能支持隔夜(就是取消前一直有效)吗?虽然交易所现在是不支持委托指令隔夜的,但对客户来说却是有需求的,特别是对于类似我这样的价值投资(包括尺度交易者)更需要的。
如果你选择“平今仓”,则系统不会处理,就按“平今仓”往柜台里投,投得进就投,投不进就返回错误。 如果你选择“平仓”,则系统会进行拆单工作。假设你2手今仓,2手昨仓,现在要求下“平仓”3手,则实际系统会下2个委托:平今仓2手,平仓1手。 拆单的原则是“优先平今仓”
建议不要在客户端指定开平,全部在服务器端来判断。因为从一个客户端可能同时有两个以上的策略在运行,一个可能发买入开仓,另一个发卖出开仓。这样实际上客户的净敞口是0,指定开平没有意义。另外,在做平仓单时,为保证单子合法,往往需要先查可平/可平今的数量,查询请求从客户端到服务器再到柜台,消息往返经过公网增加响应时间,如果在服务器端做开平检验,就是在局域网内做查询,速度要快得多。这对交易者来说,他也只要关心敞口的方向就行了,至于头寸结算的细节,其实他们并不关心。 当然这种方式下,就没有什么锁仓一说。这个锁仓从它10多年前发明开始纯粹就是一个中国特色的掩耳盗铃。对交易者(尤其是系统交易者)来说,完全没有意义,就是交易所增加交易量/佣金支出的一种工具。
不是琐,是堵! 你应该点“平今”的时候点了“平仓”,那你的单是发出去了,但永远不会成交,也别想撤单,你要么脑子一转马上开反向仓,要么打电话处理,否则你运气不好的话就买快豆腐撞死。 我平生第一次交易就这样在几分钟里损失了7000元,就是那个垃圾“超级下蛋”的杰作(在模拟中他不堵的)。 现在的交易开拓者已经能把这个错误鼠标动作栏住了,这个就是好。
你这个方法有问题或者说不是最好的方法。 上海交易所和大连郑州交易所的规则不一样,应该区别开来。假如客户选择了“平今”,而实际上他没有今仓,在大连郑州是没有问题的,可是在上海的品种就会被交易所拒绝,而如果有被拒的单子如何实现自动化?较好的做法应该是维护一个持仓表(大多数情况下就算当时去查询一下持仓也是来得及的),如果是上海的品种,有今仓那么先平今仓,今仓如果平完了或者没有今仓再去平老仓,这样才可以享受交易所平今仓手续费的优惠,也可以避免客户误操作造成的拒单。大连和郑州这个问题简单些,因为系统自己处理不会拒单。 而且对于即将开始的中金所来说,根本没有平今仓概念,如果你用平今仓发出委托单,只有被拒单一个结果。