Sistem Strategi Kuantitatif Aliran Momentum Dwi Penunjuk

RSI MA ATR TP/SL
Tarikh penciptaan: 2025-01-17 16:40:55 Akhirnya diubah suai: 2025-01-17 16:41:17
Salin: 0 Bilangan klik: 545
1
fokus pada
1617
Pengikut

Sistem Strategi Kuantitatif Aliran Momentum Dwi Penunjuk

Gambaran keseluruhan

Strategi ini ialah sistem perdagangan kuantitatif yang menggabungkan indeks kekuatan relatif (RSI) dan purata bergerak (MA) untuk mengenal pasti arah aliran pasaran dan peluang dagangan melalui sinergi kedua-dua penunjuk. Sistem ini juga menggabungkan penapis volum dan turun naik untuk meningkatkan kebolehpercayaan isyarat dagangan. Idea teras strategi adalah untuk menentukan arah aliran melalui persilangan purata bergerak pantas dan purata bergerak perlahan, dan menggunakan RSI untuk mengesahkan momentum, akhirnya membentuk rangka kerja keputusan perdagangan yang lengkap.

Prinsip Strategi

Strategi ini menggunakan mekanisme pengesahan isyarat dua lapisan:

  1. Lapisan pengesahan arah aliran: Gunakan silang bagi purata bergerak pantas (FastMA) dan purata bergerak perlahan (SlowMA) untuk menentukan arah aliran pasaran. Apabila garis cepat menembusi garis perlahan dari bawah, ia dianggap bahawa aliran menaik diwujudkan apabila garis cepat jatuh di bawah garis perlahan dari atas, ia dianggap bahawa arah aliran menurun telah ditubuhkan.
  2. Lapisan Pengesahan Momentum: Gunakan penunjuk RSI sebagai alat pengesahan momentum. Dalam aliran menaik, RSI dikehendaki berada di bawah 50, menunjukkan bahawa pasaran masih mempunyai ruang untuk meningkat dalam arah aliran menurun, RSI dikehendaki berada di atas 50, menunjukkan bahawa pasaran masih mempunyai ruang untuk jatuh.
  3. Penapis Dagangan: Tapis isyarat dagangan dengan kecairan atau turun naik yang tidak mencukupi dengan menetapkan ambang minimum untuk volum dan turun naik ATR.

Kelebihan Strategik

  1. Pengesahan isyarat berbilang dimensi: Dengan menggabungkan penunjuk arah aliran dan momentum, kebarangkalian isyarat palsu dikurangkan.
  2. Pengurusan risiko yang sempurna: fungsi stop loss dan take profit bersepadu, anda boleh menetapkan mata kawalan risiko mengikut peratusan.
  3. Mekanisme penapisan fleksibel: Penapis volum dan turun naik boleh dihidupkan atau dimatikan secara fleksibel mengikut keadaan pasaran.
  4. Mekanisme penutupan automatik: Tutup kedudukan secara automatik apabila isyarat pembalikan muncul untuk mengelakkan pegangan yang berlebihan.

Risiko Strategik

  1. Risiko pasaran tidak menentu: Dalam pasaran mendatar dan tidak menentu, isyarat pecah palsu mungkin kerap muncul.
  2. Risiko gelinciran: Apabila pasaran turun naik dengan kuat, harga transaksi sebenar mungkin menyimpang dengan ketara daripada harga pencetus isyarat.
  3. Kepekaan parameter: Keberkesanan strategi sangat bergantung pada tetapan parameter, dan persekitaran pasaran yang berbeza mungkin memerlukan kombinasi parameter yang berbeza.

Arah pengoptimuman strategi

  1. Pelarasan parameter dinamik: Mekanisme parameter penyesuaian boleh diperkenalkan untuk melaraskan tempoh purata bergerak dan ambang RSI secara dinamik mengikut turun naik pasaran.
  2. Sistem pemberat isyarat: Wujudkan sistem pemarkahan kekuatan isyarat dan tetapkan pemberat yang berbeza mengikut prestasi penunjuk yang berbeza.
  3. Klasifikasi persekitaran pasaran: Tambah modul pengenalan persekitaran pasaran dan gunakan strategi dagangan yang berbeza di bawah keadaan pasaran yang berbeza.
  4. Kawalan risiko yang dipertingkatkan: Memperkenalkan mekanisme henti rugi dinamik untuk melaraskan kedudukan henti rugi secara automatik mengikut turun naik pasaran.

ringkaskan

Strategi ini mewujudkan sistem perdagangan yang agak lengkap dengan menggunakan petunjuk arah aliran dan momentum secara menyeluruh. Kelebihan sistem terletak pada mekanisme pengesahan isyarat pelbagai peringkat dan sistem pengurusan risiko yang sempurna, tetapi dalam aplikasi sebenar, adalah perlu untuk memberi perhatian kepada kesan persekitaran pasaran terhadap prestasi strategi dan mengoptimumkan parameter berdasarkan keadaan sebenar. Melalui penambahbaikan dan pengoptimuman berterusan, strategi ini dijangka dapat mengekalkan prestasi yang stabil dalam persekitaran pasaran yang berbeza.

Kod sumber strategi
/*backtest
start: 2024-01-17 00:00:00
end: 2025-01-16 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

// © Boba2601
//@version=5
strategy("RSI-MA Synergy", overlay=true, margin_long=100, margin_short=100)

// === Налаштування індикаторів ===
length_rsi = input.int(14, title="RSI Period", group="Індикатори")
fastMALength = input.int(9, title="Fast MA Length", group="Індикатори")
slowMALength = input.int(21, title="Slow MA Length", group="Індикатори")

// === Налаштування стоп-лосу і тейк-профіту ===
useStopLossTakeProfit = input.bool(true, title="Використовувати стоп-лос і тейк-профіт", group="Стоп-лос і Тейк-профіт")
stopLossPercent = input.float(2.0, title="Стоп-лос (%)", minval=0.1, step=0.1, group="Стоп-лос і Тейк-профіт")
takeProfitPercent = input.float(4.0, title="Тейк-профіт (%)", minval=0.1, step=0.1, group="Стоп-лос і Тейк-профіт")

// === Налаштування об'єму та волатильності ===
useVolumeFilter = input.bool(false, title="Використовувати фільтр об'єму", group="Об'єм та Волатильність")
volumeThreshold = input.int(50000, title="Мінімальний об'єм", group="Об'єм та Волатильність")
useVolatilityFilter = input.bool(false, title="Використовувати фільтр волатильності", group="Об'єм та Волатильність")
atrLength = input.int(14, title="Період ATR для волатильності", group="Об'єм та Волатильність")
volatilityThreshold = input.float(1.5, title="Мінімальна волатильність (ATR)", step=0.1, group="Об'єм та Волатильність")


// === Розрахунок індикаторів ===
rsiValue = ta.rsi(close, length_rsi)
fastMA = ta.sma(close, fastMALength)
slowMA = ta.sma(close, slowMALength)

// === Розрахунок об'єму та волатильності ===
averageVolume = ta.sma(volume, 20)
atrValue = ta.atr(atrLength)

// === Умови входу в позицію ===
longCondition = ta.crossover(fastMA, slowMA) and rsiValue < 50
if useVolumeFilter
    longCondition := longCondition and volume > volumeThreshold
if useVolatilityFilter
    longCondition := longCondition and atrValue > volatilityThreshold

shortCondition = ta.crossunder(fastMA, slowMA) and rsiValue > 50
if useVolumeFilter
    shortCondition := shortCondition and volume > volumeThreshold
if useVolatilityFilter
    shortCondition := shortCondition and atrValue > volatilityThreshold

// === Логіка входу та виходу з позиції ===
if (longCondition)
    strategy.entry("Long", strategy.long)
    if (useStopLossTakeProfit)
        stopLossPrice = close * (1 - stopLossPercent / 100)
        takeProfitPrice = close * (1 + takeProfitPercent / 100)
        strategy.exit("Exit Long", "Long", stop = stopLossPrice, limit = takeProfitPrice)

if (shortCondition)
    strategy.entry("Short", strategy.short)
    if (useStopLossTakeProfit)
        stopLossPrice = close * (1 + stopLossPercent / 100)
        takeProfitPrice = close * (1 - takeProfitPercent / 100)
        strategy.exit("Exit Short", "Short", stop = stopLossPrice, limit = takeProfitPrice)

// === Закриття позицій за зворотнім сигналом ===
if (strategy.position_size > 0 and (ta.crossunder(fastMA, slowMA) or rsiValue > 50))
    strategy.close("Long", comment="Закрито по сигналу")

if (strategy.position_size < 0 and (ta.crossover(fastMA, slowMA) or rsiValue < 50))
    strategy.close("Short", comment="Закрито по сигналу")