
Il s’agit d’une stratégie de négociation automatisée basée sur l’identification des modèles de prix graphiques. La stratégie prend ses décisions de négociation principalement en identifiant les modèles de prix à deux niveaux dans le marché, en surveillant les mouvements de prix en définissant des périodes de temps spécifiques et en exécutant automatiquement les instructions de négociation lorsque des modèles éligibles apparaissent.
La logique centrale de la stratégie est d’identifier les formes de double bas et de double sommet du marché grâce à des méthodes d’analyse technique. La mise en œuvre comprend les étapes clés suivantes:
Il s’agit d’une stratégie de négociation automatisée conçue pour être rationnelle et pratique. En identifiant avec précision les formes bilatérales et bilatérales du marché, combinée à des paramètres flexibles et à un mécanisme de contrôle du vent bien développé, elle permet de saisir efficacement les occasions de retournement de marché à court terme. Bien qu’il existe certains risques, la stratégie est susceptible de devenir un outil de négociation fiable grâce à une optimisation et à une amélioration continues.
/*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)