Strategi perdagangan gabungan berdasarkan pembalikan corak dan penunjuk MACD


Tarikh penciptaan: 2023-09-19 17:17:30 Akhirnya diubah suai: 2023-09-19 17:17:30
Salin: 0 Bilangan klik: 715
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Strategi ini adalah untuk menggabungkan 123 reversal dan MACD untuk menghasilkan penapisan isyarat perdagangan yang lebih kuat. Di mana 123 reversal menangkap peluang reversal jangka pendek, dan MACD memberikan penghakiman trend jangka panjang. Isyarat gabungan dapat dengan berkesan mencari titik perdagangan berkemungkinan tinggi.

Prinsip Strategi

  1. 123 bentuk strategi pembalikan, menilai dua hari sebelum jatuh dan hari ini harga penutupan meningkat, dan Stochastic indikator di bawah penurunan harga membeli; dua hari naik hari ini jatuh, Stochastic lebih tinggi daripada penurunan harga menjual.

  2. Strategi penunjuk MACD, lakukan lebih banyak apabila garis cepat lebih tinggi daripada garis perlahan, dan kosong apabila garis cepat lebih rendah daripada garis perlahan.

  3. Hanya berdagang apabila kedua-dua isyarat strategi sesuai, atau tidak berdagang. Perdagangan terbalik boleh ditukar.

Analisis kelebihan

Strategi ini mempunyai kelebihan utama:

  1. Isyarat gabungan boleh menyaring penembusan palsu dengan berkesan, meningkatkan kadar kemenangan.

  2. Bentuk 123 boleh menangkap peluang pembalikan jangka pendek, MACD menilai arah trend garis panjang tengah.

  3. Penunjuk Stochastic yang digabungkan dengan 123 bentuk dapat mengelakkan perdagangan berlebihan selepas trend berbalik.

  4. Kedua-dua strategi berkongsi tugas dagangan yang berbeza dan dapat saling disahkan, mengurangkan risiko strategi tunggal yang terlalu dioptimumkan.

  5. Ia boleh bertukar dengan mudah dalam pelbagai arah, menyesuaikan diri dengan pelbagai keadaan pasaran.

Analisis risiko

Risiko utama strategi ini ialah:

  1. Isyarat gabungan terlalu konservatif dan mungkin terlepas peluang yang lebih baik.

  2. Bentuk terbalik terdedah kepada kejadian yang tidak dijangka, berlaku kegagalan.

  3. Tidak mengambil kira mekanisme penangguhan kerugian, terdapat risiko kerugian besar.

  4. Isyarat penapisan berganda mungkin terlepas peluang trend.

  5. Parameter tidak dioptimumkan, parameter lalai tidak semestinya sesuai untuk semua jenis.

Arah pengoptimuman

Ia boleh dioptimumkan dengan:

  1. Uji kombinasi parameter yang berbeza untuk mencari parameter yang optimum.

  2. Tambah strategi hentikan kerugian dan kawal kerugian tunggal.

  3. Menambah penapis untuk meningkatkan kualiti isyarat.

  4. Menambah model pembelajaran mesin untuk mengoptimumkan parameter secara automatik.

  5. Uji kebolehpastian strategi dalam lebih banyak jenis perdagangan.

  6. Kombinasi parameter pertukaran mengikut keadaan pasaran.

ringkaskan

Secara keseluruhannya, strategi ini dapat mengelakkan masalah pengoptimuman strategi tunggal dengan menggabungkan isyarat ganda. Dengan penambahan penapis indikator, mekanisme penghentian kerugian dan lain-lain, ia boleh menjadi strategi perdagangan kuantitatif yang lebih stabil dan praktikal.

Kod sumber strategi
/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-14 02:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 24/07/2020
// 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 one of the techniques described by William Blau in his book
// "Momentum, Direction and Divergence" (1995). If you like to learn more,
// we advise you to read this book. His book focuses on three key aspects
// of trading: momentum, direction and divergence. Blau, who was an electrical
// engineer before becoming a trader, thoroughly examines the relationship 
// between price and momentum in step-by-step examples. From this grounding,
// he then looks at the deficiencies in other oscillators and introduces some
// innovative techniques, including a fresh twist on Stochastics. On directional 
// issues, he analyzes the intricacies of ADX and offers a unique approach to help 
// define trending and non-trending periods.
// Blau`s indicator is like usual MACD, but it plots opposite of meaningof
// stndard MACD indicator.  
//
// 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

fADX(Len) =>
    up = change(high)
    down = -change(low)
    trur = rma(tr, Len)
    plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, Len) / trur)
    minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, Len) / trur)
    sum = plus + minus 
    100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), Len)

EMACD(r,SmthLen,LengthMACD) =>
    pos = 0
    source = close
    fastMA = ema(source, r)
    slowMA = ema(source, LengthMACD)
    xmacd = fastMA - slowMA
    xMA_MACD = ema(xmacd, SmthLen)
    pos := iff(xmacd < xMA_MACD, -1,
    	     iff(xmacd > xMA_MACD, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Ergodic MACD", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
r = input(14, minval=1)
LengthMACD = input(21, minval=1)
SmthLen = input(5, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posEMACD = EMACD(r,SmthLen,LengthMACD)
pos = iff(posReversal123 == 1 and posEMACD == 1 , 1,
	   iff(posReversal123 == -1 and posEMACD == -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 )