Strategi pelacakan tren RSI multiperiode dengan stop loss dinamis

RSI EMA ATR
Tanggal Pembuatan: 2024-12-05 16:25:17 Akhirnya memodifikasi: 2024-12-05 16:25:17
menyalin: 0 Jumlah klik: 432
1
fokus pada
1617
Pengikut

Strategi pelacakan tren RSI multiperiode dengan stop loss dinamis

Ringkasan

Ini adalah strategi pelacakan tren yang didasarkan pada kombinasi indikator analisis teknis, yang diperdagangkan terutama melalui RSI overbought, oversold, EMA crossover, dan stop loss dinamis. Strategi ini menggunakan kontrol risiko 1,5% dan menggabungkan leverage untuk meningkatkan keuntungan. Inti dari strategi ini adalah mengkonfirmasi tren melalui kombinasi beberapa indikator teknis, sambil menggunakan stop loss dinamis untuk melindungi dana.

Prinsip Strategi

Strategi ini menggunakan tiga indikator teknis utama: RSI (indicator relative strength), EMA (indicator moving average), dan ATR (average true range). Sinyal masuk dikonfirmasi secara silang oleh EMA (periode 9) jangka pendek dan EMA (periode 21) jangka panjang, sementara RSI diminta untuk berada dalam kisaran yang masuk akal (RSI multihead <70, RSI overhead> 30). Strategi ini menggunakan stop loss dinamis berbasis ATR, dengan posisi stop loss 4 kali lipat dari stop loss, pengaturan yang dapat mengontrol risiko sambil menjamin keuntungan.

Keunggulan Strategis

  1. Pengendalian risiko yang ketat: Menggunakan manajemen risiko proporsi tetap, risiko per transaksi dibatasi pada 1,5%
  2. Desain stop loss dinamis: Stop loss dinamis berbasis ATR dapat beradaptasi lebih baik dengan fluktuasi pasar
  3. Konfirmasi sinyal ganda: EMA berkolaborasi silang dengan RSI filter untuk meningkatkan keandalan sinyal
  4. Optimalisasi Rasio Risiko-Rugi: Stop loss 4 kali lebih besar dari stop loss, menguntungkan untuk mendapatkan ekspektasi keuntungan yang lebih baik
  5. Cocok untuk modal kecil: Menggunakan leverage yang wajar untuk meningkatkan potensi pendapatan, mengingat karakteristik akun modal kecil
  6. Tingkat otomatisasi yang tinggi: semua parameter dapat disesuaikan, sehingga mudah dioptimalkan sesuai dengan kondisi pasar

Risiko Strategis

  1. Risiko volatilitas pasar: kemungkinan pemicu stop loss yang sering terjadi dalam pasar yang sangat bergejolak
  2. Risiko Leverage: Menggunakan 2x Leverage Memperbesar Kerugian
  3. Risiko Penembusan Palsu: EMA Crossover Bisa Munculkan Sinyal Palsu
  4. Risiko Tergelincir: Pasar cepat mungkin menghadapi tergelincir yang lebih besar
  5. Manajemen risiko: perlu kontrol yang tepat terhadap ukuran kepemilikan

Arah optimasi strategi

  1. Menambahkan filter tren: penilaian tren untuk periode yang lebih lama
  2. Optimalkan waktu masuk: dapat dikombinasikan dengan indikator lalu lintas untuk meningkatkan titik masuk
  3. Parameter penyesuaian dinamis: penyesuaian otomatis ATR berdasarkan fluktuasi
  4. Memperkenalkan indikator sentimen pasar: menambahkan indikator sentimen untuk menyaring lingkungan pasar berisiko tinggi
  5. Pengelolaan dana yang lebih baik: meningkatkan mekanisme manajemen posisi yang dinamis

Meringkaskan

Ini adalah strategi pelacakan tren yang dirancang secara wajar untuk meningkatkan tingkat keberhasilan perdagangan dengan kombinasi beberapa indikator teknis. Mekanisme kontrol risiko strategi ini sempurna dan cocok untuk digunakan di akun modal kecil. Namun, dalam perdagangan langsung, perlu memperhatikan perubahan lingkungan pasar dan menyesuaikan parameter pada waktu yang tepat untuk menyesuaikan diri dengan kondisi pasar yang berbeda.

Kode Sumber Strategi
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-04 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Aggressive Scalper Strategy", overlay=true)

// Parameters
account_balance = input.float(28.37, title="Account Balance", tooltip="Update this with your balance")
risk_per_trade = input.float(0.015, title="Risk per Trade", tooltip="1.5% risk")
leverage = input.int(2, title="Leverage", minval=1)
stop_loss_percentage = input.float(0.015, title="Stop Loss Percentage", tooltip="1.5% stop loss")
take_profit_multiplier = input.float(4, title="Take Profit Multiplier", tooltip="Take Profit is 4x Stop Loss")
stop_loss_multiplier = input.float(2, title="Stop Loss Multiplier", tooltip="Dynamic Stop Loss Multiplier")

// Trade Size Calculation
position_size = account_balance * risk_per_trade / (stop_loss_percentage / leverage)
trade_qty = position_size / close // This gives you the qty in terms of contracts

// Indicators
rsiLength = input.int(14, title="RSI Length")
emaShort = input.int(9, title="Short-term EMA Length")
emaLong = input.int(21, title="Long-term EMA Length")
rsi = ta.rsi(close, rsiLength)
emaShortLine = ta.ema(close, emaShort)
emaLongLine = ta.ema(close, emaLong)

// Entry Conditions
longCondition = ta.crossover(emaShortLine, emaLongLine) and rsi < 70
shortCondition = ta.crossunder(emaShortLine, emaLongLine) and rsi > 30

// ATR for dynamic stop loss and take profit levels
atrLength = input.int(14, title="ATR Length")
atrMultiplier = input.float(1.5, title="ATR Multiplier")
atr = ta.atr(atrLength)

// Dynamic Take Profit and Stop Loss Levels
longTakeProfitLevel = close + (atr * take_profit_multiplier)
longStopLossLevel = close - (atr * stop_loss_multiplier)
shortTakeProfitLevel = close - (atr * take_profit_multiplier)
shortStopLossLevel = close + (atr * stop_loss_multiplier)

// Strategy Execution
if (longCondition)
    strategy.entry("Long", strategy.long, qty=trade_qty)
    strategy.exit("Take Profit/Stop Loss", from_entry="Long", limit=longTakeProfitLevel, stop=longStopLossLevel)

if (shortCondition)
    strategy.entry("Short", strategy.short, qty=trade_qty)
    strategy.exit("Take Profit/Stop Loss", from_entry="Short", limit=shortTakeProfitLevel, stop=shortStopLossLevel)

// Alert Conditions
alertcondition(longCondition, title="Buy Signal", message="Long position entry signal detected.")
alertcondition(shortCondition, title="Sell Signal", message="Short position entry signal detected.")

// Display Information on Chart
var table_info = table.new(position.top_right, 2, 2, frame_color=color.blue, frame_width=1)
if (bar_index == na)
    table.cell(table_info, 0, 0, text="Aggressive Scalper", bgcolor=color.blue)
    table.cell(table_info, 1, 0, text="Account Balance: $" + str.tostring(account_balance), text_color=color.white)
    table.cell(table_info, 1, 1, text="Risk per Trade: " + str.tostring(risk_per_trade * 100) + "%", text_color=color.white)
    table.cell(table_info, 0, 1, text="Leverage: " + str.tostring(leverage) + "x", text_color=color.white)