Sistem strategi ganda mengikuti tren adaptif dan perdagangan rentang

ADX SMA BB RSI MACD ATR
Tanggal Pembuatan: 2025-02-21 10:14:04 Akhirnya memodifikasi: 2025-02-27 17:17:45
menyalin: 1 Jumlah klik: 419
2
fokus pada
319
Pengikut

Sistem strategi ganda mengikuti tren adaptif dan perdagangan rentang Sistem strategi ganda mengikuti tren adaptif dan perdagangan rentang

Ringkasan

Strategi ini adalah sistem perdagangan yang mengadaptasi diri yang menggabungkan pelacakan tren dan perdagangan interval. Sistem ini mengidentifikasi keadaan pasar secara dinamis melalui indikator ADX, dengan strategi perdagangan yang berbeda di pasar tren dan pasar goyah. Di pasar tren, strategi ini menggunakan sinyal silang rata-rata bergerak yang dikombinasikan dengan konfirmasi RSI dan MACD; Di pasar goyah, strategi ini menggunakan Brinks Breakthrough yang dikombinasikan dengan sinyal overbought oversold RSI untuk sistem perdagangan.

Prinsip Strategi

Inti dari strategi ini adalah mekanisme untuk mengidentifikasi status pasar. Strategi ini diaktifkan ketika ADX lebih besar dari 25 dan dianggap sebagai pasar tren.

  1. Kondisi multihead: 50 hari rata-rata di atas garis 200 hari rata-rata, sementara RSI lebih besar dari 50 dan MACD di atas garis sinyal
  2. Kondisi kosong: 50 hari di bawah garis rata-rata melewati 200 hari di bawah garis rata-rata, sementara RSI kurang dari 50 dan MACD di bawah garis sinyal

Jika ADX lebih kecil dari atau sama dengan 25 dan dinilai sebagai pasar yang bergoyang, maka gunakan strategi perdagangan interval:

  1. Kondisi multi-head: harga naik melewati Bollinger Bands dan RSI kurang dari 40
  2. Kondisi kosong: harga di bawah Bollinger Bands dan RSI lebih besar dari 60

Pengaturan stop loss menggunakan metode perkalian dinamis ATR, stop loss adalah 1,5 kali ATR, dan stop loss adalah 3 kali ATR.

Keunggulan Strategis

  1. Adaptasi pasar: kemampuan untuk beralih strategi perdagangan secara otomatis sesuai dengan kondisi pasar
  2. Multi-Signal Confirmation: Mengurangi sinyal palsu dengan kombinasi dari beberapa indikator teknis
  3. Pengendalian risiko yang sempurna: Menggunakan mekanisme stop loss yang dinamis untuk beradaptasi dengan fluktuasi pasar
  4. Strategi Logis yang Jelas: Kriteria untuk menilai tren dan interval yang jelas, untuk memudahkan penyesuaian yang optimal
  5. Hasil visualisasi yang bagus: Anda dapat membedakan kondisi pasar dengan warna latar belakang, dan Anda dapat melihat dengan jelas.

Risiko Strategis

  1. Keterlambatan sinyal: Indikator seperti moving averages memiliki keterlambatan dan mungkin melewatkan titik masuk terbaik
  2. Resiko Penembusan Palsu: Blink dapat muncul di pasar yang bergejolak
  3. Sensitivitas parameter: pengaturan parameter seperti ADX threshold, ATR multiplier dapat mempengaruhi kinerja kebijakan
  4. Risiko pertukaran pasar: sinyal yang salah dalam periode transisi dari tren ke konvulsi
  5. Stop loss margin risk: Stop loss ATR pada kelipatan tetap mungkin terlalu besar pada periode fluktuasi tinggi

Arah optimasi strategi

  1. Memperkenalkan analisis lalu lintas: Menambahkan faktor lalu lintas dalam konfirmasi sinyal untuk meningkatkan keandalan sinyal
  2. Optimalkan penilaian kondisi pasar: pertimbangkan untuk mengubah ADX menjadi penurunan dinamis atau menggabungkan indikator lain
  3. Perbaikan mekanisme stop loss: memperkenalkan tracking stop loss atau menyesuaikan ATR multiplier sesuai dengan fluktuasi tingkat
  4. Menambahkan filter waktu: menambahkan batasan periode perdagangan, menghindari periode likuiditas rendah
  5. Peningkatan mekanisme konfirmasi sinyal: analisis pola harga dapat dipertimbangkan untuk meningkatkan kualitas sinyal

Meringkaskan

Strategi ini dapat beradaptasi dengan berbagai kondisi pasar melalui identifikasi dinamis dari kondisi pasar dan pertukaran strategi yang sesuai. Strategi ini memiliki kepraktisan yang baik melalui kombinasi dari beberapa indikator teknis dan mekanisme kontrol risiko dinamis. Namun, perlu diperhatikan risiko seperti keterlambatan sinyal dan terobosan palsu, disarankan untuk melakukan pengujian dan pengoptimalan parameter yang cukup di lapangan.

Kode Sumber Strategi
/*backtest
start: 2024-09-01 00:00:00
end: 2025-02-19 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("Trend vs Range Trading - Fully Fixed for v6", overlay=true)

// 🔹 Moving Averages (SMA 50 & 200)
sma50 = ta.sma(close, 50)
sma200 = ta.sma(close, 200)

// 🔹 Proper ADX Calculation (With Corrected ta.dmi() Parameters)
dmiLength = 14
adxSmoothing = 14
[dmiPlus, dmiMinus, adx] = ta.dmi(dmiLength, adxSmoothing)

// 🔹 Bollinger Bands Calculation (Fixed for v6)
bb_length = 20
bb_mult = 2.0
bb_basis = ta.sma(close, bb_length)
bb_dev = ta.stdev(close, bb_length)
bb_upper = bb_basis + (bb_mult * bb_dev)
bb_lower = bb_basis - (bb_mult * bb_dev)

// 🔹 Additional Indicators (RSI & MACD)
rsi = ta.rsi(close, 14)
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)

// 🔹 ATR for Stop Loss & Take Profit
atr = ta.atr(14)
stop_loss_mult = 1.5  // Stop Loss Multiplier
take_profit_mult = 3.0  // Take Profit Multiplier

// 🔹 Trend vs Range Market Detection
is_trending = adx > 25

// 🔹 Trend Following Strategy (SMA Cross & Confirmation)
long_condition_trend = is_trending and ta.crossover(sma50, sma200) and rsi > 50 and macdLine > signalLine
short_condition_trend = is_trending and ta.crossunder(sma50, sma200) and rsi < 50 and macdLine < signalLine

// 🔹 Range Trading Strategy (Bollinger Bands & RSI Confirmation)
long_condition_range = not is_trending and ta.crossover(close, bb_lower) and rsi < 40
short_condition_range = not is_trending and ta.crossunder(close, bb_upper) and rsi > 60

// 🔹 Stop Loss & Take Profit Calculations
long_stop_loss = close - (atr * stop_loss_mult)
long_take_profit = close + (atr * take_profit_mult)
short_stop_loss = close + (atr * stop_loss_mult)
short_take_profit = close - (atr * take_profit_mult)

// 🔹 Execute Trades (With Stop Loss & Take Profit)
if long_condition_trend
    strategy.entry("Long_Trend", strategy.long)
    strategy.exit("Exit_Long_Trend", from_entry="Long_Trend", stop=long_stop_loss, limit=long_take_profit)

if short_condition_trend
    strategy.entry("Short_Trend", strategy.short)
    strategy.exit("Exit_Short_Trend", from_entry="Short_Trend", stop=short_stop_loss, limit=short_take_profit)

if long_condition_range
    strategy.entry("Long_Range", strategy.long)
    strategy.exit("Exit_Long_Range", from_entry="Long_Range", stop=long_stop_loss, limit=long_take_profit)

if short_condition_range
    strategy.entry("Short_Range", strategy.short)
    strategy.exit("Exit_Short_Range", from_entry="Short_Range", stop=short_stop_loss, limit=short_take_profit)

// 🔹 Visual Indicators & Background Color (Trend vs Range)
bgcolor(is_trending ? color.green : color.blue)

// 🔹 Plot Moving Averages & Bollinger Bands
plot(sma50, color=color.blue, title="SMA 50")
plot(sma200, color=color.red, title="SMA 200")
plot(bb_upper, color=color.green, title="BB Upper")
plot(bb_lower, color=color.orange, title="BB Lower")