一个可实盘交易的系统

Discussion in 'Philosophy and Strategy' started by maharaj, Jan 10, 2009.

  1. 一直做美盘,最近对国内期货有些兴趣,买了些数据来做测试。发现有一个系统在白糖上不错。这个系统是 Michael Chalek 在80 年代开发的 Dual Thrust。基本原理很简单,描述出来如下,这样不懂编程的人都可以明白:

    1. 在今天的收盘,计算两个值: 最高价-收盘价, 和 收盘价-最低价。然后取这两个值较大的那个,乘以k值0.7。把结果称为 触发值。

    2. 在明天的开盘,记录开盘价,然后在价格超过(开盘+触发值)时马上买入,或者价格低于(开盘-触发值)时马上卖空。

    3. 没有明确止损。这个系统是反转系统,也就是说,如果在价格超过(开盘+触发值)时手头有一口空单,则买入两口。同理,如果在价格低于(开盘-触发值)时手上有一口多单,则卖出两口。

    我用TradeStation测试的结果如下:

    [​IMG]

    测试条件: 一口合约,已减去交易费用50元
    时期: 2006-1-6 (白糖开始交易)至 2009-1-8
    交易次数: 249
    胜率: 48.59%
    平均赢利: 223.17元
    最大连亏: 5880 元


    要求不高的话,这已经是一个可以投入实盘交易的系统了。k是唯一的参数,在大范围内变动(0.5-1.1)时,系统赢利都不错。有兴趣的同好可以试验各种滤网,看哪种滤网能显著提高绩效。如果有时间,我会在其他的品种上都测试一下。

    因为交易美盘,我没法人工交易国内期货。哪位朋友可以编出TB的代码,或者有自动交易的建议,请告诉我一下。谢谢。
     
    Last edited by a moderator: Nov 16, 2009
  2. 这是资金曲线:
    [​IMG]
     
    Last edited by a moderator: Nov 16, 2009
  3. 是平掉原来一口,再开一口相反的单吗 ?还是双向持仓呢
     
  4. 平掉原来一口,再开一口相反的单。
     
  5. 在日线上测试的话,有一个问题,如果盘中振荡较大,既满足触发做多的条件,又满足触发做空的条件,则如何处理?
     
  6. 支持这种质量越来高,接近实战的帖子
     
  7. 数据中白糖的主力合约月份到期时是如何切换的?
     
  8. 看当时手上的仓位。
    如果有多单,则翻空。
    如果有空单,则翻多。
    如果是平仓?这是个反转系统,除了最开始(在2006年)的第一单外,是没有平仓的情况了。
     
  9. 补充:

    因为国内期货中午有休息,日内价格可能不连续,今天用5分钟线测试了,与日线测试的结果偏差在1%以下。
     
  10. 有两个过程:
    1. 拼接:取交易量最大的合约,将数据拼在一起。
    2. 补差:切换时,计算前月合约与后月合约在切换日前一天的差值,将这个差值补到所有切换日之前的数据中。

    这是美盘中常说的 back-adjusted continuous data。

    把国内期货的数据转换到这种格式确实花了俺好几个钟头。
     
  11. 我的意思是在日线上回测的话,无从判断是先出现多头信号还是先出现空头信号,这样就无法确定到收盘应该持有什么方向的仓位。
     
  12. ;) 看5分种呗,实在不行看一分钟的,再不行,就看粉笔,呵呵
     
  13. 只看开盘时的持仓,开盘时是多则不管日间的多头信号,开盘时是空则不管日间的空头信号
     
  14. 对于白糖K取值为1的情况下似乎结果更理想。

    如果K取值0.7,
    我在文华的白糖指数30分钟上测试,只以30分钟收盘价判断是否满足下单条件并只以收盘价下单,从06年8月份(我的数据最早就那么多)到现在,始终交易1收共盈利26329元,交易费用5960元(考虑滑点假定每手20元),胜率43%,profit factor 1.77

    需注意系统的一大段盈利出现在06年的初期,当时是强烈的单边行情。
     
  15. K取1的时候盈利27043元,交易费用3340元,胜率48%,是一个实际交易可考虑的系统。
     
  16. clm,能不能请你把k值0.7和1的测试结果贴出来?这样讨论可以有具体的数据为基础。谢谢!
     
  17. 在策略上,Dual Thrust方式的价格触发和ATR方式的价格触发在优劣性上有没有什么可比较的地方呢
     
  18. 我想不能一概而论。可以就这个系统,用你说的两种方式都做试验,一定会有收获,这样做出的结论是一手的,对你的交易更有指导意义。

    现在有TradeStation了吗?neo_cn 坛友写过TS的用法教程,正好可以上手。
     
  19. hi Maharaj兄, TS是有了,不过还没搞定怎么用,导入30分钟的历史数据总是有问题,老是显示不出来,所以还没去研究TS的CODING,回头我去看看neo_cn坛友写的教程 呵呵。

    我还是在我原来用C++写的测试程序上,测试了一下你提到的这个方法,不过我测的是日内交易就是了 呵呵 发现和ATR比,交易次数增加了,成功率增加了1个百分点,优势率差不多,但整体的盈利额增加了,我估计是因为交易次数增加的缘故。至于K值,我的程序同样发现1.1的效果比0.7的好
     
  20. 可以把ATR的C++ 程序(只需算法)贴出来看看吗?

    怎么选择不同的k值我觉得是有讲究的,是个讨论的好题目。不过,首先要统一数据,慢慢来。clm 坛友也有兴趣。

    另外,如果你喜欢C#,可以试试 QuantDeveloper, 我在另一帖给了下载,搜索下新贴就找到了。