Strategi Dagangan Indeks Momentum Pembalikan Ganda

Penulis:ChaoZhang, Tarikh: 2024-02-06 09:29:34
Tag:

img

Ringkasan

Strategi Indeks Momentum Pembalikan Ganda menggabungkan strategi Pembalikan 123 dan strategi Indeks Momentum Relatif (RMI). Ia bertujuan untuk meningkatkan ketepatan keputusan perdagangan dengan menggunakan isyarat ganda.

Prinsip Strategi

Strategi ini terdiri daripada dua bahagian:

  1. 123 Strategi Pembalikan

    • Lama apabila penutupan semalam lebih rendah daripada hari-hari sebelumnya dan penutupan hari ini lebih tinggi daripada hari-hari sebelumnya, dan 9 hari Slow K lebih rendah daripada 50
    • Pendek apabila penutupan semalam lebih tinggi daripada hari-hari sebelumnya dan penutupan hari ini lebih rendah daripada hari-hari sebelumnya, dan 9 hari Fast K lebih tinggi daripada 50
  2. Strategi Indeks Momentum Relatif (RMI)

    • RMI adalah variasi RSI dengan komponen momentum ditambah. Rumusnya ialah: RMI = (Upward Momentum SMA) / ((Downward Momentum SMA) * 100
    • Lama apabila RMI lebih rendah daripada garis overbought; Pendek apabila RMI lebih tinggi daripada garis oversold

Strategi ini hanya menjana isyarat perdagangan apabila 123 Reversal dan RMI memberikan isyarat ganda yang sejajar. Ini dapat mengurangkan kemungkinan perdagangan yang salah.

Analisis Kelebihan

Kelebihan strategi ini termasuk:

  1. Keakuratan isyarat yang lebih baik dengan penunjuk berganda
  2. Teknik pembalikan yang sesuai untuk pasaran terhad julat
  3. RMI sensitif untuk mengenal pasti titik perubahan trend yang kuat

Analisis Risiko

Terdapat juga beberapa risiko:

  1. Penapis berganda mungkin kehilangan beberapa peluang perdagangan
  2. Isyarat pembalikan mungkin mempunyai penilaian yang salah
  3. Tetapan parameter RMI yang tidak betul boleh menjejaskan kecekapan

Risiko ini boleh dikurangkan dengan menyesuaikan parameter, mengoptimumkan pengiraan penunjuk.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan lagi melalui:

  1. Ujian kombinasi parameter yang berbeza untuk mencari optimum
  2. Mencuba kombinasi penunjuk pembalikan yang berbeza e.g. KDJ, MACD
  3. Menyesuaikan formula RMI untuk menjadikannya lebih sensitif
  4. Menambah mekanisme stop loss untuk mengawal kerugian tunggal
  5. Menggabungkan jumlah dagangan untuk mengelakkan isyarat palsu

Kesimpulan

Strategi Indeks Momentum Pembalikan Ganda dapat meningkatkan ketepatan keputusan dagangan dengan berkesan dan mengurangkan kemungkinan isyarat yang salah melalui penapisan isyarat ganda dan pengoptimuman parameter. Ia sesuai untuk pasaran terikat julat untuk mendedahkan peluang pembalikan. Strategi ini boleh ditingkatkan lagi dengan menyesuaikan parameter dan mengoptimumkan pengiraan indikator untuk mengurangkan risiko.


/*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 )

Lebih lanjut