Strategi perdagangan stop loss dinamis EMA

EMA RSI MACD
Tanggal Pembuatan: 2024-06-17 16:17:31 Akhirnya memodifikasi: 2024-06-17 16:17:31
menyalin: 0 Jumlah klik: 635
1
fokus pada
1617
Pengikut

Strategi perdagangan stop loss dinamis EMA

Ringkasan

Strategi ini didasarkan pada sinyal silang 20 dan 200 hari indeks moving averages (EMA) dan digabungkan dengan indikator relatif kuat (RSI) dan indikator pergerakan rata-rata bertepatan dengan dispersi (MACD) untuk mengkonfirmasi untuk menghasilkan sinyal beli dan jual. Pada saat yang sama, strategi ini menggunakan metode stop loss dinamis dan target pendapatan tetap untuk mengelola risiko perdagangan dan mengunci keuntungan.

Prinsip Strategi

  1. Perhitungan 20 dan 200 hari EMA, ketika 20 hari EMA di atas melewati 200 hari EMA, menghasilkan sinyal beli; ketika 20 hari EMA di bawah melewati 200 hari EMA, menghasilkan sinyal jual.
  2. Menggunakan RSI dan MACD untuk mengkonfirmasi sinyal silang EMA, hanya melakukan pembelian ketika RSI lebih tinggi dari 50 dan garis MACD lebih tinggi dari garis sinyal; hanya melakukan penjualan ketika RSI lebih rendah dari 50 dan garis MACD lebih rendah dari garis sinyal.
  3. Tetapkan target tingkat keuntungan tetap (misalnya 20%) dan stop loss awal (misalnya 10%).
  4. Ketika keuntungan memegang posisi mencapai target tingkat keuntungan, meningkatkan harga stop loss ke bawah 10% dari harga saat ini, untuk mencapai stop loss dinamis.
  5. Ketika harga menyentuh harga stop loss dinamis, posisi terdepan berakhir dengan keuntungan.

Keunggulan Strategis

  1. Kombinasi beberapa indikator teknis untuk mengkonfirmasi sinyal transaksi, meningkatkan keandalan sinyal.
  2. Menggunakan metode stop loss yang dinamis, sementara mengunci keuntungan, memberikan ruang untuk harga untuk mundur, menghindari posisi terlambat.
  3. Menetapkan target tingkat pengembalian yang tetap membantu mengendalikan risiko dan mencapai keuntungan yang stabil.

Risiko Strategis

  1. Sinyal silang EMA dapat terjadi dengan seringnya sinyal palsu, yang menyebabkan peningkatan biaya perdagangan.
  2. Dalam pasar yang bergolak, strategi ini dapat menyebabkan kerugian beruntun.
  3. Target fixed yield dan stop loss mungkin tidak sesuai dengan kondisi pasar yang berbeda dan perlu disesuaikan dengan volatilitas pasar.

Arah optimasi strategi

  1. Masukkan lebih banyak indikator teknis atau indikator sentimen pasar untuk meningkatkan akurasi dan keandalan sinyal.
  2. Menggunakan target tingkat keuntungan dan stop loss yang disesuaikan, menyesuaikan secara dinamis sesuai dengan volatilitas pasar dan karakteristik aset.
  3. Menggabungkan tren pasar dan siklus fluktuasi, menggunakan pengaturan parameter yang berbeda dalam lingkungan pasar yang berbeda.

Meringkaskan

Strategi ini memiliki prospek untuk mendapatkan keuntungan yang stabil di pasar yang sedang tren, melalui EMA cross signal yang dikombinasikan dengan RSI dan MACD konfirmasi, serta metode manajemen risiko stop loss dinamis dan target pendapatan tetap. Namun, dalam pasar yang bergoyang, strategi ini mungkin menghadapi risiko perdagangan yang sering dan kerugian berturut-turut. Oleh karena itu, perlu lebih banyak pengoptimalan dan perbaikan untuk meningkatkan kemampuan adaptasi dan ketahanan strategi.

Kode Sumber Strategi
/*backtest
start: 2023-06-11 00:00:00
end: 2024-06-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA Crossover Strategy with RSI and MACD Confirmation and Dynamic Trailing Stop Loss", overlay=true)

// Calculate EMAs
ema20 = ta.ema(close, 20)
ema200 = ta.ema(close, 200)

// Calculate RSI
rsi = ta.rsi(close, 14)

// Calculate MACD
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)

// Plot EMAs, RSI, and MACD on the chart
plot(ema20, color=color.blue, title="EMA 20")
plot(ema200, color=color.red, title="EMA 200")
hline(70, "Overbought", color=color.red)
hline(30, "Oversold", color=color.green)
plot(rsi, title="RSI", color=color.orange)
hline(0, "Zero Line", color=color.gray)
plot(macdLine, title="MACD Line", color=color.aqua)
plot(signalLine, title="Signal Line", color=color.fuchsia)

// Strategy parameters
targetProfitPercent = 20
trailingStopIncrement = 10

// Strategy variables
var float initialStopLevel = na
var float trailingStopLevel = na

// Strategy rules with RSI and MACD confirmation
longCondition = ta.crossover(ema20, ema200) and rsi > 50 and macdLine > signalLine
shortCondition = ta.crossunder(ema20, ema200) and rsi < 50 and macdLine < signalLine

// Execute trades
if (longCondition)
    strategy.entry("Buy Call", strategy.long)
    initialStopLevel := strategy.position_avg_price * (1 - 0.10) // Initial stop-loss at 10% below entry price

if (shortCondition)
    strategy.entry("Buy Put", strategy.short)

// Calculate profit and loss targets
takeProfit = strategy.position_avg_price * (1 + targetProfitPercent / 100) // 20% profit target

// Update trailing stop loss
if (strategy.opentrades > 0)
    if (strategy.position_size > 0) // Long position
        if (strategy.netprofit >= takeProfit)
            // Update stop-loss based on profit increments
            if (trailingStopLevel == na)
                trailingStopLevel := strategy.position_avg_price * (1 - 0.10) // Initial trailing stop at 10% below entry price
            else
                if (strategy.position_avg_price * (1 - 0.10) > trailingStopLevel)
                    trailingStopLevel := strategy.position_avg_price * (1 - 0.10) // Increase stop-loss to 10% below current price
        
        // Apply trailing stop loss
        strategy.exit("Take Profit", "Buy Call", stop=trailingStopLevel)

// Plot buy and sell signals on the chart
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")