独立于交易开发平台的策略自动化引擎:ATSXL

Discussion in 'General Topics on Software and Data' started by espresso, Sep 21, 2013.

  1. 感谢楼上各位的大力支持~ :D

    另外,特别向大家说明一下,
    虽然现在的快速入门指南是以Amibroker为例子,但是,你可以使用手头上任何软件(比如multicharts, ninjia, 甚至mt4),去生成那个信号文件。这也是使用这个系统的一个关键好处,大家不会被锁定或限制在某个软件上面。 :)

    下周我会把这个文件的样本打包放到网上,再通知大家下载安装包或运行自动更新。大家就使用自己熟悉的软件,按照那个格式生成文件即可。

    至于策略到底在哪里实现和部署,我自己实际使用时是这么划分的:
    1)需要使用市场形态的部分放在Amibroker上面(或者其他你熟悉的软件),比如形态的收缩/扩展,突破,反弹,触及某个位置之类,这些关于市场形态的信号就放在这个信号文件里面。
    2)策略的其他部分,比如仓位控制,订单控制,和针对上述市场信号的特定计算和判断,就放在Excel 文件上面。

    这个划分方法说明,1)Amibroker不是必须的,2)大家的策略实际上是分开放在两个地方,通过这样的划分和隔离,确保策略不会依赖某个软件或平台,而且更加安全。
     
  2. 关于交易系统的安全性,我对于实际运行的系统是建议安装在单独的计算机或者VPS上面,安装防火墙,杀毒软件,不要装任何破解软件(很可能带后门)和下载源不明的软件,关闭所有的端口,等等。主要是防止运行交易系统的计算机存在黑客后门或病毒。

    至于这里发布的这个系统,除了运行自动更新时使用一个第三方插件获得更新包之外,也不存在任何上传数据的功能。我是没功夫花时间实现这些无聊功能的,而且如上所说,这个系统本身的实现就保证了策略是被隔离的(只有一部分放在Excel上面),除了使用者本人,谁也看不到完整的策略。

    有些东西可能大家不便问,但还是明确说明一下,大家都比较放心。再说,海洋这里的高手众多,随便用个什么网络包嗅探器一同运行着就知道了。 :D
     
  3. 感谢espresso!把帖子集中看了一遍,明白espresso兄的处理方法了,感谢!
    颇有启发,下载回来晚上看看具体代码。
     
  4. 不用客气,慢慢看,其实策略放在这个系统里面时几乎没有代码,而是很多公式和参数。 :)

    另,
    我有空的时候就加点截图并逐渐增加更多的说明(还有好多使用上的细节没有放在上面,主要是Excel太灵活了 :D)。昨天把几个关键工作表单的截图放上去,快速入门指南也增加了一段测试信号文件的说明。

    google搜索关键字:交易 自动化 excel 用户指南

    或者直接点这个Google链接:
    https://www.google.com/?gws_rd=cr&ei=cDiCUr66PMnX2QXv_ICQBQ#q=交易+自动化+excel+用户指南

    搜索结果里面选择 “用户指南” 或者 “快速入门指南”
    有一个章节:“ATSXL 是如何工作的”

    以后我在这里都提供google搜索链接,一则是网站内容在不断更新,链接名称都会改变;二则是大家通过搜索引擎点进去会把网站排名推到前面(和论坛里面顶贴一个道理,哈哈)
     
  5. 我最近在研究A股和国内期货的时候,发现目前交易行业缺乏一个第三方平台。刚好看到楼上的兄弟提到ATSXL,似乎和我的想法有些相似的地方。
    我在研究A股和期货的时候,常常喜欢用第三方量化平台软件来做回测,甚至来生成交易信号。我发现论坛很多朋友都是这么做的。这时,因为第三方量化平台软件往往因为缺乏交易接口,给订单管理、仓位管理、资金管理甚至多交易系统管理都带来不便。所以开始构思自己开发一个通用平台。我给这个平台命名为SignalManager。
    这个平台通过获得第三方量化平台的交易信号,手工或者自动选择不同交易系统的信号,然后通过交易接口获得仓位信息,根据历史交易进行资金管理和仓位管理,争取达到资金管理的最优化和操作的最简化和快速。
    espresso兄选择Excel+IB的接口完成了我想完成的工作。只是我的解决方案可能比较复杂,我倾向于用C#编程做界面(看见Excel里的n个sheet和n个函数的界面我马上联想起过往用Excel建模的痛苦经历,20分钟才能打开的模型,那个苦呀!永生难忘),用Excel来存储交易数据(毕竟Excel容易上手).难点在资金管理的最优化和操作的快速,另外需要开发行情的接口、通用交易接口和系统信号的接口。所以工作量不小。准备采用通视的行情,华宝CTP和IB的交易。系统信号准备采用读取交易信号文本文件的方式。估计会用VSTO的技术。
    我初步的想法是做EOD版,稍后做实时版。希望EOD版能够在明年3月份完工。如果这样一个第三方平台构建成功,基本上国内的股票、期货交易和国外的量化平台就有了一个平滑的桥梁。开始憧憬了...
    正准备开工,结果看到espresso兄的佳作,很受激励。其实我非常喜欢Excel的解决方案,只是感觉管理太过复杂,操作很难做到简化和高速。espresso兄有无建议?
     
  6. espresso兄,我研究了几天也没整明白,现在假设我的策略是“5分钟线上穿零点就买多,止损20点” ,我用MT4平台,有EXCEL,接下来该怎么做让它自动交易起来,烦请详细指点,谢谢先。

    另话说代码在哪,没找着,唉俺太笨了。
     
  7. 呵呵,SexyTrader憧憬的系统:可以使用第三方分析和量化平台做回测和分析,然后将生成的信号(市场形态,交易信号)传递给一个独立的系统运行策略,做头寸和订单管理,这些就是ATSXL实现的功能。 :)

    "我倾向于用C#编程做界面(看见Excel里的n个sheet和n个函数的界面我马上联想起过往用Excel建模的痛苦经历,20分钟才能打开的模型,那个苦呀!永生难忘)"

    花20分钟是因为你的Excel在打开的时候,里面有一些公式的返回值有变化,导致Excel计算引擎重新计算最优的更新路径,对于很复杂的Excel文件有时候需要关闭其自动更新模式,而且有一些工具可以优化里面的公式。Excel 2010 打开100兆的文件,含有几万个公式的文件都非常快。

    现在的这个ATSXL属于边用边做,花了3,4时间进化到现在这样,有很多关键的设计和实现细节是在实际运行中慢慢磨出来的。如果你对编程很熟,可以每天编程的话,应该可以在1,2年内(或更短)做个看上去类似的,但是很多细节的东西一定是要实际运行之后才会浮现出来(ATSXL一直是5x24在VPS上运行着实盘和模拟的交易)。 ;)

    所以,如果你想快而且要使用CTP的话,从我看来,最高效的方法也许是在ATSXL的基础上增加一个针对CTP交易的工作表单即可,针对CTP用VBA编写几个基本的函数(connect, disconnect, placemodifyOrder, cancelOrder, getOrderStatus) 基本就可以了。ATSXL能够自动调用你的这几个VBA函数,后面的一些小问题是调试和磨合,但是比你写整套系统要快得多。

    另外,我觉得直接把行情引入到Excel中不是个好方法(虽然很多市面上的Excel方案都是走这个路子),因为DDE在行情快的时候还是会有缺失,而且不是每个tick都是你需要的,让Excel去忙着接收那些tick也不是其长项。最好的办法还是有一个行情/分析软件同时运行着,接收tick行情,显示图表或做相应的计算,然后把关键的市场数据和信号传递给Excel即可。

    个人意见供你参考。
     
  8. 那个快速入门指南是针对:AmiBroker + IB/TWS
    代码也是针对AmiBroker的AFL,Excel工作表单上面完全没有代码。 :)

    你现在的组合是不是:MT4生成信号,在IB里面交易?

    另,不必着急,是要花点时间,但是这点时间只会是你自己开发一套系统的零头的10% :D
     
  9. 多谢espresso兄的建议。非常好。我也有意尝试你的这个软件,除了你的说明原因外,我使用Excel也有多年的经验,上手对我来说非常容易。
    已经下载了twsATSXL,准备试用。稍后会麻烦你的。:D
     
  10. 实话说,因为试过的策略效果不佳,俺现在直接在MT4上手动交易,所以如果有Excel工作表单出信号,在MT4 上交易的系统肯定大受欢迎哈,俺知道很多小伙伴们用MT4的,谢谢先。
     
  11. 通过ATSXL,可以有好多种实现交易自动化的方法,例如
    #1 用AmiBroker生成信号,然后通过 IB TWS 交易;(快速入门指南是用这个)
    #2 用MT4生成信号,然后通过 IB TWS 交易;
    #3 用AmiBroker生成信号,然后通过 MT4 交易;

    之前说了,使用#2的话,需要在MT4里面自己编一个指标,能够生成信号给ATSXL即可。
    #3的话,我还没有把这个ATSXL和MT4的桥接接口发到网上。

    你说的是哪一种路径?
     
  12. 用MT4的原始未加工数据给ATSXL生成信号,通过 MT4 交易。在ATSXL可以加不同的策略尝试来优化策略。
     
  13. 这种MT4生成信号,由ATSXL管理订单和头寸,并再次把交易指令发回MT4的模式(如果我没有理解错的话),也是可以的,这样做可以省了MT4写代码管理头寸和不少策略方面的代码。

    这里面涉及到两个mql文件(或EA),一个向ATSXL发信号,一个作为ATSXL和MT4交易接口的桥接。问题是你能同时运行两个EA吗?只有合并这两个EA的代码,或者就是运行两个MT4(一个发信号给ATSXL,一个接收ATSXL的订单指令并交易)

    我现在已经有第二个mql了,还是等我先把信号文件格式发到到网站,
    如果有这个文件格式,看看哪位朋友愿意能写个最简单的EA给大家做例子?
    比如均线交叉就发 Up/Down 的信号,使用bollinger band做止损位置,
    然后ATSXL就可以据此管理订单和头寸了。 :)

    如果有朋友写这个EA的话,我就考虑先发 ATSXL 的 MT4 接口的版本,
    本来这个接口是考虑最后才发,或者就不发了的。
     
  14. 十分感谢!下载了学习学习!
     
  15. 当然得合并这两个EA的代码才行,唉不会编程,不然例子我就写了。请大伙合作哈,谢先
     
  16. 今天终于抽空把这个信号文件的格式放到网上了,很简单的一个文件(暂时没有放到安装包和自动更新包里面)。

    只要按照这个简单的格式要求生成的文件,ATSXL 都可以把这些数据和信号读进去,所以,大家也可以使用除 AmiBroker 以外的分析软件生成信号。;)

    google搜索: 交易 自动化 excel 用户指南
    进入用户指南后,选择“与 ATSXL 配合使用的 Excel 工作表单”,再选择 “MSG 工作表单” 即可看到很详细的文档。

    或者直接使用这个google链接:
    https://www.google.com/webhp?hl=en#hl=en&q=交易+自动化+excel+用户指南

    或者直接链接:http://www.atsxl.com/zh:ug-msg-ws (如果今后名字改变,也许会失效,建议使用上述搜索引擎得到的链接)
     
  17. 多谢分享
     
  18. espresso兄,能否画个ASTXL结构和逻辑流程图,以便大家更好理解它。

    并且给每个功能配一幅软件界面截图。
     
  19. 嗯,我也在逐渐地增加图例。总体的结构图之后会增加的。

    不过,这里已经有不少涉及其结构和流程的章节:

    建议先看FAQ: http://www.atsxl.com/zh:faq
    再看 ATSXL 是如何工作的: http://www.atsxl.com/zh:howitworks
    再看MSG工作表如何读取和保存来自外部信号文件的内容: http://www.atsxl.com/zh:ug-msg-ws
    (信号文件的详细格式说明和例子也在上面链接中,今后也许会分到专门一个页上)

    这个过程中还可以参考一下快速入门指南:
    使用 twsATSXL 集成 AmiBroker 和 IB TWS (初级): http://www.atsxl.com/zh:qs-ab-tws

    看完上面这些内容应该有个大体的认识了,虽然内容也挺多的。
    如果对Excel不这么熟悉的话,估计还会觉得头晕。
    不过借着机会学习了Excel也是一举多得的好事。 :D
     
  20. 能否劳烦哪位版主大侠帮我把标题改一下? :D

    FROM: 挖坑贴:独立于交易开发平台的策略自动化引擎:年底前填平
    TO: 独立于交易开发平台的策略自动化引擎:ATSXL

    多谢~~