1990年,史蒂夫 · 尼森将古老的蜡烛图技术系统地介绍给了西方投资界,这一举动震惊了传统的技术分析方法,史蒂夫 · 尼森因此被誉为现代蜡烛图技术之父。蜡烛图不仅全球广泛普及,而且经久不衰,沿用至今。几乎在任何一个交易软件上都能看到它的身影,之所以如此流行,得益于其简单性和清晰性。
作为投资的入门读物,很多人一开始都会选择史蒂夫 · 尼森的《日本蜡烛图技术》。这本书详细描述了蜡烛图的各种形态:反转形态、持续形态等多达几十种,如果要加上形态的变种以及各种组合恐怕要有上百种之多。 如上图所示,这些各有特征且种类繁多的名称,是由价格走势中若干经典型形态作出归纳命名,用来推断出市场现存的趋势将会延续或反转。
蜡烛图技术真的可以预测市场吗?我们还是写一个策略来验证一下。这里先以史蒂夫 · 尼森最为推崇的神奇十字星为例。
源码如下: 注:源码运行环境在优宽量化交易平台(youquant.com),策略代码使用了CTA交易类库,关于CTA策略类库可以参考 https://www.youquant.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)
} // 开空单或反手开空单
})
}
回测配置
测试螺纹钢(黑色系)结果:
如你所见,如果只利用蜡烛图技术中的十字星形态,作为买卖依据,回测绩效不尽如意。
一个例子可能不足以说明,接着我们试试在蜡烛图技术中使用率最高的反转形态:锤子线和倒锤子线。
源码如下: 注:源码运行环境在优宽量化交易平台(youquant.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.youquant.com/strategy/96793 就可以在线回测。
从上面的两次回测结果我们看到,只利用锤子线和倒锤子线形态作为买卖依据,测试效果会比十字星形态要好一些。按照教科书上的说法,锤子线通常带着长长的下影线,意味着杀跌动能被消化,后市看涨;倒锤子线通常带着长长的上影线,意味着上涨动能被消耗,后市看跌。