Strategi perdagangan tren stop profit dan stop loss dengan rata-rata pergerakan ganda

SMA MA TP SL CROSSOVER
Tanggal Pembuatan: 2025-02-20 15:08:54 Akhirnya memodifikasi: 2025-02-27 17:36:23
menyalin: 0 Jumlah klik: 331
2
fokus pada
319
Pengikut

Strategi perdagangan tren stop profit dan stop loss dengan rata-rata pergerakan ganda Strategi perdagangan tren stop profit dan stop loss dengan rata-rata pergerakan ganda

Ringkasan

Strategi ini adalah sistem perdagangan pelacakan tren yang didasarkan pada persilangan dua rata-rata, yang digabungkan dengan mekanisme manajemen risiko. Strategi ini menggunakan rata-rata bergerak sederhana (SMA) 9 periode dan 21 periode untuk menangkap tren pasar, sambil mengatur stop loss dan stop loss 1% untuk mengendalikan risiko. Sistem ini melakukan lebih banyak masuk ketika melewati rata-rata jangka panjang di atas rata-rata jangka pendek dan keluar ketika melewati rata-rata jangka panjang di bawah rata-rata jangka pendek.

Prinsip Strategi

Logika inti dari strategi didasarkan pada karakteristik kontinuitas tren pasar. Untuk menilai titik pergeseran tren dengan mengamati persimpangan rata-rata bergerak jangka pendek (siklus 9) dan jangka panjang (siklus 21). Ketika “Golden Fork” terbentuk di atas rata-rata jangka pendek melintasi rata-rata jangka panjang, yang menunjukkan bahwa tren naik telah dimulai, sistem mengeluarkan beberapa sinyal; Ketika “Dead Fork” terbentuk di bawah rata-rata jangka pendek melintasi rata-rata jangka panjang, yang menunjukkan bahwa tren naik mungkin berakhir, dan sistem keluar dari posisi kosong.

Keunggulan Strategis

  1. Kemampuan menangkap tren yang kuat: Dengan menangkap titik-titik perubahan tren dengan dua garis sejajar, dapat menangkap tren utama pasar dengan lebih baik.
  2. Pengendalian risiko yang sempurna: Stop loss dan stop loss yang ditetapkan dalam proporsi tetap, yang secara efektif mengendalikan risiko transaksi tunggal.
  3. Tingkat otomatisasi yang tinggi: Sistem beroperasi secara otomatis tanpa intervensi manusia.
  4. Efek visual yang baik: sinyal perdagangan dan area kontrol risiko ditampilkan dengan jelas melalui antarmuka grafis.
  5. Fleksibilitas pengoptimalan parameter: siklus garis rata-rata dan stop loss rasio dapat disesuaikan sesuai dengan karakteristik pasar yang berbeda.

Risiko Strategis

  1. Risiko pasar bergoyang: Dalam pasar bergoyang horizontal, seringnya persilangan rata-rata dapat menyebabkan sinyal palsu.
  2. Risiko slippage: Pada saat pasar bergejolak, harga transaksi aktual dapat menyimpang jauh dari harga sinyal.
  3. Risiko Trend Reversal: Jika tren yang kuat tiba-tiba berbalik, stop loss tetap mungkin tidak cukup untuk menghadapi fluktuasi besar.
  4. Ketergantungan parameter: kinerja strategi lebih sensitif terhadap siklus rata-rata dan parameter pengaturan stop loss.

Arah optimasi strategi

  1. Membuat filter tren: Anda dapat menambahkan indikator kekuatan tren seperti ADX, dan hanya mengambil posisi ketika tren jelas.
  2. Mekanisme Stop Loss Dinamis: Anda dapat menggunakan ATR atau volatilitas untuk secara dinamis menyesuaikan stop loss.
  3. Meningkatkan konfirmasi volume transaksi: Menggunakan volume transaksi sebagai indikator konfirmasi tambahan untuk sinyal transaksi.
  4. Parameter optimasi beradaptasi sendiri: menyesuaikan siklus rata-rata sesuai dengan dinamika karakteristik fluktuasi pasar.
  5. Menambahkan filter kekuatan tren: dapat dikombinasikan dengan indikator seperti RSI untuk menilai kekuatan tren.

Meringkaskan

Strategi ini adalah sistem perdagangan pelacakan tren yang lebih lengkap dengan menangkap tren silang dua garis sejajar dan mengkombinasikan mekanisme stop loss untuk mengendalikan risiko. Meskipun mungkin menghasilkan sinyal palsu di pasar yang bergolak, stabilitas dan profitabilitas strategi dapat ditingkatkan lebih lanjut dengan optimasi parameter yang masuk akal dan penambahan indikator tambahan.

Kode Sumber Strategi
/*backtest
start: 2024-02-21 00:00:00
end: 2024-12-13 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("Moving Average Crossover with Stop Loss and Take Profit", overlay=true)

// Parameters for moving averages
short_length = input.int(9, title="Short Moving Average Length")  // Optimized for 15-minute time frame
long_length = input.int(21, title="Long Moving Average Length")   // Optimized for 15-minute time frame

// Parameters for risk management
stop_loss_percent = input.float(1.0, title="Stop Loss (%)") / 100  // 1% stop loss
take_profit_percent = input.float(1.0, title="Take Profit (%)") / 100  // 1% take profit

// Calculate moving averages
short_ma = ta.sma(close, short_length)
long_ma = ta.sma(close, long_length)

// Plot moving averages
plot(short_ma, color=color.blue, title="Short MA")
plot(long_ma, color=color.orange, title="Long MA")

// Entry and exit conditions
long_condition = ta.crossover(short_ma, long_ma)  // Golden Cross
short_condition = ta.crossunder(short_ma, long_ma)  // Death Cross

// Execute strategy with stop loss and take profit
if (long_condition)
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Long", stop=strategy.position_avg_price * (1 - stop_loss_percent), limit=strategy.position_avg_price * (1 + take_profit_percent)  )

if (short_condition)
    strategy.close("Long")  // Close long position on Death Cross

// Plot Buy/Sell Signals
plotshape(series=long_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=short_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// Draw 1% stop loss level as a transparent red rectangle
var float stop_loss_level = na
var float entry_price = na
if (strategy.position_size > 0)  // Only update when in a trade
    stop_loss_level := strategy.position_avg_price * (1 - stop_loss_percent)
    entry_price := strategy.position_avg_price

// Create transparent colors
transparent_red = color.new(color.black, 90)  // 90% transparency
transparent_green = color.new(color.green, 90)  // 90% transparency

// Plot stop loss and entry levels conditionally
plot(strategy.position_size > 0 ? stop_loss_level : na, color=transparent_red, title="Stop Loss Level", linewidth=1)
plot(strategy.position_size > 0 ? entry_price : na, color=transparent_green, title="Entry Price", linewidth=1)

// Fill the area between stop loss and entry price conditionally
fill( plot(strategy.position_size > 0 ? stop_loss_level : na),  plot(strategy.position_size > 0 ? entry_price : na),  color=transparent_red)