蜡烛图技术之十字星和锤子线策略

一、摘要

1990年,史蒂夫 · 尼森将古老的蜡烛图技术系统地介绍给了西方投资界,这一举动震惊了传统的技术分析方法,史蒂夫 · 尼森因此被誉为现代蜡烛图技术之父。蜡烛图不仅全球广泛普及,而且经久不衰,沿用至今。几乎在任何一个交易软件上都能看到它的身影,之所以如此流行,得益于其简单性和清晰性。
蜡烛图技术之十字星和锤子线策略

二、蜡烛图形态

作为投资的入门读物,很多人一开始都会选择史蒂夫 · 尼森的《日本蜡烛图技术》。这本书详细描述了蜡烛图的各种形态:反转形态、持续形态等多达几十种,如果要加上形态的变种以及各种组合恐怕要有上百种之多。
蜡烛图技术之十字星和锤子线策略
如上图所示,这些各有特征且种类繁多的名称,是由价格走势中若干经典型形态作出归纳命名,用来推断出市场现存的趋势将会延续或反转。

三、十字星形态

蜡烛图技术真的可以预测市场吗?我们还是写一个策略来验证一下。这里先以史蒂夫 · 尼森最为推崇的神奇十字星为例。
蜡烛图技术之十字星和锤子线策略

源码如下:
注:源码运行环境在发明者量化交易平台(FMZ.COM),策略代码使用了CTA交易类库,关于CTA策略类库可以参考 https://www.fmz.com/bbs-topic/1138 这篇文章中的例子。

/*backtest
start: 2015-02-22 00:00:00
end: 2020-02-13 00:00:00
period: 1h
exchanges: [{"eid":"Futures_CTP","currency":"FUTURES"}]
*/

function main() { // 主程序
    // 调用商品期货交易类库中的CTA框架。参数1:用螺纹钢指数数据产生信号,用螺纹钢当前主力合约下单。参数2:策略逻辑的回调函数。
    $.CTA("rb000/rb888", function(st) {
        var r = st.records; // 获取K线数组
        var mp = st.position.amount; // 获取持仓数据
        var longArr = talib.CDLDRAGONFLYDOJI(r) // 调用talib库中的蜻蜓十字星形态,返回数组
        var shortArr = talib.CDLGRAVESTONEDOJI(r) // 调用talib库中的墓碑十字星形态,返回数组
        var long = longArr[longArr.length - 2] // 获取上根K线形态数据
        var short = shortArr[shortArr.length - 2] // 获取上根K线倒形态数据
        if (mp <= 0 && long > 0) {
            return 1 * (mp < 0 ? 2 : 1)
        } // 开多单或反手开多单
        if (mp >= 0 && short > 0) {
            return -1 * (mp > 0 ? 2 : 1)
        } // 开空单或反手开空单
    })
}

 

回测配置
蜡烛图技术之十字星和锤子线策略

测试螺纹钢(黑色系)结果:
蜡烛图技术之十字星和锤子线策略
蜡烛图技术之十字星和锤子线策略
蜡烛图技术之十字星和锤子线策略

如你所见,如果只利用蜡烛图技术中的十字星形态,作为买卖依据,回测绩效不尽如意。

四、锤子线形态

一个例子可能不足以说明,接着我们试试在蜡烛图技术中使用率最高的反转形态:锤子线和倒锤子线。
蜡烛图技术之十字星和锤子线策略

源码如下:
注:源码运行环境在发明者量化交易平台(FMZ.COM)

/*backtest
start: 2015-02-22 00:00:00
end: 2020-02-13 00:00:00
period: 1h
exchanges: [{"eid":"Futures_CTP","currency":"FUTURES"}]
*/

function main() { // 主程序
    // 调用商品期货交易类库中的CTA框架。参数1:用螺纹钢指数数据产生信号,用螺纹钢当前主力合约下单。参数2:策略逻辑的回调函数。
    $.CTA("rb000/rb888", function(st) {
        var r = st.records; // 获取K线数组
        var mp = st.position.amount; // 获取持仓数据
        var longArr = talib.CDLHAMMER(r) // 调用talib库中的锤子线形态,返回数组
        var shortArr = talib.CDLINVERTEDHAMMER(r) // 调用talib库中的倒锤子线形态,返回数组
        var long = longArr[longArr.length - 2] // 获取上根K线形态数据
        var short = shortArr[shortArr.length - 2] // 获取上根K线倒形态数据
        if (mp <= 0 && long > 0) {
            return 1 * (mp < 0 ? 2 : 1)
        } // 开多单或反手开多单
        if (mp >= 0 && short > 0) {
            return -1 * (mp > 0 ? 2 : 1)
        } // 开空单或反手开空单
    })
}

 

回测配置
蜡烛图技术之十字星和锤子线策略

测试螺纹钢(黑色系)结果:
蜡烛图技术之十字星和锤子线策略
蜡烛图技术之十字星和锤子线策略
蜡烛图技术之十字星和锤子线策略

五、策略下载

本文策略已经分享到发明者量化策略中,直接复制链接 https://www.fmz.com/strategy/96793 就可以在线回测。

六、总结

从上面的两次回测结果我们看到,只利用锤子线和倒锤子线形态作为买卖依据,测试效果会比十字星形态要好一些。按照教科书上的说法,锤子线通常带着长长的下影线,意味着杀跌动能被消化,后市看涨;倒锤子线通常带着长长的上影线,意味着上涨动能被消耗,后市看跌。

上一篇:Python_永久储存


下一篇:Mac上如何安装python64位的talib库(亲测好用)