Strategi Penembusan Peralihan Purata Bergerak Berganda

Penulis:ChaoZhang, Tarikh: 2023-12-18 10:24:08
Tag:

img

Ringkasan

Dual Moving Average Reversal Breakout Strategy adalah strategi gabungan yang menggabungkan kedua-dua Strategi Reversal 123 dan Strategi Price & Moving Average Divergence. Idea utama strategi ini adalah untuk menjana isyarat perdagangan hanya apabila isyarat Reversal 123 sejajar dengan isyarat divergensi harga & MA.

Logika Strategi

Strategi Penembusan Peralihan Purata Bergerak Berganda terdiri daripada dua komponen:

  1. 123 Strategi Pembalikan

    Strategi Pembalikan 123 menjana isyarat dagangan berdasarkan dua hari berturut-turut pembalikan harga penutupan (iaitu penutupan yang lebih tinggi diikuti oleh penutupan yang lebih rendah; atau penutupan yang lebih rendah diikuti oleh penutupan yang lebih tinggi), digabungkan dengan garis K Osilator Stochastic 9 hari di bawah / di atas tahap tertentu (default 50). Isyarat beli dihasilkan apabila garis K di bawah 50 dan isyarat jual dihasilkan apabila garis K di atas 50.

  2. Strategi Perbezaan Harga & Purata Bergerak

    Strategi Price & MA Divergence mengira peratusan perbezaan antara harga dan purata bergerak tempoh tertentu (default 14). Ia menghasilkan isyarat beli apabila divergensi di bawah ambang (default 3%) dan isyarat jual apabila divergensi di atas ambang (default 0.54%).

Strategi Penembusan Pembalikan Purata Bergerak Berganda hanya menghasilkan isyarat dagangan sebenar apabila isyarat dari kedua-dua strategi di atas sejajar ke arah yang sama, iaitu kedua-duanya adalah isyarat beli atau kedua-duanya adalah isyarat jual.

Analisis Kelebihan

Strategi Penembusan Pembalikan Purata Bergerak Berganda menggabungkan kekuatan pembalikan dan strategi mengikuti trend untuk sinergi.

123 Reversal memilih isyarat pembalikan untuk memanfaatkan perubahan. Price & MA Divergence mengesan trend jangka panjang. Bersama-sama mereka menangkap pembalikan jangka pendek sambil menunggang trend yang lebih besar untuk mengelakkan terperangkap.

Tambahan pula, dengan memerlukan isyarat yang sejajar dari kedua-dua strategi, bilangan dagangan yang tidak sah dapat dikurangkan dengan ketara, meningkatkan nisbah isyarat ke bunyi.

Analisis Risiko

Walaupun memanfaatkan kekuatan kedua-dua strategi, Strategi Pembalikan Penembusan Purata Bergerak Berganda juga mewarisi risiko yang berkaitan dengan masing-masing.

Bagi komponen 123 Reversal, dua pembalikan harian berturut-turut tidak menjamin pembalikan trend sebenar. Mereka mungkin merupakan isyarat palsu yang disebabkan oleh penurunan jangka pendek.

Untuk bahagian Price & MA Divergence, parameter purata bergerak yang tidak sesuai boleh menyebabkan isyarat yang tertinggal.

Ringkasnya, risiko utama strategi ini berasal dari penyesuaian parameter yang buruk dan penjanaan isyarat yang salah. Risiko dapat dikurangkan melalui pengoptimuman parameter, henti rugi / mengambil keuntungan, campur tangan manual dll.

Peluang Peningkatan

Strategi Pembaharuan Penembusan Purata Bergerak Berganda boleh dipertingkatkan dalam aspek berikut:

  1. Mengoptimumkan parameter MA dan osilator untuk isyarat yang lebih baik
  2. Tambah penunjuk lain untuk penapisan isyarat
  3. Menggabungkan stop loss dan mengambil keuntungan
  4. Tambah penentuan trend untuk mengelakkan perdagangan yang tidak tepat pada masanya
  5. Intervensi manual dan penyesuaian parameter adaptif

Dengan gabungan kaedah peningkatan yang berbeza, kestabilan strategi dan keuntungan dapat ditingkatkan lagi.

Kesimpulan

Dual Moving Average Reversal Breakout Strategy menggabungkan kekuatan strategi pembalikan dan mengikuti trend, menghasilkan perdagangan hanya apabila kedua-dua jenis isyarat sejajar. Ia menangkap peluang pembalikan jangka pendek sambil menunggang trend yang lebih besar untuk mengelakkan perangkap. Mekanisme isyarat ganda juga meningkatkan kebolehpercayaan. Dengan banyak peluang peningkatan, ia adalah strategi perdagangan berbilang dan kuat.


/*backtest
start: 2023-12-10 00:00:00
end: 2023-12-17 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 13/04/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
// Percent difference between price and MA
//
// 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


DBP_MA(Length,SellZone,BuyZone) =>
    pos = 0.0
    xSMA = sma(close, Length)
    nRes = abs(close - xSMA) * 100 / close
    pos:= iff(nRes < BuyZone, 1,
           iff(nRes > SellZone, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Difference between price and MA", 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, "---- Difference between price and MA ----")
LengthDBP = input(14, minval=1)
SellZone = input(0.54, minval=0.01, step = 0.01)
BuyZone = input(0.03, minval=0.01, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDBP_MA = DBP_MA(LengthDBP,SellZone,BuyZone)
pos = iff(posReversal123 == 1 and posDBP_MA == 1 , 1,
	   iff(posReversal123 == -1 and posDBP_MA == -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