Strategi kuantitatif gabungan RSI berbilang tempoh dan sokongan serta rintangan

RSI
Tarikh penciptaan: 2024-12-20 17:01:44 Akhirnya diubah suai: 2024-12-20 17:01:44
Salin: 4 Bilangan klik: 539
1
fokus pada
1617
Pengikut

Strategi kuantitatif gabungan RSI berbilang tempoh dan sokongan serta rintangan

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan kuantitatif yang menggabungkan indikator teknikal RSI, harga deviasi dan sokongan rintangan. Strategi ini menentukan isyarat perdagangan dengan mengenal pasti hubungan deviasi antara RSI dan harga, dan menggabungkan penembusan terhadap sokongan rintangan, sambil mengintegrasikan mekanisme berhenti dan berhenti untuk mengawal risiko.

Prinsip Strategi

Strategi ini berdasarkan komponen teras berikut:

  1. Pengiraan RSI: Menggunakan RSI (Relative Strength Index) untuk mengukur pergerakan harga
  2. Pengenalan tahap rintangan sokongan: tahap harga kritikal ditentukan melalui harga tertinggi dan terendah dalam 50 kitaran
  3. Penghakiman yang tidak adil:
    • Pelanggaran bullish: apabila harga berinovasi rendah dan RSI tidak berinovasi rendah, dan harga berada di atas tahap sokongan
    • Pelanggaran bearish: apabila harga berinovasi tinggi dan RSI tidak berinovasi tinggi, dan harga berada di bawah rintangan
  4. Pengurusan Risiko:
    • Tetapkan 1% Stop Loss selepas masuk
    • Tetapkan sasaran 2 peratus.

Kelebihan Strategik

  1. Mekanisme pengesahan berganda: menggabungkan indikator momentum (RSI), bentuk harga (Desain) dan struktur pasaran (Pendukung Résistance), memberikan isyarat dagangan yang lebih dipercayai
  2. Pengendalian risiko yang sempurna: mekanisme penangguhan kerugian yang disediakan dapat mengawal risiko setiap perdagangan dengan berkesan
  3. Kebolehsuaian: parameter strategi boleh disesuaikan dengan keadaan pasaran yang berbeza
  4. Isyarat jelas: Syarat transaksi jelas, mudah dilaksanakan dan dikesan semula

Risiko Strategik

  1. Risiko penembusan palsu: Isyarat penembusan palsu yang kerap berlaku di pasaran Forex
  2. Sensitiviti parameter: Pilihan kitaran RSI, kitaran sokongan dan rintangan mempunyai kesan yang lebih besar terhadap prestasi strategi
  3. Kesan slippage: Dalam keadaan pantas, harga sebenar mungkin berbeza dengan harga isyarat
  4. Kepercayaan kepada keadaan pasaran: berprestasi lebih baik dalam pasaran yang jelas bercenderungan, dan mungkin memberi isyarat palsu dalam pasaran yang bergolak

Arah pengoptimuman strategi

  1. Pengoptimuman bingkai masa: mekanisme pengesahan bingkai masa boleh ditambah untuk meningkatkan kebolehpercayaan isyarat
  2. Pengoptimuman henti kerugian: mekanisme henti kerugian dinamik boleh diperkenalkan, seperti henti kerugian yang dijejaki
  3. Pengenalan penapis: penapis tambahan seperti kadar lalu lintas, kadar turun naik, untuk mengurangkan isyarat palsu
  4. Penyesuaian parameter: Membangunkan mekanisme penyesuaian parameter yang membolehkan strategi menyesuaikan parameter secara automatik mengikut keadaan pasaran

ringkaskan

Strategi ini membina sistem perdagangan yang agak lengkap dengan menggabungkan beberapa konsep penting dalam analisis teknikal. Kelebihan strategi terletak pada mekanisme pengesahan berganda dan kawalan risiko yang baik, tetapi juga menghadapi cabaran pilihan parameter dan ketergantungan keadaan pasaran. Dengan arah pengoptimuman yang disyorkan, kestabilan dan kesesuaian strategi dijangka ditingkatkan lagi. Dalam aplikasi praktikal, disarankan untuk menentukan konfigurasi strategi yang paling sesuai dengan pengulangan data sejarah yang mencukupi dan pengoptimuman parameter.

Kod sumber strategi
/*backtest
start: 2024-12-12 00:00:00
end: 2024-12-19 00:00:00
period: 10m
basePeriod: 10m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("Агрессивная стратегия с дивергенциями по RSI и уровнями поддержки/сопротивления", overlay=true)

// Параметры для RSI
rsiLength = input.int(14, title="Период для RSI", minval=1)   // Период для расчета RSI
rsiOverbought = input.int(70, title="Уровень перекупленности", minval=1, maxval=100)
rsiOversold = input.int(30, title="Уровень перепроданности", minval=1, maxval=100)

// Параметры для стоп-лосса и тейк-профита
stopLossPercent = input.float(1, title="Стоп-лосс (%)", minval=0.1) / 100
takeProfitPercent = input.float(2, title="Тейк-профит (%)", minval=0.1) / 100

// Период для уровней поддержки и сопротивления
supportResistanceLength = input.int(50, title="Период для уровней поддержки и сопротивления", minval=1)

// Рассчитываем RSI
rsi = ta.rsi(close, rsiLength)

// Рассчитываем уровни поддержки и сопротивления
support = ta.lowest(close, supportResistanceLength)  // Находим минимумы за период для поддержки
resistance = ta.highest(close, supportResistanceLength)  // Находим максимумы за период для сопротивления

// Определяем дивергенцию RSI с ценой
priceHigh = ta.highest(close, rsiLength)
priceLow = ta.lowest(close, rsiLength)
rsiHigh = ta.highest(rsi, rsiLength)
rsiLow = ta.lowest(rsi, rsiLength)

// Дивергенция на покупку (бычья): цена делает новый минимум, а RSI этого не делает
bullishDivergence = priceLow < priceLow[1] and rsiLow > rsiLow[1] and close > support

// Дивергенция на продажу (медвежья): цена делает новый максимум, а RSI этого не делает
bearishDivergence = priceHigh > priceHigh[1] and rsiHigh < rsiHigh[1] and close < resistance

// Отображаем уровни поддержки и сопротивления
plot(support, title="Поддержка", color=color.green, linewidth=2, style=plot.style_line)
plot(resistance, title="Сопротивление", color=color.red, linewidth=2, style=plot.style_line)

// Условия для покупки по бычьей дивергенции
if (bullishDivergence)
    strategy.entry("Long", strategy.long)
    stopLoss = close * (1 - stopLossPercent)   // Стоп-лосс
    takeProfit = close * (1 + takeProfitPercent) // Тейк-профит
    strategy.exit("Exit Long", from_entry="Long", stop=stopLoss, limit=takeProfit)

// Условия для продажи по медвежьей дивергенции
if (bearishDivergence)
    strategy.entry("Short", strategy.short)
    stopLoss = close * (1 + stopLossPercent)   // Стоп-лосс для шорта
    takeProfit = close * (1 - takeProfitPercent) // Тейк-профит для шорта
    strategy.exit("Exit Short", from_entry="Short", stop=stopLoss, limit=takeProfit)

// Отображаем RSI на отдельном графике
plot(rsi, title="RSI", color=color.blue, linewidth=2)
hline(rsiOverbought, "Перекупленность", color=color.red)
hline(rsiOversold, "Перепроданность", color=color.green)