Strategi Penembusan Rata-rata Bergerak Ganda

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

img

Gambaran umum

Strategi Reversal Breakout Dual Moving Average adalah strategi kombinasi yang menggabungkan Strategi Reversal 123 dan Strategi Divergensi Price & Moving Average.

Logika Strategi

Strategi Breakout Rata-rata Bergerak Dual terdiri dari dua komponen:

  1. 123 Strategi Pembalikan

    Strategi Reversal 123 menghasilkan sinyal perdagangan berdasarkan dua hari berturut-turut pembalikan harga penutupan (yaitu penutupan lebih tinggi diikuti oleh penutupan lebih rendah; atau penutupan lebih rendah diikuti oleh penutupan lebih tinggi), dikombinasikan dengan garis K Osilator Stochastic 9 hari di bawah / di atas tingkat tertentu (default 50).

  2. Strategi Divergensi Harga & Rata-rata Bergerak

    Strategi Price & MA Divergence menghitung persentase perbedaan antara harga dan moving average periode tertentu (default 14). Ini menghasilkan sinyal beli ketika divergensi di bawah ambang batas (default 3%) dan sinyal jual ketika divergensi di atas ambang batas (default 0.54%).

Strategi Reversal Breakout Dual Moving Average hanya menghasilkan sinyal perdagangan yang sebenarnya ketika sinyal dari kedua strategi di atas sejajar ke arah yang sama, yaitu keduanya adalah sinyal beli atau keduanya adalah sinyal jual.

Analisis Keuntungan

Strategi Reversal Breakout Dual Moving Average menggabungkan kekuatan strategi reversal dan trend-following untuk sinergi.

The 123 Reversal memilih sinyal pembalikan untuk memanfaatkan pergantian. The Price & MA Divergence melacak tren jangka panjang. Bersama-sama mereka menangkap pembalikan jangka pendek sambil mengendarai tren yang lebih besar untuk menghindari terjebak.

Selain itu, dengan membutuhkan sinyal yang selaras dari kedua strategi, jumlah perdagangan yang tidak valid dapat berkurang secara signifikan, meningkatkan rasio sinyal-ke-bising.

Analisis Risiko

Sementara memanfaatkan kekuatan dari kedua strategi, Dual Moving Average Reversal Breakout Strategy juga mewarisi risiko yang terkait dengan masing-masing.

Untuk komponen 123 Reversal, dua pembalikan harian berturut-turut tidak menjamin pembalikan tren nyata. Mereka bisa menjadi sinyal palsu yang disebabkan oleh pullback jangka pendek. Juga, penyesuaian parameter Stochastic Oscillator yang buruk dapat menurunkan kualitas sinyal.

Untuk bagian Price & MA Divergence, parameter rata-rata bergerak yang tidak tepat dapat menyebabkan sinyal tertinggal.

Singkatnya, risiko utama dari strategi ini berasal dari pengaturan parameter yang buruk dan generasi sinyal yang salah.

Peluang Peningkatan

Strategi Reversal Breakout Rata-rata Bergerak Berganda dapat ditingkatkan dalam aspek berikut:

  1. Mengoptimalkan parameter MA dan osilator untuk sinyal yang lebih baik
  2. Tambahkan indikator lain untuk penyaringan sinyal
  3. Menggabungkan stop loss dan mengambil keuntungan
  4. Tambahkan penentuan tren untuk menghindari perdagangan yang tidak tepat waktu
  5. Intervensi manual dan penyesuaian parameter adaptif

Dengan kombinasi metode peningkatan yang berbeda, stabilitas strategi dan profitabilitas dapat ditingkatkan lebih lanjut.

Kesimpulan

Dual Moving Average Reversal Breakout Strategy menggabungkan kekuatan strategi reversal dan trend-following, menghasilkan perdagangan hanya ketika kedua jenis sinyal sejajar. Ini menangkap peluang pembalikan jangka pendek sambil mengendarai tren yang lebih besar untuk menghindari jebakan. Mekanisme sinyal ganda juga meningkatkan keandalan. Dengan banyak peluang peningkatan, ini adalah strategi perdagangan yang serbaguna 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 banyak