请大家帮忙看看这个系统构思

Discussion in 'Python & Quantopian' started by jiaweiq, Sep 9, 2013.

  1. 在海洋潜水一段时间了,开始实际行动。打算做一个期货自动交易系统,主要目的是先验证一些自己的想法,尽量节省开发时间,但又留下以后完善系统的空间。请大家指点是否有不合理的地方或更好的方案。

    1. 用KDB接CTP C++的行情,按KDB基本思路分成历史DB和日内DB。
    KDB在公司天天用,不过不知道license要多少钱,估计付不起。不知有没有破解版。不过他的32位测试版可以连续用4小时。应该可以在中午停盘的时候重起一下。

    2. 实时交易策略/信号通过KDB和Python实现,简单的时间序列计算KDB可以完成,复杂的就不会要求速度,可以用Python计算完写入KDB. (R也可以)。由日内KDB触发交易指令。

    3. 交易指令触发下单C++系统, 连接CTP C++接口。仓位回KDB.

    4. 之所以这样设计,主要用意在于backtesting系统直接用Python+KDB就好了,Python有不错的package如numpy, pandas, statsmodel. KDB可以实现tick replay, simulation,当然还有基础DB功能。

    5. 简单的连接KDB的GUI,比如参数设置, 仓位和下单状态监测。

    另:请问CTP延迟问题严重吗?有没有数据。各个券商有区别吗?有没有专用接口?大概所少钱?

    多谢多谢~
     
  2. 你还是直接用红璟吧。
     
  3. 为何最终大伙都开始自己写系统了?我觉得资产不是几亿的压根没必要自己弄这么麻烦啊。
     
  4. 如果不搞真正意义的高频,写交易平台整个就浪费时间
    直接用现成的平台吧

    多把精力花在交易策略上
     
  5. 具体策略想做套利单,做市单,对下单系统确实要求高频级别。现成平台大部分都看过了,延迟还没测试过,主要问题在于1)好像下单管理都是为做趋势策略写的 2)回测平台过于简陋

    虽然不情愿但是自己写灵活度很高。懂的大侠们给点建议吧。能给点CTP延迟数据(co-location vs not)就很帮助了。
     
  6. 看了一下说明,基本功能不错。但是是开源的吗?可以让我改进多线程下单管理模块吗?
     
  7. 我不是托管的,10兆企业光纤,ping到券商大概10ms,在上期下单round trip大概15~20ms左右,但是我接收到的CTP报价延迟是个双峰分布(最低值10ms左右),就是两个方差差不多,但是均值不同的正态分布的叠加。大概是平均延迟一个要几百毫秒,另一个好像是1秒左右,具体数据及不清楚了。我也不清楚为什么会产生这种结果,我觉得应该不是线路延迟的问题,我的软件整体延迟在1ms以下。
     
  8. 多谢多谢,终于有明白人了。

    就是说您认为报价延迟是CTP系统问题?报价延迟均值1秒钟的话对我的策略有些头痛。不知道脱管会不会好些。
     
  9. 是商用软件,不可以开源。
     
  10. 我也不清楚,毕竟不太懂网络方面的问题。如果CTP系统有延迟的话我想对所有使用CTP的用户应该是一样的吧。但是如果使用其他技术可能接收到的数据延迟就不同了。目前除了CTP还有什么其他的解决方案吗?

    如果真的是CTP的问题,那我想延迟那么大,托管可能也没什么太大帮助。我测试过一些简单的套利策略,单子一个也抢不到:mad:

    我研究了一下,貌似只有会员才能直连交易所?那么我们散户岂不是没有机会了。
     
  11. 我找了一下,当初的数据还在,不是正态分布我记错了呵呵

    上海期货交易所cu,ru有点像指数分布和两、三个正态分布的叠加,第一个峰的均值250ms左右,第二个600ms左右,整体数据大概500ms左右。其他地方的交易所分布就不同了,比如大豆(a)是一个正态分布。

    我不知道如何发图啊。。。

    我仔细想了一下,也有可能是我的券商的服务器太烂了?毕竟我是连接到他们服务器接收数据和发送订单的。于是他的服务器的响应一会高一会低,可能吗?最好有其他人的数据对比一下,我的是申银万国期货。

    PS。我ping到券商的数据服务器(UDP)是4ms,之前记错了
     
  12. 看了看ctp介绍,没有具体写,貌似期货公司风控系统是ctp提供的,这个之外各个公司自己再怎么搞就不知道了。

    我最近抽空建data feed和database这块,有结果和大家分享。
     
  13. f77

    f77

    1.高频套利:有很多有实力的机构通过席位直连交易所在做高频套利,你不管通过哪家券商的CTP,总之你是间接进入交易所的,没啥速度上的优势去抢单。
    2.CTP:如果通过CTP,你的主机要放在券商CTP前置机附近,而不是交易所主机附近,最好连接到主席地址,这样才有速度优势。
    3.系统设计:既然用C++在搭建,还用什么KDB呀
     
  14. 还以为kdb是免费的呢
     
  15. 好像这还是第一次看到有人提numpy, pandas, statsmodel

    楼主加油
     
  16. To f77,
    多谢回复。很有帮助。答复您的三点
    1. 我对国内一直不太了解。也一直想有没有办法直接连到交易所。资金量不成问题,但以前一些朋友给的答案是所有机构都要接ctp. 看来不是这样?交易所席位有什么条件吗?
    2. 了解,多谢
    3. 用Kdb的原因有几个。第一是初期测试想法的时侯可以省去开发c++ analytics的时间。kdb完全可以写出80%的strategy. 后期如果太复杂的model可以用python来写。因为这些估计也不太需要respond to tick. 第二,后期可以直接用kdb做backtesting. 这样production和testing不用写两遍
     
  17. Kdb具体不知多少钱。好像20k usd?. 反正对于我个人测试想法是不可能负担的
     
  18. Keke, 多谢,主要是我有没有团队。自己写一个完善的system还是很花时间的。所以能节省时间的地方就尽量节省。验证了想法再搞复杂的东西。

    python做prototyping/research真的很好用。fast (not even high frequency) trading不太行。
     
  19. kdb+ 你能访问到么,反正我这根本连不上这个网站。能给我发一份么。nusicsoft@163.com
     
  20. 交易所席位好像是要期货公司才能申请,注册资金1亿以上,连续3年盈利等等要求。你可以网上查一下。所以对我们来说直连不太可能。我估计最快也就CTP了。

    并不是所有的期货公司都使用CTP,但CTP自称80%的客户使用它的系统。主要是期货公司不用开发自己的系统了。

    你是做美国市场的吗?