이 전략은 차트 패턴 인식에 기반을 둔 자동화된 거래 전략이다. 이 전략은 주로 시장에서 이중 하위 및 이중 상위 형성을 식별하여 거래 결정을 내리고, 특정 기간 동안 가격 움직임을 모니터링하고, 자격 패턴이 나타날 때 자동으로 거래 명령을 실행한다. 이 전략은 이 주요 가격 패턴을 시각화하기 위해 지그재그 지표를 활용하여 거래자가 시장 추세를 직관적으로 이해하는 데 도움이됩니다.
전략의 핵심 논리는 기술 분석을 통해 이중 하위 및 이중 상위 패턴을 식별하는 것입니다. 구체적인 구현은 다음의 주요 단계를 포함합니다.
이것은 잘 설계되고 실용적인 자동화 거래 전략입니다. 이중 하위 및 상위 패턴의 정확한 식별을 통해 유연한 매개 변수 설정 및 포괄적인 위험 통제와 결합하여 단기 시장 반전 기회를 효과적으로 포착합니다. 특정 위험이 존재하지만 지속적인 최적화 및 개선으로이 전략은 신뢰할 수있는 거래 도구가 될 가능성이 있습니다.
/*backtest start: 2024-12-04 00:00:00 end: 2024-12-11 00:00:00 period: 3m basePeriod: 3m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Double Bottom and Top Hunter", overlay=true) // Parametreler length = input.int(100, title="Dönem Uzunluğu", defval=100) lookback = input.int(100, title="Geriye Dönük Kontrol Süresi", defval=100) // İkili Dip ve Tepe Bulma low1 = ta.lowest(low, length) high1 = ta.highest(high, length) low2 = ta.valuewhen(low == low1, low, 1) high2 = ta.valuewhen(high == high1, high, 1) doubleBottom = (low == low1 and ta.lowest(low, lookback) == low1 and low == low2) doubleTop = (high == high1 and ta.highest(high, lookback) == high1 and high == high2) // İşlem Açma Koşulları longCondition = doubleBottom shortCondition = doubleTop // İşlem Kapatma Koşulları closeLongCondition = ta.highest(high, length) > high1 and low < low1 closeShortCondition = ta.lowest(low, length) < low1 and high > high1 // İşlem Açma if (longCondition) strategy.entry("Long", strategy.long, qty=1) if (shortCondition) strategy.entry("Short", strategy.short, qty=1) // İşlem Kapatma if (closeLongCondition) strategy.close("Long") if (closeShortCondition) strategy.close("Short") // Grafik Üzerinde Göstergeler ve ZigZag Çizimi plotshape(series=longCondition, title="İkili Dip Bulundu", location=location.belowbar, color=color.green, style=shape.labelup, text="LONG") plotshape(series=shortCondition, title="İkili Tepe Bulundu", location=location.abovebar, color=color.red, style=shape.labeldown, text="SHORT") // var line zigzagLine = na // if (doubleBottom or doubleTop) // zigzagLine := line.new(x1=bar_index[1], y1=na, x2=bar_index, y2=doubleBottom ? low : high, color=doubleBottom ? color.green : color.red, width=2) // Zigzag çizgisini sürekli güncelleme // line.set_xy1(zigzagLine, bar_index[1], na) // line.set_xy2(zigzagLine, bar_index, doubleBottom ? low : high)