この戦略は,ZigZag指標とAroon指標を組み合わせた適応型取引システムである.ZigZag指標は市場のノイズをフィルターし,重要な価格変動を特定し,Aroon指標はトレンド強さと潜在的な逆転点を確認する.これらの2つの指標のシネージティックな組み合わせを通じて,戦略はトレンドに敏感性を維持し,同時に市場のターニングポイントをタイムリーに把握する.
戦略の基本論理は次の主要な要素に基づいています
この戦略は,ZigZagとAroon指標の組み合わせを通じて包括的なトレンドフォローシステムを構築する.その強みは適応性と二重確認メカニズムにある.一方,パラメータ選択と市場環境の影響に注意を払う必要があります.継続的な最適化と改善を通じて,戦略は実際の取引で安定したパフォーマンスの約束を示しています.
/*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")