Strategi Pengubahsuaian Trend dan Ehlers Indikator Utama Kombo

Penulis:ChaoZhang, Tarikh: 2023-11-07 16:10:26
Tag:

img

Ringkasan

Strategi ini menggabungkan strategi pembalikan trend dan strategi penunjuk utama Ehlers untuk menjana isyarat perdagangan yang lebih boleh dipercayai. Strategi pembalikan trend mengenal pasti titik pembalikan trend sementara strategi penunjuk utama Ehlers mengenal pasti titik perubahan kitaran. Isyarat gabungan dapat lebih menentukan masa kemasukan pasaran.

Logika Strategi

Strategi Pembalikan Trend

Strategi ini diambil dari buku How I Tripped My Money in the Futures Market oleh Ulf Jensen, halaman 183. Ini adalah strategi jenis pembalikan. Ia pergi lama apabila penutupan lebih tinggi daripada penutupan sebelumnya selama 2 hari berturut-turut dan garis perlahan Stochastic 9 hari di bawah 50.

Ehlers Strategi Penunjuk Utama

Strategi ini merangka satu harga sintetik detrended harian (DSP) dan penunjuk utama Ehlers harian (ELI) menggunakan data intraday. DSP menangkap kitaran harga dominan dan dikira dengan mengurangkan penapis Butterworth 3-polar dari penapis 2-polar. ELI memberikan petunjuk lanjutan titik perubahan kitaran dan dikira dengan mengurangkan purata bergerak mudah DSP dari DSP itu sendiri. Isyarat beli dan jual dihasilkan apabila ELI melintasi di atas atau di bawah DSP.

Analisis Kelebihan

Kelebihan terbesar strategi combo ini adalah menggabungkan pengenalan pembalikan trend dan pengesanan titik perubahan kitaran untuk isyarat yang lebih boleh dipercayai. Strategi pembalikan trend mengenal pasti pembalikan selepas pecah sementara penunjuk utama Ehlers memberikan petunjuk awal paras rendah dan tinggi kitaran. Menggabungkan kedua-duanya dapat lebih tepat menentukan kemasukan pasaran.

Satu lagi kelebihan adalah fleksibiliti dalam penyesuaian parameter. Parameter penunjuk stokastik boleh diselaraskan berdasarkan keadaan pasaran.

Analisis Risiko

Risiko terbesar strategi ini adalah kehilangan trend yang berterusan. Oleh kerana strategi menunggu isyarat pembalikan masuk, ia mungkin terlepas pergerakan trend awal yang kuat. Isyarat pembalikan juga mungkin menjadi pecah palsu yang mengakibatkan terperangkap.

Penyelesaian adalah untuk menyesuaikan parameter untuk memperpendek tempoh pengesanan pembalikan untuk menangkap pembalikan trend tepat pada masanya.

Arahan pengoptimuman

Strategi ini boleh ditingkatkan dalam aspek berikut:

  1. Memperkenalkan stop loss untuk mengawal kerugian perdagangan tunggal.

  2. Mengoptimumkan parameter untuk menyesuaikan tempoh isyarat pembalikan untuk persekitaran pasaran yang berbeza.

  3. Tambah penapis penunjuk lain untuk meningkatkan kualiti isyarat dan mengurangkan isyarat palsu.

  4. Tambah saiz kedudukan dan modul pengurusan risiko.

  5. Uji parameter di pelbagai produk untuk mencari kesesuaian yang optimum.

  6. Tambah modul pembelajaran mesin untuk penyesuaian parameter adaptif.

Ringkasan

Strategi ini menggabungkan pembalikan trend dan pengesanan titik balik kitaran untuk kemasukan pasaran yang lebih boleh dipercayai. Kelebihan terbesar adalah kualiti isyarat yang tinggi dan fleksibiliti. Risiko utama adalah kehilangan trend awal, yang boleh dikurangkan melalui penyesuaian parameter dan stop loss. Penambahbaikan masa depan boleh memberi tumpuan kepada stop loss, pengoptimuman parameter, penapisan isyarat dan lain-lain untuk menjadikan strategi yang kukuh di seluruh persekitaran pasaran.


/*backtest
start: 2023-10-07 00:00:00
end: 2023-11-06 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 26/11/2019
// 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 Indicator plots a single
// Daily DSP (Detrended Synthetic Price) and a Daily ELI (Ehlers Leading
// Indicator) using intraday data.
// Detrended Synthetic Price is a function that is in phase with the dominant
// cycle of real price data. This one is computed by subtracting a 3 pole Butterworth
// filter from a 2 Pole Butterworth filter. Ehlers Leading Indicator gives an advanced
// indication of a cyclic turning point. It is computed by subtracting the simple
// moving average of the detrended synthetic price from the detrended synthetic price.
// Buy and Sell signals arise when the ELI indicator crosses over or under the detrended
// synthetic price.
// See "MESA and Trading Market Cycles" by John Ehlers pages 64 - 70. 
//
// 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

D_ELI(Length) =>
    pos = 0.0
    xHL2 = security(syminfo.tickerid, 'D', hl2)
    xEMA1 = ema(xHL2, Length)
    xEMA2 = ema(xHL2, 2 * Length)
    xEMA1_EMA2 = xEMA1 - xEMA2
    xResultEMA = ema(xEMA1_EMA2, Length)
    nRes = xEMA1_EMA2 - xResultEMA
    pos:= iff(nRes > 0, 1,
	       iff(nRes < 0, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & D_ELI (Ehlers Leading Indicator)", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthELI = input(7, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posD_ELI = D_ELI(LengthELI)
pos = iff(posReversal123 == 1 and posD_ELI == 1 , 1,
	   iff(posReversal123 == -1 and posD_ELI == -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 lanjut