一目均衡策略是一种趋势跟踪策略,它结合了Ichimoku云图指标的 Conversion线和Base线,以及移动平均线EMA来判断趋势方向,根据价格突破的信号入场。当Conversion线上穿Base线且价格高于200日EMA时做多;当Conversion线下穿Base线时平仓。该策略融合多个指标判断趋势方向,可以有效跟踪趋势,获得超额收益。
该策略主要使用以下指标:
Conversion线:Donchian通道的中间值,代表价格的最短期趋势,相当于9日移动平均线。
Base线:Donchian通道的中间值,代表价格的中期趋势,相当于26日移动平均线。
Lagging Span:关闭价格的移位平均线,移位周期为120日,用来判断支撑阻力。
Lead 1:Conversion线和Base线的平均值,代表价格的长期趋势。
Lead 2:120日Donchian通道的中间值,代表价格的最长期趋势。
EMA200: 200日的指数移动平均线,判断大趋势方向。
当Conversion线上穿Base线时,表示短期均线上穿长期均线,属于金叉信号,说明价格趋势开始变强,可以做多。此时如果价格还高于200日EMA,则说明处于长线多头行情,做多信号更加可靠。
当Conversion线下穿Base线时,属于死叉信号,说明价格趋势开始转弱,应平仓止损。
综合多个均线的交叉信号,可以有效判断价格趋势转折点,实现趋势跟踪。同时结合长线均线过滤,可以避免因短期市场震荡而出现的错误信号。
使用多重均线判定趋势方向,提高判断准确性。Conversion线和Base线的交叉为核心交易信号,Lead 1和Lead 2的多空排列用来验证信号的可靠性。
Lagging Span可用于确认支撑阻力位,进一步提升入场的时机。
运用EMA200判断大趋势方向,避免因短期调整而错误交易。只有大趋势向上时,才考虑做多信号。
通过参数优化,转换线和基准线的周期组合可以把握不同周期的趋势转换点。
策略思路清晰易于理解,容易实盘复现。
Conversion线和Base线交叉时,要关注Lead 1和Lead 2的排列以确认信号。如果排列顺序异常,可能是假突破,此时应避免交易。
必须结合更长周期指标如EMA200来判断大趋势,如果大趋势向下,即使出现做多信号也要规避。
该策略更依赖趋势,在震荡行情中容易产生错误信号导致止损。应结合波动率等指标来控制风险。
参数设置需要测试优化,如果参数设定不当,转换线和基准线会过于灵敏或迟钝,导致漏单或错单。
可以测试添加其他均线指标,如EMA 50、EMA 100等来辅助判断趋势。
可以结合交易量指标来确认趋势转折点,避免无效突破。例如突破时要求交易量放大。
可以结合波动率指标如ATR来动态调整止损位和盈利目标。在波动率扩大时,适当放宽止损;波动率缩小时,可以收紧止损以锁定利润。
可以基于历史数据回测优化转换线和基准线的参数组合,以获得更稳定的交易信号。
可以建立仓位管理策略,在大趋势向上时加大做多仓位,在震荡行情中减小仓位。
一目均衡策略通过多重均线指标判断趋势方向,在趋势转换点入场,然后顺势而为,有效把握中长线趋势。相比单一指标,该策略可以过滤伪信号,提高入场的准确性。但仍需要优化参数,并辅以其他指标来确保信号的可靠性,控制风险。如果参数设置合理,交易频次不会过高,可以长时间持有趋势波段,实现超额收益。
/*backtest start: 2022-10-18 00:00:00 end: 2023-10-24 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title="TK Cross > EMA200 Strat", shorttitle="TK Cross > EMA200 Strat", overlay=true) ema200 = ema(close, 200) conversionPeriods = input(20, minval=1, title="Conversion Line Periods"), basePeriods = input(60, minval=1, title="Base Line Periods") laggingSpan2Periods = input(120, minval=1, title="Lagging Span 2 Periods"), displacement = input(30, minval=1, title="Displacement") donchian(len) => avg(lowest(len), highest(len)) conversionLine = donchian(conversionPeriods) baseLine = donchian(basePeriods) leadLine1 = avg(conversionLine, baseLine) leadLine2 = donchian(laggingSpan2Periods) plot(conversionLine, color=#0496ff, title="Conversion Line", linewidth=4) plot(baseLine, color=#991515, title="Base Line", linewidth=4) plot(close, offset = -displacement, color=#459915, title="Lagging Span") p1 = plot(leadLine1, offset = displacement, color=green, title="Lead 1") p2 = plot(leadLine2, offset = displacement, color=red, title="Lead 2") fill(p1, p2, color = leadLine1 > leadLine2 ? green : red) plot(ema200, color=purple, linewidth=4) strategy.initial_capital = 50000 strategy.entry('tkcross', strategy.long, strategy.initial_capital / close, when=conversionLine>baseLine and close > ema200) strategy.close('tkcross', when=conversionLine<baseLine)