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

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

  1. 早就做成了,出来就是 v4.0.0 版本可以做交易的,不是什么 v0.x 试用版。:)
    我自己已经从 v0.0 边做边用到 v3.8.2。
    就是放出来的话,最基本的使用说明还是得有,
    要不别人看不懂,用不了,还是白搭。

    写程序比做交易痛苦多了,翻译和完善原来的那些简要说明比写程序还痛苦! :(
    幸好我的网站是基于wiki的,
    以后有热心人的话可以留个注释啥的,甚至帮着改改。
     
  2. 能否先简单介绍一下整体架构是怎样的?

    我觉得我的程序对于一些对象的设计并不合适。

    比如我使用contract对象表示单一证券,包括了symbol,exchange,contract type,contract id等等信息。但是这样可能会遇到更复杂的衍生证券的信息超出了contract对象原来包含的信息。因而需要一直修改这个类。不知道你是怎么定义的?
     
  3. "能否先简单介绍一下整体架构是怎样的?"
    参看本贴第20楼。:)

    “比如我使用contract对象表示单一证券,包括了symbol,exchange,contract type,contract id等等信息。但是这样可能会遇到更复杂的衍生证券的信息超出了contract对象原来包含的信息。因而需要一直修改这个类。不知道你是怎么定义的?”
    参看IB API,可以给你提供个思路,但是你就知道有多复杂了。我不想直接碰这些东西,太可怕,就用他们现成的例子程序改改。:D

    https://www.interactivebrokers.com/en/software/api/api.htm
    IContract
    IContractDetails
    IComboLeg
    IOrder
    OrderComboLeg
    ...
     
  4. 哦。。。我也是参考IB的,只是想知道是否有其他设计。。。
    谢谢啊
     
  5. 状态更新:

    现在已经进入准备例子的阶段,打算循序渐进地做几个例子:

    本来想用"著名的","简单的"均线交叉,但有点不能体现这个系统的优势,
    而且这样也太对不起让大家等这么久了。:D

    所以改为提供一套日内策略的简化版(运行在EURUSD的1小时周期上面),具体说就是 GMMA(顾比均线?),Bolinger Band(保林通道?)的组合,通过GMMA在快线组合(trader lines)上的扩张和收缩来生成进场出场信号,BB用于确定止损和移动止损。为了利用Amibroker的强大扫描功能,还有对应的一个exploration版本。共有3个AFL文件,后面的例子都用到这三个文件。

    例子100 -其实是手工交易,主要测试IB Gateway是连通的
    例子101 -简单的进场出场策略
    例子102 -带固定止损,移动止损的策略
    例子103 -在波段里面多次进场逐渐累加头寸的策略
    例子104 -复杂的多个止损单同步移动的策略

    例子103, 104会更后面才能发出来,好花时间准备。
    这些策略都没有编程。
    但是需要你的脑袋比较清醒,可以边干边抽烟或者喝咖啡。:D :D
    (当然了,Amibroker那边的AFL是需要编程的,但是都已经做好,就是上面3个AFL不用改)

    有兴趣的朋友可以先准备一下运行环境:
    - IB Gateway (现在最新的TWS安装包都已经包括这个)
    - IB account (paper account, 其实live account也行 :) )
    - Amibroker 5.0 以上 (更早的版本应该也行,但我没试过)
    - Excel 2003/2007/2010 (装一个版本就行)
    - .Net framework 2.0 SP2 (service pack 2)

    到时候就可以花几个小时(而不是几年)升级成为半自动或自动阻击手了。 :D
     
  6. 我准备好了,还有long black:)
     
  7. 哈哈,你真快,我也加油。多谢你的long black.. :D
     
  8. 今天才注意到这个贴子,太有意义了!
    我现在用的平台是lmax的mt4,它是可以自动交易,且正好用上mt4的ea.
    要是能用上Lmax的api,那就更好了,希望楼主能提供这方面的帮助.
     
  9. 以后要请大版主帮改一下这个帖子的标题,等这个系统正式发出来之后。:D

    我的确是有一个mt4的接口,可以连接mb4和oanda的mt4,连接lmax应该没有问题。如果你有兴趣的话,等我忙完这阵子发给你。不过我之前在一个帖子里面说过,根据mt4做出来的策略移植到像ib/mbt/dukascopy这些ECN类平台时比较麻烦。

    mt4是基于订单号,下50个单子就得管理50个单子,建大头寸的时候头都搞大了。
    ecn类和期货一样是基于头寸的,下50个单子可以合并成一个大头寸,之后2,3个单子就可以平仓,而不是像mt4一样去平仓50个单子。你玩ea很久,是不是也觉得这个问题很严重?当然了,那些一个单子进进出出刮头皮的ea倒是省事很多。:D

    lmax的接口我现在没精力去搞,虽然也不会难,今后如果有高手愿意做的话,我会全力支持的。:)
     
  10. 对于LMAX来说,它的MT4本身是可以直接用上以前开发的EA的,唯一的问题只是它的日K线一周有六根,而我们平时习惯于一周5根K线.这对EA的运行会产生一定的影响,现在我正在试图合并周日的那根K线,然后再自己计算各指标值.
    最好的解决办法是用上LMAX的API,这样才可以从根本上解决很多问题:1 mt4的断线, 2延时, 3 交易成本稍高,4 数据更可靠.
    当然,数据可靠是最主要的问题.
    至于MT4的订单管理,我觉得倒不是问题,主要是因为EA不去记订单号,尽管订单也很多,它只关心交易的方向.
    希望楼主有空时可以作作这个API.
     
  11. sis

    sis

    espresso 兄
    请问如果不是IB,是别的(如现在我用的是法国本地证卷公司)。应该怎样用你的引擎呢?
     
  12. 如果他们提供交易编程接口的话,还是有可能的,但是要自己写一些程序了,
    其实就是使用其接口发订单,读到订单状态即可,其他的事情就由这个系统完成,
    这比自己开发一个完整的自动交易系统简单多了。

    希望这个星期内能发个版本出来了。 :)
     
  13. sis

    sis

    看來有些麻烦,暂時还沒有聽說过他们有提供接口的。随问一下,在不提供接囗的情况下,如果只需要突破触发下单(止盈、上损、反转),有没有可行的路径?
     
  14. 期待ing, 2013年海洋最有实战价值帖子。 哈哈,如果合适, 看来要转战Amibroke了
     
  15. 对,我得找找破解版的amibroke了
     
  16. 顶一下好贴又不会怀孕
     
  17. 回95楼sis,如果没有API的话,估计只有像这里一些大牛们那样用键盘精灵,autoit之类的工具去模拟键盘和鼠标,然后你也就自动化了。其实,工具不重要,能自动化的猫都是好猫。 :D
    (其实现在这个系统甚至可以有个autoit之类的接口,反正也就是发送订单和读订单状态。不过这有点太geek了,还是暂时不考虑吧 )

    多谢其他几位帮顶加关注 :D
     
  18. sis

    sis

    谢谢 espresso
     
  19. 有兴趣的朋友可以先睹为快: :D
    http://www.atsxl.com/

    不过,最后打包的文件还没有放上来,应该就是这两天了。
    下面两个链接比较详细,可以熟悉一下大概的使用和配置过程。

    中文快速入门指南:
    http://www.atsxl.com/zh:qs-atsxl

    配置 Amibroker 及其 AFL:
    http://www.atsxl.com/zh:config-ab

    从上面的链接可以下载到整个入门指南中要使用到的3个AFL文件,
    Amibroker 的指标和扫描可以先装起来玩一下,
    看看如果是你自己写程序自动化这个系统要怎么做? :)
     
  20. 用autoit的话一定要注意,在VPS或托管服务器上可能是不可用的,因为没有配备物理意义上的鼠标键盘的缘故。在一般的计算机上应该没有问题