
Cette stratégie est une stratégie de trading auto-adaptative basée sur un système bi-équivalent, qui identifie les signaux d’achat par la croisée des moyennes mobiles rapides (EMA25) et des moyennes mobiles lentes (EMA100) et combine des objectifs d’arrêt et de prise de profit dynamiques pour optimiser l’efficacité de la négociation. La stratégie adopte une approche de négociation de rupture, en mettant l’accent sur le contrôle du risque tout en garantissant les gains, et convient aux transactions à tendance à moyen et long terme.
La logique de base de la stratégie comprend trois éléments clés:
La stratégie est conçue en tenant compte des besoins de la bataille et est très pratique. La stabilité et l’adaptabilité de la stratégie peuvent être encore améliorées grâce à l’orientation optimisée proposée. La stratégie est adaptée aux traders qui ont une forte tolérance au risque et qui recherchent des gains stables à moyen et long terme.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Crossover with TP and SL (Buy only) and Break-even", overlay=true)
// EMA sozlamalari
emaFastLength = input.int(25, title="Fast EMA Length")
emaSlowLength = input.int(100, title="Slow EMA Length")
// Hisoblash
emaFast = ta.ema(close, emaFastLength)
emaSlow = ta.ema(close, emaSlowLength)
// Kesishishni aniqlash
bullishCross = ta.crossover(emaFast, emaSlow) // EMA 25 EMA 100 ni yuqoriga kesib o'tganda
// EMA 100 tagidagi oxirgi qizil shamning tagini olish
lastRedCandleLow = ta.valuewhen(close < open and close < emaSlow, low, 0) // EMA 100 pastidagi qizil shamning tagi
// TP va SL darajalarini hisoblash
longSL = lastRedCandleLow
longTP = close + 3 * (close - longSL) // TP SL ga nisbatan 1:2 masofada
// Savdoni ochish va 2% foyda bo'lganda SLni break-even ga o‘zgartirish
if (bullishCross)
strategy.entry("Buy", strategy.long) // Buy pozitsiyasini ochish
strategy.exit("Exit Buy", "Buy", stop=longSL, limit=longTP) // SL va TP qo'yish
// 2% foyda bo'lganda SLni break-even ga o'zgartirish
if (strategy.position_size > 0)
profitPercentage = (close - strategy.position_avg_price) / strategy.position_avg_price * 100
if (profitPercentage >= 2)
strategy.exit("Exit Buy BE", "Buy", stop=strategy.position_avg_price) // SLni break-even ga o'zgartirish
// Signalni ko'rsatish
plotshape(bullishCross, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
// // TP va SL chizish
// if (bullishCross)
// line.new(x1=bar_index, y1=longSL, x2=bar_index+1, y2=longSL, color=color.red, width=1, extend=extend.none)
// line.new(x1=bar_index, y1=longTP, x2=bar_index+1, y2=longTP, color=color.green, width=1, extend=extend.none)
// label.new(bar_index, longSL, text="SL: " + str.tostring(longSL), style=label.style_label_down, color=color.red, textcolor=color.white, size=size.small)
// label.new(bar_index, longTP, text="TP: " + str.tostring(longTP), style=label.style_label_up, color=color.green, textcolor=color.white, size=size.small)
// EMA chizish
plot(emaFast, color=color.blue, title="Fast EMA (25)")
plot(emaSlow, color=color.orange, title="Slow EMA (100)")
// Alert qo'shish
alertcondition(bullishCross, title="Buy Signal Alert", message="EMA 25 crossed above EMA 100! Buy Signal!")