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

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

  1. 看了这么多,不知道作者的东西做出来了没用......
    ps.其实市面上已经有,策略独立与平台与交易商的软件了......
     
  2. 看来要在一个帖子里面涉及这个系统的各个方面的确成问题。越来越长...
    另请fouy介绍下市面上已有的(虽然我觉得你没看完这个帖子) :)
     
  3. 光看网站上的介绍,就充分感受到两个字:专业。

    至于内容,需要慢慢消化一段时间。
     
  4. espresso兄,恕在下愚钝,还是没整明白怎么把我的策略加入你的系统然后自动交易,个人建议:如果能花半小时录个视频讲个例子肯定能让我们这些菜鸟入点门。比如:我的策略是:5分钟过零点进场,有EXCEL,MT4 ,接下来我该怎么一步步做呢
     
  5. 看了两天espresso兄的系统,文字解释非常详尽,我很钦佩您为大家做这件好事。

    我也正在做车轮,目前感觉ATSXL过于复杂,且还不能解决我全部问题。还是希望能尽快画好结构流程图,可以在此基础上进一步讨论下。

    我画过一些流程图,不知道怎么贴上来,我们可否QQ交流下?
     
  6. 如果你只有 Excel 和 mt4 的话,估计要再等一阵子,
    现在只发布了 针对IB接口的版本(twsATSXL)。
    这个已经在#155, #156, #157楼讨论过。
    最快的话,也许我能写个mt4的指标,
    用于生成驱动 ATSXL的那个信号文件,但是订单只能发到 IB TWS。
    除非你等到 mt4ATSXL 发布出来....
     
  7. 贴图的话,需要用 flickr.com 之类的图床,然后在这里用其链接即可。欢迎贴图。:)

    好几位朋友提到结构流程图,是这个系统的流程图?还是放在 CORE 工作表上的策略的流程图?

    整个系统的大流程,其实非常简单:
    1. 信号从一个外部文件读入到 MSG 工作表上面,
    2. CFG, MSG, CORE, Ordres 这4个工作表之间的交互,
    3. 最后放在 Orders 工作表上的交易订单被发送出去。

    难点其实在 CORE 工作表上面,所以我在上面放了非常多的注释。
    策略的流程其实很难画(是可以画的),主要是分支太多,回路太多。

    放在 CORE 工作表上是策略可简单可复杂。

    我放在那里的例子其实也不是最简单的那种,也许对入门还是有点难。
    考虑放个超级简单的只要进场/出场,没有移动止损的?

    至于你说的ATSXL过于复杂,主要是在市场里面捞钱的情况的确太复杂了,
    聪明的,胆大的,钱多的,各种人才都有,
    再加上断电,死机,断网,要有心理准备啊。:)

    网上的那个示例大约是我实际运行的策略的大约20%,不是我的策略很复杂,而是考虑的情况非常多,可以管理很多不同位置上的订单和头寸。没有写一行代码。

    你的策略越完善(不是说算法上的复杂性),
    自己编程就越痛苦(干过这事的就知道了)
    就越能体会这个系统带给你的优势。
     
  8. espresso兄,我需要这样一个框架图,即是否IB通过接口送市场实时信号给amibroker,AmiBroker将交易指令,送发ATSXL模块, ATSXL进行头寸管理并下发交易指令到IB。........
    毕竟没有实战交易经验, 需要一点点理解;)
     
  9. 号外~~
    今天抽空把原来mt4的代码刨了出来,搞了个从mt4生成信号文件的EA,
    效果还不错,使用mt4的同学就有福了,可以直接从mt4生成信号驱动 ATSXL 下单到IB TWS :D
    改天把这个EA发上来...
     
  10. 不是IB发市场信号给amibroker(IB做数据源不稳定),我是使用mt4做数据源给amibroker。

    今后大家也可以直接从mt4发信号给ATSXL 了,参见楼上号外。省去了配置 amibroker 数据源的麻烦事!当然了,如果不是做外汇的话,mt4这招就不管用了....

    大致过程是这样子:
    amibroker生成市场信号(Up, Down, UpperChannel, LowerChannel等)
    ATSXL 读到这些市场信号(注意,这还不是交易信号),根据策略去产生交易订单,这些指令被发到IB,订单的状态同时也会被ATSXL获得并更新订单的状态,如此循环....

    网站上有详细说明:
    ATSXL 是如何工作的
    http://www.atsxl.com/zh:howitworks
     
  11. 请问我这样理解你的信号文件,对不对:

    Up —— 准备开多单
    UpperChannel —— 升破这个价确定开多
    LowerChannel —— 跌破这个价多单止损
     
  12. 报告espresso大侠:
    我用你提到的按键精灵实现了一键下单。。。暂时只能这样了。现使用的国信香港SP交易平台是专门提供给农民使用的,什么自动化编程、什么接口,统统没有!他们只给了我一把锄头和一把镰刀。。。。。以前不知道有按键精灵这类的东东,原来锄头和镰刀也是可以自动挥舞的:eek:,虽然是凤姐版的自动化,但没办法时这也是一个办法,谢谢!
    当然还是希望能用上类似ATSXL 的自动化工具!
    另外有个感觉,ATSXL 太专业了,大侠的解释也专业,说实话一开始我也晕了,后来仔细看才知道怎么回事,如果说得通俗一点,可能有助于理解吧。毕竟不是每个人都做过自动化,不少人只是在自动化的路上。
     
  13. 大概看了一下,不是很明白为什么用其他平台会被锁定?
    还有,信号仍然是要写程序的,atsxl主要功能是中转一下?把下单这一块分离出来了?
    就是说,比如我的平台不能用某个软件交易,但是可以变相的用他来交易而不用重新去学习新的编程语言?
    恩,这个用处也挺大的,算是一种跨平台的支持哦。不知道能不能加上国内的ctp,a股之类的接口。
    用得好貌似挺自由的,不管什么平台,都可以继续使用原来的信号发生平台,不用学习新的语言。
     
  14. 那个信号文件每一行通常包括: Signal, Rate, Upper, Lower
    比如价格突破某个位置时,signal=Up, Rate则可以是突破时的价格。
    Upper可以是布林通道上限的价格, Lower可以是布林通道下限的价格。Upper/Lower也可以不包括在内
    (当然了,这些信号的含义和数值可以根据你的策略的需要而改变,这里只是个例子)

    信号文件只是提供给 ATSXL的关于市场方面的信号(不是交易信号)。对于这些信号如何处理就看你的策略了。策略就放在 CORE 工作表上。

    我提供的那个示例文件大致包含这些交易计划:
    Up信号: 如果没多仓,以限价开多
    LwrCh信号: 如果开多成功,使用布林通道下限建立止损
    Up或者LwrCh信号: 如果走势上移超过预定值,则修改止损单上移止损
    Dn信号: 如果有多头仓位,则以市价平仓(然后进入空头操作计划)

    我觉得可能是状态转移图之类的更能完整和准确描述放在ATSXL上面的交易策略(或计划)吧的,而不是一般的流程图。

    这里有很多的状态:空仓,多单限价进场,多单进场出错,多头仓位建立,止损单进场,止损单被触发,空单市价进场,空单限价进场,空单进场出错,空头仓位建立,.... 还有很多.....

    信号文件实际上是提供了一些市场信号或者事件,ATSXL 将使用这些信号去执行某些操作(交易指令),然后驱动上面的状态发生改变...

    这些东西应该整理后放到网上。我们可以另外再邮件交流这些图怎么画,这对于大家理解这些系统还是很有用处的。
     
  15. 回176楼abc101同学,非常感谢你的反馈,很多术语之类的的确是还没有完全统一,比如信号/消息/事件,可能是同一个东西。部署其实就是保存的意思。等等。
    如果你有什么好的建议或发现问题,欢迎你发邮件给我。 :)

    回177楼anbeng同学,估计是你没有安装IB API包吧。参考 http://www.atsxl.com/zh:qs-ab-tws#toc4 “下载和安装IB交易编程接口 (IB API)”。
     
  16. 嗯,就是这样子的。比如我现在一直用AmiBroker生成信号,今后也可以用MT4生成信号,或者eSignal,甚至MATLAB都可以。
    比如,用MATLAB的一个例子是使用人工神经网络的算法,实时数据经过MATLAB计算之后,生成信号给ATSXL,这些信号可以是: BreakUp=1.3, Probability=0.68
    你放在ATSXL里面的策略可以根据这个突破信号及其概率,动态地确定仓位,或者采用多次进场的方法,等等。
    这只是个例子,如果你用其他编程方法的话,想象一下难度。:)

    另外,一个策略放到ATSXL之后,几乎不用修改就可以将订单发到IB,或者MBT,或者Dukascopy。
    支持国内CTP和A股的接口还没有,但我实在是没有时间和精力,估计是不会去做的。
    但是如果大家想自己做的话,其实也不难。
    过几天希望能把MBT接口的那个版本发出来,这个MBT接口的版本可以做为自己增加接口的很好的示例。

    IB, MBT, Dukascopy, MT4(测试连接过Oanda,MBT)这四个接口的版本会陆续发出来,都是开源的。
    如果今后有朋友愿意维护其中的接口,可以和我联系。

    如果有朋友愿意做新的接口,并愿意开源共享出来给大家的话,非常欢迎!
    我会赠送给这位朋友一套没有任何限制,速度更快的ATSXL专业版,以此帖为证。:)
     
  17. 不好意思,IBAPI重装了一遍,问题依旧。不会编程看不懂代码,麻烦espresso再看看。:)
     
  18. 这个问题我遇到过,发现是缺少D:\TWS_API_v969\bin\ActiveX\Tws.ocx, 安装IB API 可解决,安装路径必须是D:\TWS_API_v969;

    装好API之后还提示有问题,发现缺少 C:\WINDOWS\SYSTEM32\MSFLXGRD.OCX ,在网上找到这个文件复制到C:\WINDOWS\SYSTEM32, 此问题解决。

    之后提示新的错误,窗口内容为:

    运行错误“429”,ActiveX 部件不能创造对象,点调试,进入Visual Basic 调试窗口,光标停在模块Main,“Set objTWSControl = New cTWSControl” 这条语句上,因为最近有点忙,没再继续研究。


    还是请espresso帮助解答吧。
     
  19. 感谢,期待MT4接口。