Strategi perdagangan pembalikan rata-rata bergerak ganda

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

img

Gambaran umum

Strategi perdagangan pembalikan rata-rata bergerak ganda menggabungkan strategi perdagangan pembalikan Bollinger Bands dan strategi perdagangan rata-rata bergerak eksponensial ganda untuk merancang strategi perdagangan penilaian sinyal yang komprehensif.

Prinsip Strategi

Strategi ini terdiri dari dua bagian:

  1. Strategi perdagangan pembalikan Bollinger Bands

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

  2. Strategi rata-rata bergerak eksponensial ganda

    Menghitung 20 hari dan 20 hari * 2 rata-rata bergerak eksponensial ganda. sinyal perdagangan dihasilkan ketika harga melintasi di atas atau di bawah rata-rata bergerak ganda.

Aturan penilaian sinyal gabungan: Sinyal perdagangan yang sebenarnya hanya dihasilkan ketika sinyal perdagangan dari kedua strategi setuju.

Analisis Keuntungan

Keuntungan terbesar dari strategi gabungan ini adalah keandalan yang tinggi dan sedikit sinyal palsu. karena membutuhkan sinyal dari dua jenis strategi yang berbeda untuk memicu pada saat yang sama, yang menyaring beberapa sinyal palsu yang mungkin muncul dalam satu strategi.

Selain itu, dengan menggabungkan strategi pembalikan dan tren, ia dapat menangkap pembalikan jangka pendek dan tren jangka menengah dari sekuritas yang mendasari.

Analisis Risiko

Risiko utama dari strategi ini adalah bahwa ketika pasar berada dalam osilasi jangka panjang, kedua strategi mungkin gagal menghasilkan sinyal yang konsisten, yang mengakibatkan kondisi pasar yang tidak valid. Pada titik ini, pedagang perlu menangguhkan penggunaan strategi ini dan menunggu tren yang jelas terbentuk.

Selain itu, sebagai indikator jangka menengah dan jangka panjang, rata-rata bergerak ganda dapat gagal ketika pembalikan jangka pendek terjadi dengan cepat.

Arahan Optimasi

Strategi dapat dioptimalkan dengan cara berikut:

  1. Tambahkan lebih banyak parameter seperti harga stop loss, trailing stop loss range harga dll untuk membuat strategi lebih terkontrol.

  2. Tambahkan lebih banyak indikator untuk membentuk beberapa kriteria filter dan menghilangkan perdagangan yang lebih bising.

  3. Mengoptimalkan parameter indikator seperti periode Bollinger, periode rata-rata bergerak dll, untuk menemukan kombinasi parameter terbaik.

  4. Uji efektivitas strategi ini masing-masing pada produk yang berbeda (saham, forex, crypto dll) dan pilih yang paling cocok.

Kesimpulan

Strategi pembalikan rata-rata bergerak ganda menghasilkan sinyal perdagangan gabungan yang relatif dapat diandalkan dengan menggabungkan strategi pembalikan dan tren. Ini cocok untuk pedagang yang tertarik pada pembalikan jangka pendek dan tren jangka menengah harga sekuritas. Tetapi perhatikan bahwa strategi dapat gagal di pasar jangka panjang yang terikat rentang. Dengan mengoptimalkan parameter dan menambahkan lebih banyak indikator, kepraktisan strategi ini dapat ditingkatkan lebih lanjut.


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