
La stratégie est un système de négociation basé sur la rupture de la ligne de tendance, combinant les concepts de moyenne mobile et de rupture de prix. Le cœur de la stratégie est de générer des signaux de négociation en surveillant la rupture du cours de clôture par rapport à la moyenne mobile, et de gérer le risque en définissant des arrêts basés sur les points les plus bas et des arrêts au rapport de 2: 1.
La stratégie utilise une moyenne mobile simple (SMA) de 20 cycles comme indicateur de tendance. Lorsque le prix de clôture se déplace de la ligne moyenne vers le haut, le système génère plusieurs signaux. Le stop loss est placé au plus bas des 7 dernières lignes K, ce qui permet d’éviter d’être trop proche du point d’entrée. Le paramètre de stop loss utilise le classique rapport de perte de 2: 1, c’est-à-dire le double de la distance d’arrêt.
Il s’agit d’une stratégie de suivi de tendance structurée et logiquement claire. Elle génère des signaux par rupture des moyennes mobiles et est accompagnée d’un mécanisme de gestion des risques raisonnable.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-11 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Trend Breakout with SL and TP", overlay=true)
// Parametrlar
length = input(25, title="Length for SL Calculation")
trendLength = input(20, title="Trend Line Length")
// Trend chizig'ini hisoblash
trendLine = ta.sma(close, trendLength)
// Yopilish narxi trend chizig'ini yorib o'tganda signal
longSignal = close > trendLine and close[1] <= trendLine
// Oxirgi 7 shamning minimumini hisoblash
lowestLow = ta.lowest(low, 7)
// Stop Loss darajasini belgilash
longSL = lowestLow // SL oxirgi 7 shamning minimumiga teng
// Take Profit darajasini SL ga nisbatan 2 baravar ko'p qilib belgilash
longTP = longSL + (close - longSL) * 2 // TP 2:1 nisbatida
// Savdo bajarish
if longSignal
strategy.entry("Long", strategy.long)
strategy.exit("Take Profit", "Long", limit=longTP)
strategy.exit("Stop Loss", "Long", stop=longSL)
// Grafikda trend chizig'ini chizish
plot(trendLine, title="Trend Line", color=color.blue, linewidth=2)
// Signal chizish
plotshape(longSignal, style=shape.labelup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
// SL va TP darajalarini ko'rsatish
// if longSignal
// // SL chizig'i
// line.new(bar_index, longSL, bar_index + 1, longSL, color=color.red, width=2, style=line.style_dashed)
// // TP chizig'i
// line.new(bar_index, longTP, bar_index + 1, longTP, color=color.green, width=2, style=line.style_dashed)
// // SL va TP label'larini ko'rsatish
// label.new(bar_index, longSL, "SL: " + str.tostring(longSL), color=color.red, style=label.style_label_down, textcolor=color.white, size=size.small)
// label.new(bar_index, longTP, "TP: " + str.tostring(longTP), color=color.green, style=label.style_label_up, textcolor=color.white, size=size.small)