Strategi isyarat panjang dan pendek berdasarkan penunjuk QQE dan penunjuk RSI

RSI QQE
Tarikh penciptaan: 2024-05-27 15:17:45 Akhirnya diubah suai: 2024-05-27 15:17:45
Salin: 0 Bilangan klik: 830
1
fokus pada
1617
Pengikut

Strategi isyarat panjang dan pendek berdasarkan penunjuk QQE dan penunjuk RSI

Gambaran keseluruhan

Strategi ini adalah berdasarkan QQE dan RSI, dengan mengira purata bergerak lancar RSI dan amplitudo goyah dinamik, untuk membina ruang isyarat yang lebih banyak. Apabila RSI menembusi, ia menghasilkan isyarat yang lebih banyak, dan apabila ia menembusi, ia menghasilkan isyarat yang lebih rendah.

Prinsip Strategi

  1. Hitung purata bergerak rata-rata RSI, RsiMa, sebagai asas untuk menilai trend.
  2. Hitung nilai mutlak penyesuaian RSI, AtrRsi, dan kira rata-rata bergerak yang lancar, MaAtrRsi, sebagai asas untuk menilai pergerakan.
  3. Dar dinamika bergolak dikira berdasarkan faktor QQE dan digabungkan dengan RsiMa untuk membina longband dan shortband antara isyarat ruang-luas.
  4. Untuk menilai hubungan antara penunjuk RSI dan jarak isyarat longband, penunjuk RSI menghasilkan isyarat longband apabila melalui longband, dan isyarat longband apabila melalui shortband.
  5. Berdagang berdasarkan isyarat kosong, buka dan beli apabila isyarat kosong dicetuskan, tutup apabila isyarat kosong dicetuskan

Kelebihan Strategik

  1. Gabungan ciri-ciri RSI dan QQE dapat menangkap trend dan peluang turun naik pasaran dengan lebih baik.
  2. Menggunakan magnitud getaran yang dinamik untuk membina julat isyarat yang dapat menyesuaikan diri dengan perubahan kadar turun naik pasaran.
  3. Menguruskan RSI dengan lancar dan mengurangkan gangguan bunyi dan perdagangan yang kerap.
  4. Logik yang jelas, parameter yang lebih sedikit, sesuai untuk pengoptimuman dan penambahbaikan lanjut.

Risiko Strategik

  1. Strategi ini mungkin tidak sesuai untuk pasaran yang bergolak dan kurang bergolak.
  2. Kurangnya mekanisme penangguhan kerugian yang jelas boleh menyebabkan risiko penarikan balik yang lebih besar jika pasaran berubah secara tiba-tiba.
  3. Tetapan parameter mempunyai kesan yang besar terhadap prestasi strategi dan perlu disesuaikan mengikut pasaran dan varieti yang berbeza.

Arah pengoptimuman strategi

  1. Memperkenalkan mekanisme penangguhan yang jelas, seperti penangguhan peratusan tetap, penangguhan ATR, dan sebagainya untuk mengawal risiko penarikan balik.
  2. Pengaturan parameter yang dioptimumkan, boleh mencari kombinasi parameter yang optimum melalui algoritma genetik, carian grid dan sebagainya.
  3. Pertimbangkan untuk memperkenalkan petunjuk lain seperti jumlah dagangan, jumlah pegangan, untuk memperkaya isyarat perdagangan, meningkatkan kestabilan strategi.
  4. Untuk pasaran yang bergolak, pertimbangan boleh diperkenalkan untuk perdagangan jangkauan atau logik operasi band, meningkatkan fleksibiliti strategi.

ringkaskan

Strategi ini dibina berdasarkan petunjuk RSI dan QQE untuk membina isyarat banyak ruang, dengan ciri-ciri menangkap trend dan menangkap turun naik. Logik strategi jelas, parameter yang lebih sedikit, sesuai untuk pengoptimuman dan penambahbaikan lebih lanjut. Tetapi strategi juga mempunyai risiko tertentu, seperti kawalan penarikan balik, pengaturan parameter, dan lain-lain.

Kod sumber strategi
/*backtest
start: 2023-05-21 00:00:00
end: 2024-05-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=4
// modified by swigle
// thanks colinmck

strategy("QQE signals bot", overlay=true)


RSI_Period = input(14, title='RSI Length')
SF = input(5, title='RSI Smoothing')
QQE = input(4.236, title='Fast QQE Factor')
ThreshHold = input(10, title="Thresh-hold")

src = close
Wilders_Period = RSI_Period * 2 - 1

Rsi = rsi(src, RSI_Period)
RsiMa = ema(Rsi, SF)
AtrRsi = abs(RsiMa[1] - RsiMa)
MaAtrRsi = ema(AtrRsi, Wilders_Period)
dar = ema(MaAtrRsi, Wilders_Period) * QQE

longband = 0.0
shortband = 0.0
trend = 0

DeltaFastAtrRsi = dar
RSIndex = RsiMa
newshortband = RSIndex + DeltaFastAtrRsi
newlongband = RSIndex - DeltaFastAtrRsi
longband := RSIndex[1] > longband[1] and RSIndex > longband[1] ? max(longband[1], newlongband) : newlongband
shortband := RSIndex[1] < shortband[1] and RSIndex < shortband[1] ? min(shortband[1], newshortband) : newshortband
cross_1 = cross(longband[1], RSIndex)
trend := cross(RSIndex, shortband[1]) ? 1 : cross_1 ? -1 : nz(trend[1], 1)
FastAtrRsiTL = trend == 1 ? longband : shortband

// Find all the QQE Crosses

QQExlong = 0
QQExlong := nz(QQExlong[1])
QQExshort = 0
QQExshort := nz(QQExshort[1])
QQExlong := FastAtrRsiTL < RSIndex ? QQExlong + 1 : 0
QQExshort := FastAtrRsiTL > RSIndex ? QQExshort + 1 : 0

//Conditions

qqeLong = QQExlong == 1 ? FastAtrRsiTL[1] - 50 : na
qqeShort = QQExshort == 1 ? FastAtrRsiTL[1] - 50 : na

// Plotting

plotshape(qqeLong, title="QQE long", text="Long", textcolor=color.white, style=shape.labelup, location=location.belowbar, color=color.green, size=size.tiny)
plotshape(qqeShort, title="QQE short", text="Short", textcolor=color.white, style=shape.labeldown, location=location.abovebar, color=color.red, size=size.tiny)

// trade

//if qqeLong > 0
strategy.entry("buy long", strategy.long, 100, when=qqeLong)
    
if qqeShort > 0
    strategy.close("buy long")
    // strategy.exit("close_position", "buy long", loss=1000)
    // strategy.entry("sell", strategy.short, 1, when=strategy.position_size > 0)