本策略是一个基于多重技术指标的趋势反转交易系统,结合了ZigZag指标、分形理论(Fractals)和抛物线转向指标(Parabolic SAR)。该策略主要通过这三个指标的协同配合,在市场趋势发生转变时捕捉交易机会,通过严格的入场和出场条件控制风险。
策略运作的核心原理是通过三重验证机制来确认交易信号: 1. ZigZag指标用于识别主要的趋势方向,通过设定深度(depth)和偏差(deviation)参数来过滤市场噪音。 2. Fractals(分形)指标通过寻找局部高点和低点来确认潜在的反转位置。 3. Parabolic SAR则作为最终的触发信号,当价格与SAR线发生交叉时确认入场时机。
多重验证的交易条件如下: - 做多条件:价格上穿SAR线 + ZigZag显示上升趋势 + 出现下分形 - 做空条件:价格下穿SAR线 + ZigZag显示下降趋势 + 出现上分形
该策略通过综合运用多个技术指标,构建了一个相对完整的趋势反转交易系统。策略的主要优势在于信号可靠性高和风险控制完善,但也需要注意震荡市场下的假信号风险。通过提出的优化方向,特别是动态参数调整和市场环境过滤,可以进一步提升策略的稳定性和盈利能力。在实际应用中,建议通过回测充分验证参数设置,并结合市场实际情况进行针对性优化。
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("ZigZag + Fractals + SAR Crossover Stratégiia", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// Parametre ZigZag
zigzag_depth = input.int(5, title="ZigZag Hĺbka")
zigzag_deviation = input.float(5.0, title="ZigZag Odchýlka (%)") / 100
// Výpočet ZigZag
var float last_pivot = na
var bool is_uptrend = false // Inicializované na false
zigzag_high = ta.pivothigh(high, zigzag_depth, zigzag_depth)
zigzag_low = ta.pivotlow(low, zigzag_depth, zigzag_depth)
if not na(zigzag_high)
last_pivot := zigzag_high
is_uptrend := false
if not na(zigzag_low)
last_pivot := zigzag_low
is_uptrend := true
// Fraktály
fractal_up = ta.pivothigh(high, 2, 2)
fractal_down = ta.pivotlow(low, 2, 2)
// Parabolic SAR
sar = ta.sar(0.02, 0.2, 0.02)
// Prechody Parabolic SAR a Cena
sar_cross_up = ta.crossover(sar, close) // SAR prechádza nad cenu
sar_cross_down = ta.crossunder(sar, close) // SAR prechádza pod cenu
// Obchodné podmienky založené na prechodoch
long_condition = sar_cross_down and is_uptrend and not na(fractal_down)
short_condition = sar_cross_up and not is_uptrend and not na(fractal_up)
// Vstupy do pozícií
if (long_condition)
strategy.entry("Long", strategy.long)
if (short_condition)
strategy.entry("Short", strategy.short)
// Výstupy z pozícií založené na prechodoch
if (sar_cross_up)
strategy.close("Long")
if (sar_cross_down)
strategy.close("Short")
// Vizualizácia indikátorov
plotshape(series=fractal_up, location=location.abovebar, color=color.red, style=shape.triangledown, title="Fraktál Hore")
plotshape(series=fractal_down, location=location.belowbar, color=color.green, style=shape.triangleup, title="Fraktál Dole")
plot(sar, style=plot.style_cross, color=color.blue, title="Parabolic SAR")
// Vizualizácia ZigZag
plot(is_uptrend ? last_pivot : na, title="ZigZag Low", color=color.green, linewidth=2, style=plot.style_linebr)
plot(not is_uptrend ? last_pivot : na, title="ZigZag High", color=color.red, linewidth=2, style=plot.style_linebr)