123 Strategi Amplop Rata-rata Bergerak Pembalik

Penulis:ChaoZhang, Tanggal: 2023-10-20 16:05:43
Tag:

img

Gambaran umum

123 Reversal Moving Average Envelope Strategy adalah strategi perdagangan kuantitatif yang menggabungkan 123 teknik trading reversal dan indikator moving average envelope.

Logika Strategi

Strategi ini terdiri dari dua bagian:

Bagian pertama adalah strategi pembalikan 123. Sinyalnya berasal dari osilator KDJ. Secara khusus, jika harga penutupan lebih rendah dari penutupan sebelumnya selama dua hari berturut-turut, dan garis K lambat 9 hari di bawah 50, sinyal beli dihasilkan; jika harga penutupan lebih tinggi dari penutupan sebelumnya selama dua hari berturut-turut, dan garis K cepat 9 hari di atas 50, sinyal jual dihasilkan.

Bagian kedua adalah strategi amplop rata-rata bergerak. Ini menggunakan rata-rata bergerak dan garis amplop di atas dan di bawah rata-rata bergerak untuk menentukan tren. Secara khusus, jika harga penutupan lebih tinggi dari band atas, sinyal beli dihasilkan; jika harga penutupan lebih rendah dari band bawah, sinyal jual dihasilkan.

Strategi ini menggabungkan dua jenis sinyal perdagangan di atas. Ini hanya akan membuka posisi panjang ketika 123 pembalikan dan amplop rata-rata bergerak keduanya memberikan sinyal beli; Ini hanya akan membuka posisi pendek ketika keduanya memberikan sinyal jual. Ini menyaring beberapa sinyal yang tidak valid dan mengurangi frekuensi perdagangan sambil meningkatkan profitabilitas.

Analisis Keuntungan

  • Menggabungkan pembalikan dan tren untuk meningkatkan profitabilitas

    Strategi pembalikan 123 unggul dalam menangkap peluang pembalikan di dekat tingkat dukungan dan resistensi utama. Strategi amplop rata-rata bergerak secara akurat menentukan arah tren. Menggunakan keduanya meningkatkan probabilitas menangkap pembalikan pada tingkat harga yang memiliki probabilitas tinggi.

  • Filter ganda mengurangi frekuensi perdagangan

    Perdagangan hanya dilakukan ketika kedua indikator memberikan sinyal. Hal ini menghindari gangguan dari sinyal yang berlebihan tidak valid dari satu indikator dan dengan demikian mengurangi frekuensi perdagangan dan biaya.

  • Parameter yang dapat disesuaikan memberikan fleksibilitas

    Parameter yang dapat disesuaikan memungkinkan pengguna untuk menyesuaikan strategi dengan kondisi pasar dan preferensi pribadi untuk peningkatan kemampuan beradaptasi.

  • Perdagangan satu sisi menyederhanakan operasi

    Strategi hanya pergi panjang atau pendek, tanpa posisi terbalik.

Analisis Risiko

  • Kemunduran berjuang dalam tren yang terus-menerus

    Strategi ini terutama bergantung pada pembalikan keuntungan. Selama periode tren yang panjang, itu dapat menghasilkan kerugian terus menerus.

  • Optimasi parameter sulit

    Beberapa parameter yang dapat disesuaikan menimbulkan tantangan pengoptimalan. Kombinasi parameter yang tidak tepat dapat menurunkan kinerja.

  • Perputaran yang tinggi meningkatkan risiko perdagangan

    Perubahan posisi yang sering memungkinkan penguncian keuntungan kecil tetapi juga meningkatkan biaya dan risiko dari overtrading.

  • Tidak ada batas penarikan

    Kurangnya stop loss berarti tidak ada batas maksimum penarikan.

Arahan Optimasi

  • Tambahkan stop loss

    Mengimplementasikan stop loss bergerak atau mengiringi untuk membatasi penarikan.

  • Mengoptimalkan parameter

    Backtest dan test ke depan untuk menemukan parameter optimal untuk stabilitas yang lebih tinggi.

  • Tambahkan filter sinyal

    Menambahkan filter seperti MACD dan Bollinger Bands dapat memvalidasi sinyal dan lebih meningkatkan kualitas sambil mengurangi perdagangan yang tidak diinginkan.

  • Mengurangi frekuensi perdagangan

    Kondisi pembalikan yang ringan dan penyesuaian pengaturan rata-rata bergerak untuk penurunan omset dapat mengurangi biaya dan risiko.

Kesimpulan

123 Reversal Moving Average Envelope Strategy menggabungkan kekuatan dari reversal trading dan trend following untuk outperformance yang disesuaikan dengan risiko yang stabil. Optimasi lebih lanjut dapat meningkatkan ketahanan parameter untuk hasil yang lebih baik. Sintesisnya yang efektif dari beberapa jenis sinyal membuatnya cocok untuk tren dan rentang, dan bermanfaat bagi trader kuant untuk dipelajari dan diimplementasikan.


/*backtest
start: 2023-09-19 00:00:00
end: 2023-10-19 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 22/03/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
// Moving Average Envelopes are percentage-based envelopes set above and 
// below a moving average. The moving average, which forms the base for 
// this indicator, can be a simple or exponential moving average. Each 
// envelope is then set the same percentage above or below the moving average. 
// This creates parallel bands that follow price action. With a moving average 
// as the base, Moving Average Envelopes can be used as a trend following indicator. 
// However, this indicator is not limited to just trend following. The envelopes 
// can also be used to identify overbought and oversold levels when the trend is 
// relatively flat. 
//
// 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


MAE(Length,PercentShift) =>
    pos = 0.0
    xSMA = sma(close, Length)
    xHighBand = xSMA + (xSMA * PercentShift / 100)
    xLowBand = xSMA - (xSMA * PercentShift / 100)
    pos := iff(close > xHighBand, 1,
             iff(close <xLowBand, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Moving Average Envelopes", 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, "---- MA Envelope ----")
LengthMA = input(18, minval=1)
PercentShift = input(0.2, minval = 0.01, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMAE = MAE(LengthMA,PercentShift)
pos = iff(posReversal123 == 1 and posMAE == 1 , 1,
	   iff(posReversal123 == -1 and posMAE == -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