Strategi Dagangan Peralihan Purata Bergerak Berganda

Penulis:ChaoZhang, Tarikh: 2024-01-15 12:35:29
Tag:

img

Ringkasan

Strategi perdagangan pembalikan purata bergerak berganda menggabungkan strategi perdagangan pembalikan Bollinger Bands dan strategi perdagangan purata bergerak eksponensial berganda untuk merancang strategi perdagangan penilaian isyarat yang komprehensif.

Prinsip Strategi

Strategi ini terdiri daripada dua bahagian:

  1. Strategi perdagangan pembalikan Bollinger Bands

    Gunakan dua garis dari penunjuk Bollinger Bands - % K line dan % D line. Pergi panjang apabila harga penutupan lebih rendah daripada penutupan hari sebelumnya selama dua hari berturut-turut dan garis % K berada di atas garis % D; pergi pendek apabila harga penutupan lebih tinggi daripada penutupan hari sebelumnya selama dua hari berturut-turut dan garis % K berada di bawah garis % D.

  2. Strategi purata bergerak eksponensial berganda

    Mengira purata bergerak eksponen dua hari 20 dan 20 hari * 2. Isyarat perdagangan dihasilkan apabila harga melintasi di atas atau di bawah purata bergerak dua.

Peraturan penghakiman isyarat gabungan: Isyarat dagangan sebenar dihasilkan hanya apabila isyarat dagangan dari kedua-dua strategi bersetuju.

Analisis Kelebihan

Kelebihan terbesar strategi gabungan ini adalah kebolehpercayaannya yang tinggi dan sedikit isyarat palsu. kerana ia memerlukan isyarat dari dua jenis strategi yang berbeza untuk mencetuskan pada masa yang sama, yang menapis beberapa isyarat palsu yang mungkin muncul dalam satu strategi.

Di samping itu, dengan menggabungkan strategi pembalikan dan trend, ia boleh menangkap kedua-dua pembalikan jangka pendek dan trend jangka sederhana sekuriti asas.

Analisis Risiko

Risiko utama strategi ini ialah apabila pasaran berada dalam turun naik jangka panjang, kedua-dua strategi mungkin gagal menghasilkan isyarat yang konsisten, mengakibatkan keadaan pasaran yang tidak sah. Pada ketika ini, peniaga perlu menangguhkan penggunaan strategi ini dan menunggu trend yang jelas terbentuk.

Di samping itu, sebagai penunjuk jangka sederhana dan jangka panjang, purata bergerak berganda mungkin gagal apabila pembalikan jangka pendek berlaku dengan cepat.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dengan cara berikut:

  1. Tambah lebih banyak parameter seperti harga stop loss, julat harga stop loss yang mengikuti dan lain-lain untuk menjadikan strategi lebih terkawal.

  2. Tambah lebih banyak penunjuk untuk membentuk pelbagai kriteria penapis dan menghapuskan perdagangan yang lebih bising.

  3. Mengoptimumkan parameter penunjuk seperti tempoh Bollinger, tempoh purata bergerak dan lain-lain, untuk mencari kombinasi parameter yang terbaik.

  4. Uji keberkesanan strategi ini masing-masing dalam produk yang berbeza ( saham, forex, crypto dll) dan pilih yang paling sesuai.

Kesimpulan

Strategi pembalikan purata bergerak berganda menghasilkan isyarat perdagangan gabungan yang agak boleh dipercayai dengan menggabungkan strategi pembalikan dan trend. Ia sesuai untuk peniaga yang berminat dengan pembalikan jangka pendek dan trend jangka menengah harga sekuriti. Tetapi perhatikan bahawa strategi ini mungkin gagal dalam pasaran jangka panjang yang terikat. Dengan mengoptimumkan parameter dan menambah lebih banyak penunjuk, kepraktisan strategi ini dapat ditingkatkan lagi.


/*backtest
start: 2023-01-08 00:00:00
end: 2024-01-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 12/04/2019
// This is combo strategies for get 
// a cumulative signal. Result signal will return 1 if two strategies 
// is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
//
// 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.
//
// Secon strategy
// This indicator plots 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
// Please, use it only for learning or paper trading. Do not for real trading.
//
// 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

EMA2_20(MA_Length, MA_xPrice) =>
    xXA = ema(MA_xPrice, MA_Length)
    nHH = max(high, high[1])
    nLL = min(low, low[1])
    nXS = iff((nLL > xXA)or(nHH < xXA), nLL, nHH)
    pos = 0.0
    pos := iff(nXS > close[1] , -1, iff(nXS < close[1] , 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal and 2/20 EMA", shorttitle="Combo Backtest", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
MA_Length = input(20, minval=1)
reverse = input(false, title="Trade reverse")
MA_xPrice = close
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posEMA2_20 = EMA2_20(MA_Length, MA_xPrice)
pos = iff(posReversal123 == 1 and posEMA2_20 == 1 , 1,
	   iff(posReversal123 == -1 and posEMA2_20 == -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 ? red: possig == 1 ? green : blue ) 

Lebih lanjut