Strategi Indeks Momentum Penyongsangan Berganda


Tarikh penciptaan: 2024-02-06 09:29:34 Akhirnya diubah suai: 2024-02-06 09:29:34
Salin: 0 Bilangan klik: 544
1
fokus pada
1617
Pengikut

Strategi Indeks Momentum Penyongsangan Berganda

Gambaran keseluruhan

Strategi indeks reversibiliti ganda adalah gabungan strategi 123 reversibiliti dan strategi indeks reversibiliti relatif (RMI). Ia bertujuan untuk meningkatkan ketepatan keputusan perdagangan dengan menggunakan isyarat ganda.

Prinsip Strategi

Strategi ini terdiri daripada dua bahagian:

  1. 123 Strategi berbalik

    • Apabila harga penutupan semalam lebih rendah daripada hari sebelumnya, harga penutupan hari ini lebih tinggi daripada hari sebelumnya, dan pada hari ke-9 garis Slow K lebih rendah daripada 50, lakukan lebih banyak
    • Apabila harga penutupan semalam lebih tinggi daripada hari sebelumnya, harga penutupan hari ini lebih rendah daripada hari sebelumnya, dan garis Fast K pada hari ke-9 lebih tinggi daripada 50, buat shorting
  2. Strategi Indeks Kinerja Relatif (RMI)

    • RMI adalah variasi faktor momentum yang ditambah pada asas RSI. Ia dikira dengan formula: RMI = (SMA pergerakan atas) / (SMA pergerakan bawah) * 100
    • Apabila RMI lebih rendah daripada garisan beli, buat lebih banyak; apabila RMI lebih tinggi daripada garisan jual beli, buat kurang

Strategi gabungan ini hanya akan menghasilkan isyarat dagangan apabila 123 berbalik dan isyarat RMI berganda dihantar secara serentak. Ini dapat mengurangkan peluang perdagangan yang salah.

Analisis kelebihan strategi

Strategi ini mempunyai kelebihan berikut:

  1. Gabungan dua indikator untuk meningkatkan ketepatan isyarat
  2. Menggunakan strategi pembalikan untuk keadaan gegaran
  3. Indeks RMI sensitif, boleh mengenal pasti titik perubahan trend yang kuat

Analisis risiko strategi

Strategi ini mempunyai beberapa risiko:

  1. Penapisan berganda akan kehilangan sebahagian daripada peluang perdagangan
  2. Isyarat pembalikan boleh menyebabkan kesilapan
  3. RMI parameter yang tidak betul akan menjejaskan hasil

Risiko ini dapat dikurangkan dengan menyesuaikan kombinasi parameter dan mengoptimumkan cara pengiraan indikator.

Arah pengoptimuman strategi

Strategi ini juga boleh dioptimumkan dalam beberapa aspek:

  1. Uji kombinasi parameter yang berbeza untuk mencari yang terbaik
  2. Cuba dengan kombinasi yang berbeza seperti KDJ, MACD dan sebagainya.
  3. Penyesuaian formula RMI untuk menjadikannya lebih sensitif
  4. Menambah mekanisme penangguhan kerugian untuk mengawal kerugian tunggal
  5. Menggabungkan jumlah transaksi untuk mengelakkan isyarat palsu

ringkaskan

Strategi indeks reversibiliti ganda dengan penapisan isyarat ganda dan pengoptimuman parameter dapat meningkatkan ketepatan keputusan perdagangan dengan berkesan dan mengurangkan kemungkinan isyarat yang salah. Ia digunakan untuk keadaan goyah dan dapat mengeksploitasi peluang reversibiliti. Strategi ini dapat meningkatkan lagi keberkesanan dan risiko laps dengan menyesuaikan parameter dan mengoptimumkan cara pengiraan indikator.

Kod sumber strategi
/*backtest
start: 2024-01-06 00:00:00
end: 2024-02-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 07/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
// The Relative Momentum Index (RMI) was developed by Roger Altman. Impressed 
// with the Relative Strength Index's sensitivity to the number of look-back 
// periods, yet frustrated with it's inconsistent oscillation between defined 
// overbought and oversold levels, Mr. Altman added a momentum component to the RSI.
// As mentioned, the RMI is a variation of the RSI indicator. Instead of counting 
// up and down days from close to close as the RSI does, the RMI counts up and down 
// days from the close relative to the close x-days ago where x is not necessarily 
// 1 as required by the RSI). So as the name of the indicator reflects, "momentum" is 
// substituted for "strength". 
//
// 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


RMI(Length,BuyZone, SellZone) =>
    pos = 0.0
    xMU = 0.0
    xMD = 0.0
    xPrice = close
    xMom = xPrice - xPrice[Length]
    xMU := iff(xMom >= 0, nz(xMU[1], 1) - (nz(xMU[1],1) / Length) + xMom, nz(xMU[1], 1))
    xMD := iff(xMom <= 0, nz(xMD[1], 1) - (nz(xMD[1],1) / Length) + abs(xMom), nz(xMD[1], 0))
    RM = xMU / xMD
    nRes = 100 * (RM / (1+RM))
    pos:= iff(nRes < BuyZone, 1,
    	   iff(nRes > SellZone, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Relative Momentum Index", 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, "---- Relative Momentum Index ----")
LengthRMI = input(20, minval=1)
BuyZone = input(40, minval=1)
SellZone = input(70, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRMI = RMI(LengthRMI,BuyZone, SellZone)
pos = iff(posReversal123 == 1 and posRMI == 1 , 1,
	   iff(posReversal123 == -1 and posRMI == -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 )