Strategi ini adalah sistem perdagangan adaptif berdasarkan sistem rata-rata bergerak ganda, yang mengidentifikasi sinyal beli melalui persilangan rata-rata bergerak cepat (EMA25) dan rata-rata bergerak lambat (EMA100), dikombinasikan dengan target stop-loss dan keuntungan dinamis untuk mengoptimalkan kinerja perdagangan.
Logika inti dari strategi ini mencakup tiga komponen utama:
Strategi ini menangkap titik awal tren melalui crossover rata-rata bergerak, ditambah dengan mekanisme manajemen stop-loss dan keuntungan yang dinamis, mencapai karakteristik risiko-pahala yang menguntungkan. Desain strategi sepenuhnya mempertimbangkan persyaratan praktis dan menunjukkan kepraktisan yang kuat. Melalui arah optimasi yang disarankan, stabilitas dan kemampuan beradaptasi strategi dapat ditingkatkan lebih lanjut. Ini cocok untuk pedagang dengan toleransi risiko yang kuat yang mengejar pengembalian stabil jangka menengah hingga 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!")