
Strategi ini adalah sistem perdagangan yang didasarkan pada indeks bergerak rata-rata jangka menengah dan panjang (EMA), yang menggabungkan manajemen posisi dinamis dan mekanisme pengendalian risiko. Strategi ini mengidentifikasi tren pasar melalui 21 siklus dan 55 siklus EMA, sementara secara dinamis menyesuaikan ukuran posisi perdagangan berdasarkan rasio risiko-penghasilan dan persentase risiko yang disesuaikan oleh pengguna, yang memungkinkan kontrol yang tepat atas risiko.
Logika inti dari strategi ini didasarkan pada sinyal silang EMA dari dua periode waktu. Ketika 21 siklus EMA naik melintasi 55 siklus EMA, sistem mengidentifikasi sebagai tren naik, memicu banyak sinyal; Ketika 21 siklus EMA turun melintasi 55 siklus EMA, sistem mengidentifikasi sebagai tren menurun, memicu sinyal kosong. Pengaturan stop loss menggunakan titik terendah dari dua garis K terakhir (<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Strategi ini membangun sistem perdagangan yang lengkap dengan menggabungkan sinyal tren EMA dan manajemen risiko dinamis. Keunggulan inti dari strategi ini adalah manajemen posisi dan mekanisme kontrol risiko yang ilmiah, namun masih memerlukan pengoptimalan parameter yang sesuai sesuai dengan lingkungan pasar dan preferensi risiko pribadi.
/*backtest
start: 2024-02-21 00:00:00
end: 2024-07-11 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Carlos Humberto Rodríguez Arias
//@version=5
strategy("EMA Crossover Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// EMA periods
MT_EMA = input.int(21, title="Medium Term EMA")
LT_EMA = input.int(55, title="Long Term EMA")
RR = input.float(2.0, title="Risk-Reward Ratio") // User-defined RR
RiskPercent = input.float(1.0, title="Risk Percentage") // User-defined risk percentage
// Calculate EMAs
Signal_MT_EMA = ta.ema(close, MT_EMA)
Signal_LT_EMA = ta.ema(close, LT_EMA)
// Plot EMAs
plot(Signal_MT_EMA, title="Medium Term EMA", color=color.orange, linewidth=2)
plot(Signal_LT_EMA, title="Long Term EMA", color=color.blue, linewidth=2)
// Determine trend conditions
uptrend = ta.crossover(Signal_MT_EMA, Signal_LT_EMA)
downtrend = ta.crossunder(Signal_MT_EMA, Signal_LT_EMA)
// Stop-Loss Calculations
longStopLoss = ta.lowest(low, 2) // SL for buy = lowest low of last 2 candles
shortStopLoss = ta.highest(high, 2) // SL for sell = highest high of last 2 candles
// Take-Profit Calculations
longTakeProfit = close + (close - longStopLoss) * RR
shortTakeProfit = close - (shortStopLoss - close) * RR
// Calculate Position Size based on Risk Percentage
capital = strategy.equity * (RiskPercent / 100)
longPositionSize = capital / (close - longStopLoss)
shortPositionSize = capital / (shortStopLoss - close)
// Execute Buy Order
if uptrend
strategy.entry("Long", strategy.long, qty=longPositionSize)
strategy.exit("Long Exit", from_entry="Long", stop=longStopLoss, limit=longTakeProfit)
// Execute Sell Order
if downtrend
strategy.entry("Short", strategy.short, qty=shortPositionSize)
strategy.exit("Short Exit", from_entry="Short", stop=shortStopLoss, limit=shortTakeProfit)