Strategi ini adalah sistem perdagangan adaptif yang menggabungkan penunjuk ZigZag dengan penunjuk Aroon. Penunjuk ZigZag menapis bunyi bising pasaran dan mengenal pasti pergerakan harga yang signifikan, sementara penunjuk Aroon mengesahkan kekuatan trend dan titik pembalikan yang berpotensi. Melalui gabungan sinergi kedua-dua penunjuk ini, strategi ini mengekalkan kepekaan terhadap trend sambil juga menangkap titik perubahan pasaran dengan tepat pada masanya.
Logik teras strategi ini adalah berdasarkan unsur-unsur utama berikut: 1. Indikator ZigZag menapis turun naik jangka pendek dengan menetapkan parameter kedalaman (zigzagDepth), hanya mengekalkan pergerakan harga yang signifikan secara statistik. 2. Indikator Aroon menghasilkan Aroon Up dan Aroon Down garis dengan mengira selang masa antara harga tertinggi dan terendah (AroonLength). 3. isyarat masuk dicetuskan oleh dua keadaan serentak: - Posisi panjang dibuka apabila Aroon Up melintasi Aroon Down dan ZigZag menunjukkan trend menaik - Posisi pendek dibuka apabila Aroon Down melintasi di atas Aroon Up dan ZigZag menunjukkan trend ke bawah 4. Isyarat keluar dicetuskan oleh penyeberangan penunjuk Aroon: - Posisi panjang ditutup apabila Aroon Down melintasi Aroon Up. - Posisi pendek ditutup apabila Aroon Up melintasi Aroon Down
Strategi ini membina sistem trend berikut yang komprehensif melalui gabungan penunjuk ZigZag dan Aroon. Kekuatannya terletak pada kemampuan menyesuaikan diri dan mekanisme pengesahan berganda, sementara perhatian mesti diberikan kepada pemilihan parameter dan kesan persekitaran pasaran. Melalui pengoptimuman dan peningkatan yang berterusan, strategi menunjukkan janji untuk prestasi yang stabil dalam perdagangan sebenar.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-10 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Zig Zag + Aroon Strategy", overlay=true) // Zig Zag parameters zigzagDepth = input(5, title="Zig Zag Depth") // Aroon parameters aroonLength = input(14, title="Aroon Length") // Zig Zag logic var float lastZigZag = na var float lastZigZagHigh = na var float lastZigZagLow = na var int direction = 0 // 1 for up, -1 for down // Calculate Zig Zag if (not na(high) and high >= ta.highest(high, zigzagDepth) and direction != 1) lastZigZag := high lastZigZagHigh := high direction := 1 if (not na(low) and low <= ta.lowest(low, zigzagDepth) and direction != -1) lastZigZag := low lastZigZagLow := low direction := -1 // Aroon calculation highestHigh = ta.highest(high, aroonLength) lowestLow = ta.lowest(low, aroonLength) aroonUp = (aroonLength - (bar_index - ta.highestbars(high, aroonLength))) / aroonLength * 100 aroonDown = (aroonLength - (bar_index - ta.lowestbars(low, aroonLength))) / aroonLength * 100 // Long entry condition longCondition = (ta.crossover(aroonUp, aroonDown)) and (lastZigZag == lastZigZagHigh) if (longCondition) strategy.entry("Long", strategy.long) // Short entry condition shortCondition = (ta.crossover(aroonDown, aroonUp)) and (lastZigZag == lastZigZagLow) if (shortCondition) strategy.entry("Short", strategy.short) // Exit conditions if (ta.crossover(aroonDown, aroonUp) and strategy.position_size > 0) strategy.close("Long") if (ta.crossover(aroonUp, aroonDown) and strategy.position_size < 0) strategy.close("Short") // Plot Zig Zag plot(lastZigZag, color=color.blue, title="Zig Zag", linewidth=2, style=plot.style_stepline) // Plot Aroon hline(70, "Aroon Up Overbought", color=color.red) hline(30, "Aroon Down Oversold", color=color.green) plot(aroonUp, color=color.green, title="Aroon Up") plot(aroonDown, color=color.red, title="Aroon Down")