Strategi ini didasarkan pada sinyal silang EMA23 dan EMA50 untuk perdagangan. Ketika EMA23 melintasi di atas EMA50, itu menghasilkan sinyal beli, dan ketika melintasi di bawah, itu menghasilkan sinyal jual. Strategi ini juga menerapkan stop loss untuk posisi panjang ketika harga turun di bawah EMA50 dan untuk posisi pendek ketika harga naik di atas EMA50. Selain itu, strategi ini kembali memasuki pasar ketika harga bergerak kembali di atas EMA50. Strategi ini cocok untuk jangka waktu 30 menit.
Strategi ini adalah strategi perdagangan kuantitatif yang didasarkan pada persilangan dua rata-rata bergerak, EMA23 dan EMA50. Ini menangkap tren melalui sinyal persilangan dan menerapkan mekanisme stop-loss dan re-entry untuk mengendalikan risiko dan meningkatkan potensi keuntungan. Strategi ini sederhana dan mudah dipahami, cocok untuk perdagangan jangka menengah hingga pendek pada jangka waktu 30 menit. Namun, strategi ini juga memiliki beberapa keterbatasan, seperti identifikasi tren yang tertinggal, penempatan stop-loss suboptimal, dan kinerja yang buruk di pasar kisaran. Di masa depan, strategi dapat dioptimalkan dengan memperkenalkan lebih banyak indikator teknis, mengoptimalkan posisi stop-loss, mengontrol frekuensi perdagangan, membedakan antara pasar tren dan kisaran, dan menerapkan tingkat take-profit dinamis untuk mencapai pengembalian yang lebih kuat.
/*backtest start: 2023-04-20 00:00:00 end: 2024-04-25 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover Strategy", overlay=true) // EMA 23 ve EMA 50'nin hesaplanması ema23 = ta.ema(close, 23) ema50 = ta.ema(close, 50) // Ana alım kuralı: EMA 23 ve EMA 50'nin yukarı kesilmesi buySignal = ta.crossover(ema23, ema50) // Ana satış kuralı: EMA 23 ve EMA 50'nin aşağı kesilmesi sellSignal = ta.crossunder(ema23, ema50) // Long pozisyon stop seviyesi longStopLoss = low < ema50 and close < ema50[1] // Short pozisyon stop seviyesi shortStopLoss = high > ema50 and close > ema50[1] // Long pozisyon için tekrar giriş kuralı longReEntry = high > ema50 and close > ema50 and close > ema50 and ema23 > ema50 // Short pozisyon için tekrar giriş kuralı shortReEntry = low < ema50 and close < ema50 and close < ema50 and ema23 < ema50 // Long işlemde kar alma seviyesi (%60) longTakeProfit = strategy.position_avg_price * 1.60 // Short işlemde kar alma seviyesi (%25) shortTakeProfit = strategy.position_avg_price * 0.75 // Long işlem için yeniden giriş koşulu longReEntryCondition = strategy.position_size <= 0 and longReEntry // Short işlem için yeniden giriş koşulu shortReEntryCondition = strategy.position_size >= 0 and shortReEntry // Geriye dönük test için başlangıç tarihi (01.01.2022) startDate = timestamp(2022, 01, 01, 00, 00) if (time >= startDate) if (buySignal) strategy.entry("Buy", strategy.long) if (sellSignal) strategy.entry("Sell", strategy.short) if (strategy.position_size > 0 and (longStopLoss or close >= longTakeProfit)) strategy.close("Buy") if (strategy.position_size < 0 and (shortStopLoss or close <= shortTakeProfit)) strategy.close("Sell") if (longReEntryCondition) strategy.entry("Buy", strategy.long) if (shortReEntryCondition) strategy.entry("Sell", strategy.short)