Strategi Kombo Trend Reversal dan Ehlers Leading Indicator

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

img

Gambaran umum

Strategi ini menggabungkan strategi pembalikan tren dan strategi indikator terkemuka Ehlers untuk menghasilkan sinyal perdagangan yang lebih dapat diandalkan. Strategi pembalikan tren mengidentifikasi titik pembalikan tren sementara strategi indikator terkemuka Ehlers mengidentifikasi titik balik siklus. Sinyal gabungan dapat lebih menentukan waktu masuk pasar.

Logika Strategi

Strategi Pembalikan Tren

Strategi ini berasal dari buku How I Tripped My Money in the Futures Market oleh Ulf Jensen, halaman 183. Ini adalah strategi jenis pembalikan. Ini panjang ketika penutupan lebih tinggi dari penutupan sebelumnya selama 2 hari berturut-turut dan garis lambat Stochastic 9 hari di bawah 50.

Strategi Indikator Terdepan Ehlers

Strategi ini memetakan satu harga sintetis detrended harian (DSP) dan indikator terkemuka Ehlers harian (ELI) menggunakan data intraday. DSP menangkap siklus harga yang dominan dan dihitung dengan mengurangi filter Butterworth 3 kutub dari filter 2 kutub. ELI memberikan indikasi lanjutan dari titik balik siklik dan dihitung dengan mengurangi rata-rata bergerak sederhana DSP dari DSP itu sendiri. Sinyal beli dan jual dihasilkan ketika ELI melintasi di atas atau di bawah DSP.

Analisis Keuntungan

Keuntungan terbesar dari strategi combo ini adalah menggabungkan identifikasi pembalikan tren dan deteksi titik balik siklik untuk sinyal yang lebih dapat diandalkan. Strategi pembalikan tren mengidentifikasi pembalikan setelah pecah sementara indikator terkemuka Ehlers memberikan indikasi dini dari titik terendah dan tertinggi siklik. Menggabungkan keduanya dapat lebih tepat menentukan masuk pasar.

Keuntungan lain adalah fleksibilitas dalam penyesuaian parameter. Parameter indikator stokastik dapat disesuaikan berdasarkan kondisi pasar. Panjang siklus untuk indikator terkemuka Ehlers juga dapat disesuaikan untuk siklus yang berbeda.

Analisis Risiko

Risiko terbesar dari strategi ini adalah kehilangan tren yang bertahan. Karena strategi menunggu sinyal pembalikan untuk masuk, ia mungkin melewatkan pergerakan tren awal yang kuat.

Solusinya adalah menyesuaikan parameter untuk memperpendek periode deteksi pembalikan untuk menangkap pembalikan tren tepat waktu. Stop loss juga dapat diperkenalkan untuk mengendalikan kerugian.

Arahan Optimasi

Strategi ini dapat ditingkatkan dalam hal berikut:

  1. Memperkenalkan stop loss untuk mengendalikan kerugian perdagangan tunggal.

  2. Mengoptimalkan parameter untuk menyesuaikan periode sinyal pembalikan untuk lingkungan pasar yang berbeda.

  3. Tambahkan filter indikator lain untuk meningkatkan kualitas sinyal dan mengurangi sinyal palsu.

  4. Tambahkan ukuran posisi dan modul manajemen risiko.

  5. Uji parameter pada produk yang berbeda untuk menemukan penyesuaian yang optimal.

  6. Tambahkan modul pembelajaran mesin untuk pengaturan parameter adaptif.

Ringkasan

Strategi ini menggabungkan pembalikan tren dan deteksi titik balik siklik untuk masuk ke pasar yang lebih andal. Keuntungan terbesar adalah kualitas sinyal dan fleksibilitas yang tinggi. Risiko utama adalah hilangnya tren awal, yang dapat dikurangi melalui penyesuaian parameter dan stop loss. Peningkatan di masa depan dapat berfokus pada stop loss, optimasi parameter, penyaringan sinyal, dll.


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