Strategi ini menggunakan persilangan dua rata-rata bergerak eksponensial (EMA) dengan periode yang berbeda sebagai sinyal perdagangan, sambil menetapkan stop loss titik tetap dan mengambil tingkat keuntungan. Ketika EMA jangka pendek melintasi di atas EMA jangka panjang, ia membuka posisi panjang; ketika EMA jangka pendek melintasi di bawah EMA jangka panjang, ia membuka posisi pendek. Strategi menetapkan stop loss titik tetap dan mengambil tingkat keuntungan untuk mengontrol risiko dan mengunci keuntungan.
Strategi stop loss dan take profit dengan moving average ganda adalah strategi trading yang sederhana dan mudah digunakan yang menghasilkan sinyal trading melalui EMA crossover sambil mengatur stop loss titik tetap dan mengambil tingkat keuntungan untuk mengendalikan risiko. Keuntungan dari strategi ini terletak pada logika yang jelas, penerapan yang mudah, dan kemampuan untuk menangkap tren pasar secara efektif. Namun, strategi ini juga menghadapi risiko seperti sinyal palsu, penundaan tren, pasar yang terikat rentang, dan tingkat stop loss tetap. Arah optimasi termasuk memperkenalkan lebih banyak indikator, mengoptimalkan parameter, stop loss dinamis, manajemen posisi, dan menambahkan filter. Pedagang dapat mengoptimalkan dan menyesuaikan strategi sesuai dengan preferensi risiko dan karakteristik pasar mereka untuk meningkatkan kekuatan dan profitabilitas strategi.
/*backtest start: 2024-05-01 00:00:00 end: 2024-05-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA5 Cross EAM200 && SL/TP 50 and 200 Point Target", overlay=true) // Define input parameters for EMA lengths ema_5 = input.int(5, title="Fast EMA Length") ema_200 = input.int(200, title="Slow EMA Length") // Define input parameters for stop loss and profit target in points stopLossPoints = input.float(50, title="Stop Loss (Points)") profitTargetPoints = input.float(200, title="Profit Target (Points)") // Calculate EMAs price = close emafast = ta.ema(price, ema_5) emaslow = ta.ema(price, ema_200) // Plot EMAs on chart plot(emafast, title="5-period EMA", color=color.black) plot(emaslow, title="200-period EMA", color=color.blue) // Extra lines if needed ema_13 = input.int(13, title="13 EMA") ema_13_line = ta.ema(price, ema_13) plot(ema_13_line, title="13-period EMA", color=color.rgb(156, 39, 176, 90)) ema_20 = input.int(20, title="20 EMA") ema_20_line = ta.ema(price, ema_20) plot(ema_20_line, title="20-period EMA", color=color.red) // Define entry conditions longCondition = ta.crossover(emafast, emaslow) shortCondition = ta.crossunder(emafast, emaslow) // Counter to keep track of the number of bars since the entry var int barCount = na // Reset counter and enter long trade if (longCondition) strategy.entry("Long", strategy.long, comment="Long") barCount := 0 // Reset counter and enter short trade if (shortCondition) strategy.entry("Short", strategy.short, comment="Short") barCount := 0 // Increment counter if in trade if (strategy.opentrades > 0) barCount += 1 // Calculate entry price entryPrice = strategy.position_avg_price // Exit long trade if stop loss, profit target hit, or 200 points have been reached if (strategy.position_size > 0) strategy.exit("Take Profit/Stop Loss", "Long", stop=entryPrice - stopLossPoints, limit=entryPrice + profitTargetPoints) // Exit short trade if stop loss, profit target hit, or 200 points have been reached if (strategy.position_size < 0) strategy.exit("Take Profit/Stop Loss", "Short", stop=entryPrice + stopLossPoints, limit=entryPrice - profitTargetPoints)