
Strategi ini adalah strategi perdagangan yang menyesuaikan diri berdasarkan sistem dua garis sejajar, mengenal pasti isyarat beli dengan persilangan purata bergerak cepat (EMA25) dengan purata bergerak perlahan (EMA100), dan menggabungkan tujuan berhenti kehilangan dan keuntungan yang dinamik untuk mengoptimumkan kesan perdagangan. Strategi ini menggunakan pemikiran perdagangan yang menembusi, memberi tumpuan kepada kawalan risiko sambil menjamin keuntungan, sesuai untuk perdagangan trend jangka menengah dan panjang.
Logik teras strategi ini terdiri daripada tiga bahagian utama:
Strategi ini mencapai ciri-ciri keuntungan risiko yang lebih baik dengan menangkap titik permulaan trend yang bersilang secara merata, dengan mekanisme pengurusan stop-loss dan keuntungan yang dinamik. Reka bentuk strategi mempertimbangkan sepenuhnya keperluan pertempuran sebenar, dengan kepraktisan yang kuat. Dengan arah pengoptimuman yang disyorkan, kestabilan dan kesesuaian strategi dapat ditingkatkan lagi. Strategi ini sesuai untuk digunakan oleh pedagang yang mempunyai toleransi risiko yang kuat, mengejar keuntungan yang stabil dalam jangka panjang.
/*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!")