Strategi kuantitatif kombinasi divergensi RSI multi-periode dan support dan resistance

RSI
Tanggal Pembuatan: 2024-12-20 17:01:44 Akhirnya memodifikasi: 2024-12-20 17:01:44
menyalin: 4 Jumlah klik: 539
1
fokus pada
1617
Pengikut

Strategi kuantitatif kombinasi divergensi RSI multi-periode dan support dan resistance

Ringkasan

Strategi ini adalah sistem perdagangan kuantitatif yang menggabungkan indikator teknis RSI, harga deviasi dan titik resistensi pendukung. Strategi ini menentukan sinyal perdagangan dengan mengidentifikasi hubungan deviasi antara RSI dan harga, dan menggabungkan terobosan dalam titik resistensi pendukung, sambil mengintegrasikan mekanisme stop loss dan stop loss untuk mengendalikan risiko.

Prinsip Strategi

Strategi ini didasarkan pada komponen inti berikut:

  1. Perhitungan indikator RSI: menggunakan indikator Relative Strength Index (RSI) selama 14 siklus untuk mengukur dinamika harga
  2. Identifikasi Resistance Point Support: Menentukan tingkat harga kritis melalui harga tertinggi dan terendah selama 50 siklus
  3. Tidak ada yang bisa dipastikan.
    • Bullish deviation: ketika harga berinovasi rendah dan RSI tidak berinovasi rendah, dan harga berada di atas support
    • Bear market deviation: ketika harga berinovasi tinggi dan RSI tidak berinovasi tinggi, dan harga berada di bawah resistance
  4. Manajemen Risiko:
    • Stop loss 1% setelah masuk
    • Tetapkan target 2%.

Keunggulan Strategis

  1. Multiple confirmation mechanism: menggabungkan indikator momentum ((RSI), bentuk harga ((deviation) dan struktur pasar ((support resistance), memberikan sinyal perdagangan yang lebih andal
  2. Pengendalian risiko yang sempurna: mekanisme Stop Loss Stop yang terpasang secara efektif mengontrol risiko setiap transaksi
  3. Adaptif: Parameter strategi dapat disesuaikan dengan kondisi pasar yang berbeda
  4. Sinyal Jelas: Kondisi Transaksi Jelas, Mudah Dieksekusi dan Diukur

Risiko Strategis

  1. Risiko terobosan palsu: sinyal terobosan palsu yang mungkin sering terjadi di pasar horizontal
  2. Sensitivitas parameter: RSI siklus, pilihan siklus dukungan dan resistensi memiliki pengaruh besar terhadap kinerja strategi
  3. Efek slippage: Dalam kondisi cepat, harga transaksi aktual mungkin menyimpang dari harga sinyal
  4. Ketergantungan pada kondisi pasar: Berkinerja lebih baik di pasar yang jelas sedang tren, dan dapat menghasilkan sinyal palsu di pasar yang bergoyang

Arah optimasi strategi

  1. Optimasi kerangka waktu: Mekanisme konfirmasi kerangka waktu ganda dapat ditambahkan untuk meningkatkan keandalan sinyal
  2. Optimasi Stop Loss: dapat memperkenalkan mekanisme stop loss dinamis, seperti tracking stop loss
  3. Filter diperkenalkan: penambahan filter seperti volume lalu lintas, tingkat fluktuasi, mengurangi sinyal palsu
  4. Adaptasi parameter: Mengembangkan mekanisme parameter adaptasi yang memungkinkan strategi untuk menyesuaikan parameter secara otomatis sesuai dengan kondisi pasar

Meringkaskan

Strategi ini membangun sistem perdagangan yang relatif lengkap dengan menggabungkan beberapa konsep penting dalam analisis teknis. Keunggulan strategi terletak pada mekanisme konfirmasi ganda dan pengendalian risiko yang baik, tetapi juga menghadapi tantangan pilihan parameter dan ketergantungan pada lingkungan pasar. Dengan arah optimasi yang direkomendasikan, stabilitas dan adaptasi strategi diharapkan ditingkatkan lebih lanjut.

Kode 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)