Strategi ini adalah sistem perdagangan adaptif yang menggabungkan indikator ZigZag dengan indikator Aroon. Indikator ZigZag menyaring kebisingan pasar dan mengidentifikasi pergerakan harga yang signifikan, sementara indikator Aroon mengkonfirmasi kekuatan tren dan titik pembalikan potensial. Melalui kombinasi sinergis dari kedua indikator ini, strategi ini mempertahankan kepekaan terhadap tren sekaligus menangkap titik balik pasar secara tepat waktu.
Logika inti dari strategi ini didasarkan pada elemen kunci berikut: 1. Indikator ZigZag menyaring fluktuasi jangka pendek dengan menetapkan parameter kedalaman (zigzagDepth), hanya mempertahankan pergerakan harga yang signifikan secara statistik. 2. Indikator Aroon menghasilkan Aroon Up dan Aroon Down garis dengan menghitung interval waktu antara harga tertinggi dan terendah (AroonLength). Sinyal masuk dipicu oleh dua kondisi bersamaan: - Posisi panjang dibuka ketika Aroon Up melintasi di atas Aroon Down dan ZigZag menunjukkan tren naik - Posisi pendek dibuka ketika Aroon Down melintasi di atas Aroon Up dan ZigZag menunjukkan tren menurun 4. Sinyal keluar dipicu oleh crossover indikator Aroon: - Posisi panjang ditutup ketika Aroon Down melintasi di atas Aroon Up - Posisi pendek ditutup ketika Aroon Up melintasi di atas Aroon Down
Strategi ini membangun sistem trend-mengikuti yang komprehensif melalui kombinasi indikator ZigZag dan Aroon. Kekuatannya terletak pada kemampuan beradaptasi dan mekanisme konfirmasi ganda, sementara perhatian harus diberikan pada pemilihan parameter dan dampak lingkungan pasar. Melalui optimalisasi dan perbaikan terus-menerus, strategi menunjukkan janji untuk kinerja yang stabil dalam perdagangan aktual.
/*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")