Strategi Momentum RSI Reversal Ganda

Penulis:ChaoZhang, Tanggal: 2023-09-26 15:42:48
Tag:

Gambaran umum

Strategi ini menggabungkan pola pembalikan 123 dan strategi momentum RSI untuk menyaring sinyal untuk entri kemungkinan tinggi pada titik pembalikan tren.

Prinsip-prinsip

123 Strategi Pembalikan

Strategi ini diambil dari buku How I Tripped My Money in the Futures Market oleh Ulf Jensen, halaman 183.

Secara khusus, itu pergi panjang ketika penutupan lebih tinggi dari penutupan sebelumnya selama 2 hari berturut-turut dan garis Slow K 9 periode di bawah 50; itu pergi pendek ketika penutupan lebih rendah dari penutupan sebelumnya selama 2 hari berturut-turut dan garis Fast K 9 periode di atas 50.

Jadi pada dasarnya itu menggunakan indikator stochastic golden cross dan death cross untuk menentukan potensi pembalikan.

Strategi Momentum RSI

Strategi ini menggunakan fungsi ROC untuk menghitung tingkat perubahan harga, dan membangun indikator RSI berdasarkan tingkat perubahan harga untuk menentukan tren momentum.

Ini akan panjang ketika RSI berada di bawah zona beli, yang menunjukkan momentum kenaikan yang dipercepat; itu akan pendek ketika RSI berada di atas zona jual, yang menunjukkan momentum penurunan yang dipercepat.

Keuntungan

  • 123 pola pembalikan mengidentifikasi titik pembalikan potensial setelah konsolidasi
  • RSI momentum menyaring keluar palsu breakouts secara efektif
  • Akumulasi sinyal dari kedua strategi memberikan entri keyakinan tinggi

Risiko

  • 123 pola rentan terhadap perangkap banteng atau kabur palsu, perlu penyaringan
  • RSI masih didasarkan pada harga, tidak dapat sepenuhnya menghindari whipsaws
  • Akumulasi sinyal ganda mungkin kehilangan titik masuk yang lebih baik

Cara yang mungkin untuk mengurangi risiko:

  1. Tune Parameter Stokastik untuk menggunakan periode yang lebih lama untuk menentukan tren
  2. Sesuaikan parameter RSI untuk menggunakan zona pembelian/penjualan yang lebih luas
  3. Pertimbangkan untuk menggunakan hanya satu sinyal untuk entri

Arahan Optimasi

  • Uji periode ROC untuk menemukan nilai optimal untuk produk tertentu
  • Uji 123 pola logika, misalnya menyesuaikan garis K cepat / lambat
  • Uji nilai zona RSI untuk menemukan rentang jual/beli optimal
  • Cobalah indikator lain seperti MACD untuk menggantikan Stochastic
  • Efek pengujian menggunakan hanya satu sinyal strategi

Kesimpulan

Strategi ini meningkatkan akurasi entri pada pembalikan tren dengan membutuhkan dua sinyal pembalikan yang mengkonfirmasi. Pola 123 mengidentifikasi pembalikan dan momentum RSI memverifikasi validitas. Mudah mengoptimalkan parameter untuk produk dan preferensi yang berbeda. Tetapi berhati-hatilah terhadap entri yang hilang dari akumulasi sinyal ganda. Secara keseluruhan kerangka kerja yang efektif untuk mengidentifikasi tren pembalikan.


/*backtest
start: 2023-08-26 00:00:00
end: 2023-09-25 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 17/06/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// This is the new-age indicator which is version of RSI calculated upon 
// the Rate-of-change indicator.
// The name "Relative Strength Index" is slightly misleading as the RSI 
// does not compare the relative strength of two securities, but rather 
// the internal strength of a single security. A more appropriate name 
// might be "Internal Strength Index." Relative strength charts that compare 
// two market indices, which are often referred to as Comparative Relative Strength.
// And in its turn, the Rate-of-Change ("ROC") indicator displays the difference 
// between the current price and the price x-time periods ago. The difference can 
// be displayed in either points or as a percentage. The Momentum indicator displays 
// the same information, but expresses it as a ratio.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos


RSI_ROC(RSILength,ROCLength,BuyZone,SellZone) =>
    pos = 0.0
    xPrice = close
    nRes = rsi(roc(xPrice,ROCLength),RSILength)
    pos := iff(nRes < BuyZone, -1,
	         iff(nRes > SellZone, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & RSI based on ROC", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- RSI based on ROC ----")
RSILength = input(20, minval=1)
ROCLength = input(20, minval=1)
BuyZone = input(30, minval=1)
SellZone = input(70, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRSI_ROC = RSI_ROC(RSILength,ROCLength,BuyZone,SellZone)
pos = iff(posReversal123 == 1 and posRSI_ROC == 1 , 1,
	   iff(posReversal123 == -1 and posRSI_ROC == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1 ) 
    strategy.entry("Long", strategy.long)
if (possig == -1 )
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

Lebih banyak