Sumber dimuat naik... memuat...

Indikator Teknikal Berbilang Tempoh Strategi Sistem Dagangan Dinamik

Penulis:ChaoZhang, Tarikh: 2025-01-17 14:26:19
Tag:MARSIADXATRSMASLTP

 Multi-Period Technical Indicator Dynamic Trading System Strategy

Ringkasan

Strategi ini adalah sistem perdagangan komprehensif yang menggabungkan pelbagai penunjuk teknikal, terutamanya menggunakan Moving Average (MA), Indeks Kekuatan Relatif (RSI), dan Indeks Arah Purata (ADX) untuk mengenal pasti trend dan momentum pasaran. Ia menggunakan Julat Benar Purata (ATR) untuk menetapkan tahap stop-loss dan mengambil keuntungan secara dinamik. Sistem ini menggunakan pendekatan analisis pelbagai tempoh, mengesahkan isyarat perdagangan melalui persilangan penunjuk dalam tempoh masa yang berbeza, memastikan ketepatan perdagangan dan kawalan risiko yang berkesan.

Prinsip Strategi

Strategi ini menggunakan mekanisme pengesahan tiga lapisan untuk mengesahkan isyarat perdagangan: 1. Lapisan Pengenalan Trend: Menggunakan persilangan purata bergerak 20 tempoh dan 50 tempoh untuk menentukan arah trend, dengan MA cepat melintasi di atas MA perlahan yang menunjukkan trend menaik dan sebaliknya. 2. Lapisan Pengesahan Momentum: Menggunakan RSI 14 tempoh untuk mengesahkan momentum harga, dengan RSI di atas 50 menunjukkan momentum menaik dan di bawah 50 menunjukkan momentum menurun. 3. Lapisan Penapis Kekuatan Trend: Menggunakan ADX 14 tempoh untuk mengukur kekuatan trend, hanya mengesahkan dagangan apabila ADX melebihi 25, menunjukkan kekuatan trend yang mencukupi.

Tambahan pula, strategi itu melaksanakan sistem stop-loss dan take-profit dinamik berasaskan ATR: - Stop-loss ditetapkan pada 2 kali ATR - Take-profit ditetapkan pada 4 kali ATR, mengekalkan nisbah 1: 2 risiko-balasan

Kelebihan Strategi

  1. Mekanisme Pengesahan Berbilang: Memvalidasi isyarat melalui tiga penunjuk teknikal yang berbeza, mengurangkan kesan isyarat palsu dengan ketara.
  2. Pengurusan Risiko Dinamik: Tetapan stop-loss dan mengambil keuntungan dinamik berasaskan ATR disesuaikan dengan turun naik pasaran, mengelakkan risiko yang tidak munasabah dari tahap tetap.
  3. Mengikuti Trend yang Kuat: Mengambil pergerakan trend utama dengan berkesan melalui sistem MA dan pengesahan ADX.
  4. Standard Operasi yang jelas: Perkara utama seperti kemasukan, hentian kerugian, dan mengambil keuntungan mempunyai standard kuantitatif yang jelas, mengurangkan campur tangan daripada penilaian subjektif.

Risiko Strategi

  1. Risiko pasaran sampingan: Persalinan MA yang kerap di pasaran yang berbeza boleh meningkatkan isyarat palsu.
  2. Risiko Lag: Indikator teknikal mempunyai lag yang melekat, berpotensi kehilangan titik kemasukan optimum semasa pergerakan yang tidak menentu.
  3. Sensitiviti Parameter: Prestasi strategi sensitif terhadap tetapan parameter, yang memerlukan penyesuaian dalam persekitaran pasaran yang berbeza.
  4. Risiko Sistemik: Penunjuk teknikal mungkin gagal dengan peristiwa pasaran besar tiba-tiba.

Arahan Pengoptimuman Strategi

  1. Integrasi Penunjuk Volume: Pertimbangkan untuk menambah penunjuk jumlah untuk membantu mengesahkan kesahihan trend.
  2. Penyesuaian Parameter: Membangunkan sistem parameter adaptif yang menyesuaikan parameter penunjuk secara dinamik berdasarkan keadaan pasaran.
  3. Integrasi Sentimen Pasaran: Menggabungkan penunjuk sentimen pasaran seperti VIX untuk menyesuaikan kedudukan atau menghentikan perdagangan semasa tempoh turun naik yang tinggi.
  4. Mekanisme Stop-Loss yang dipertingkatkan: Pertimbangkan untuk menambah fungsi stop-loss yang tertinggal untuk perlindungan keuntungan yang lebih baik.

Ringkasan

Strategi ini membina sistem dagangan yang agak lengkap melalui sinergi pelbagai penunjuk teknikal. Kekuatannya terletak pada mekanisme pengesahan pelbagai lapisan dan sistem pengurusan risiko dinamik, walaupun perhatian harus diberikan kepada kesesuaiannya dalam persekitaran pasaran yang berbeza. Melalui pengoptimuman dan peningkatan yang berterusan, strategi ini menunjukkan janji untuk mencapai pulangan yang stabil dalam perdagangan sebenar.


/*backtest
start: 2024-12-17 00:00:00
end: 2025-01-15 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

//@version=6
strategy("Daily Trading Strategy", overlay=true)

// --- Indikator ---
// Kombinasi MA untuk trend
fastMA = ta.sma(close, 20)
slowMA = ta.sma(close, 50)

// RSI untuk momentum
rsi = ta.rsi(close, 14)

// --- Fungsi untuk menghitung ADX ---
adx(length) =>
    up = ta.change(high)
    down = -ta.change(low)
    plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
    minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
    trur = ta.rma(ta.tr, length)
    plus = fixnan(100 * ta.rma(plusDM, length) / trur)
    minus = fixnan(100 * ta.rma(minusDM, length) / trur)
    sum = plus + minus
    adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), length)

// ADX untuk kekuatan trend
adxValue = adx(14)

// --- Kondisi Entry Long ---
longEntry = ta.crossover(fastMA, slowMA) and rsi > 50 and adxValue > 25

// --- Kondisi Entry Short ---
shortEntry = ta.crossunder(fastMA, slowMA) and rsi < 50 and adxValue > 25

// --- Stop Loss dan Take Profit ---
// Fungsi untuk menghitung stop loss dan take profit
getSLTP(entryPrice, isLong) =>
    atr = ta.atr(14)
    sl = isLong ? entryPrice - atr * 2 : entryPrice + atr * 2
    tp = isLong ? entryPrice + atr * 4 : entryPrice - atr * 4
    [sl, tp]

// Hitung SL dan TP untuk posisi Long
[longSL, longTP] = getSLTP(close, true)

// Hitung SL dan TP untuk posisi Short
[shortSL, shortTP] = getSLTP(close, false)

// --- Eksekusi Order ---
if (longEntry)
    strategy.entry("Long", strategy.long, stop=longSL, limit=longTP)

if (shortEntry)
    strategy.entry("Short", strategy.short, stop=shortSL, limit=shortTP)

// --- Plot Indikator ---
// MA
plot(fastMA, color=color.blue)
plot(slowMA, color=color.red)

// RSI
plot(rsi, color=color.orange)
hline(50, color=color.gray)

// ADX
plot(adxValue, color=color.purple)
hline(25, color=color.gray)

// --- Alert ---
alertcondition(longEntry, title="Long Entry", message="Long Entry")
alertcondition(shortEntry, title="Short Entry", message="Short Entry")

Berkaitan

Lebih lanjut