打算做一个开源的期货自动化交易系统,想听听大家的建议。

Discussion in 'CTP' started by Crimson, Feb 1, 2011.

  1. 打算做一个开源的期货自动化交易系统,类似TB,主要是TB有点小黑。
    目前国内比较大的期货公司貌似都可以使用CTP接口,但是我了解的不是很多。

    现在想了解一下,CTP能不能获取历史行情数据?

    开发构思:
    (1)C#作为GUI客户端的开发语言。
    (2)使用Lua或Javascript解释器作为自定义交易策略的解释器。
    (3)独立开发一个只用于执行交易策略脚本的Windows程序和Linux程序(这样主要方便用户在VPS或服务器上执行程序,C#毕竟比较慢,而且环境上不一定有 .Net Framework)

    大概构思这么想的,希望大家能提出意见。
     
  2. nix

    nix

    以后的软件,能支持多核和分布式运算才给力。
     
  3. 能支持多核和分布式运算才给力,这个是啊 。。。哈哈
    坛子里有几位仁兄有类似想法了。
    个人觉得交易策略的解释器是重点,而且把执行交易策略脚本分割出来的想法很好啊
     
  4. 并行计算难度还是比较大的,关键是不好模拟,自己没有设备,只能靠多线程了。

    解释器唯一担心的就是效率了,参考了比较好的系统,都是通过编译器实现的。
     
  5. 偶比較關心的是儲存Tick報價的實時數據庫怎么解決?語言神馬的,只要能生成和C二進制兼容的接口,其實可選擇很多。
     
  6. CTP自身不提供历史行情数据.它将自己定义为"委托"软件.
     
  7. 支持多核,并行计算,分布式计算的构架和平台多得是,问题是怎么用....
     
  8. 支持。我可以参与。
     
  9. 强烈支持。

    近几个月我一直在仔细考虑这个问题,几年前用Java做了一个包括技术分析和股票基本面分析的一套软件,但它没有很好的自动交易的支持,现打算重写一个。也许我们可以合作。

    不知LZ是否希望基于Windows平台?C#和.Net在Linux上不好运行。不过觉得既然做开源的,何不完全从开源的开始,忘掉C#和.Net。

    我打算基于C++和Qt,这样跨平台性很好,Java虽然也能很好地跨平台,但因Oracle的控制而不安,或许作为第二选择。我自己的工作平台是Linux (Ubuntu 10.10),首先希望能在Linux下运行顺畅,虽说希望跨平台,但我个人因安全性、可靠性、稳定性等问题不愿碰Windows,或许其他人可以合作。
     
  10. 我感觉可以先做一个开源的行情服务器端,因为每次交易前都要先读取历史行情,只要是做交易的人都需要,通用性好,参与的人也会多。

    至于交易的客户端,大家需求都不一致,众口难调。我觉得交易控制台程序就够了。
     
  11. 最好是分阶段来,先做最基础的,上层建筑慢慢盖。
     
  12. 没啥特色。大而全不如小而精。

    如果做一个回测速度比AmiBroker快很多的回测专用软件,肯定会有很多人使用的。
     
  13. 其实做系统交易,可以说95%以上的时间是用在回测上的。
     
  14. 综合交易平台CTP只是一个交易系统,不是行情商的软件,没有历史数据的。
     
  15. 强烈支持,赞同cnbiz850所说的合作,这么庞大的任务,一个人很难做的好,rypan 所说的回测速度,也比较赞同,大家合作做好某一个点,而不是所谓的大而全,把精力集中在特色的几个功能上,可能更给力一些!
     
  16. Crimson ,如果你想获得稳定的国内期货行情数据,这个要有关系才搞得到的!
     
  17. 楼主好像是弃庄了。
     
  18. 实在是不好意思,前段时间工作比较忙,项目只能断断续续的写一些东西
    目前只完成了GUI的工作,算是一个下单程序吧(主要试一下CTP接口),准备开发行情相关的部分,遇到一点棘手问题
    主要集中在历史数据问题,包括牵扯到策略计算和触发,还有回归测试

    不知道市面上的集中行情推送软件该如何接口,如果有哪位朋友知道的话发个邮件
    crimsoncn##gmail.com(## = @),谢谢!
     
  19. 楼主,这个建议想法,但是要从国内程序化交易的现状和发展去探索这个开源平台(!!!)的筑构,这个直接决定了平台的生命力。国内程序化交易还是刚起步,初级的很。交易平台,国内自力更生的,一队的TB,文华,怎么样就不用我多说了,国外的现在慢慢渗透进来了,如MC,MT,但步子小,本土化过程很慢。
    程序交易平台最核心的两点:数据,编译器。数据的稳定性和准确度,如果这一点不让人满意,再好的平台也会放弃,当然没有这个也算不上一个好的平台。因为我对国内的数据情况不是很了解,所以无法提出建议,只是听闻,好像交易所龚断了历史数据。不过从来成功者在原点都是采取两点,合作,不行的就偷。不就是由十个数字组成的价格吗,要从好的公司服务器偷出还不好办,一个程序就成了你的格式。。。。。。。。。。。。。。哈。。哈。。开个玩笑。
    编译器,建议用现成的TS和MT编译器,重点选后者吧,不要和TB竞争,自已开出一片天地,再者C的功程比E语言强大的多,更深的是MT也是一大巨头,只是他的营销差的太远了,你去看看他的中文网站就知道,机器翻译,众多的用户,转一个平台会转,但是你要我放弃一种语言去学另一种我不会,何况功能没有这么好。
    多策略,多品种同时的历史测试,这是一定要的,还有止损,止赢,可以挂单止损,开放式交易单,即可以同时考虑几种交易情况,一种情况出现,单子成交,其它的就自动无效,例如盘整状态,我同时设了买多和卖多两种情况,如果价格向下就卖空,买多的单子就不会再进委托,美国的交易所自动支持。
    稳定平台,还是基于WINDOWS,毕竟L还是少用户,要搞定那个东东,太费劲。建议用C写这个平台,不要小看了C,WINDOWS平台都是用这个东东写的。学C容易学,现在大学里这是必修课啊。再者,C简约,只要开出来的平台可以提供报警,在图上标注信号,特别提醒的文字(这也是一大特色),打印报表就可以,MT就是的成功很大一个原因也是因为界面简单。
    这个系统可以挂一个简单的联系软件,如QQ样的,简单就可以。
    经费支持:可以考虑软件在适当的地方显示广告!
    组织:成立一个小组,找一些人,一个人做这个工程太大了,但一定要版权所有,这个东西以后可以考虑往公司形式发展。
     
  20. 开源是有问题的。

    没有公司强力的支持,哪个期货公司敢给实盘用户使用?

    要么联合多个期货公司共同参与(这个基本更不可能了)