Strategi Fusi yang Mengambil Tren Dua Jalur

Penulis:ChaoZhang, Tanggal: 2023-11-06 11:49:41
Tag:

img

Gambaran umum

Strategi ini menggabungkan sub-strategi 123 Reversal dan SMA Ergodic Oscillator untuk membentuk strategi pelacakan tren dengan penyaringan sinyal dual-track. Strategi 123 Reversal menilai titik balik potensial melalui pola lilin; SMA Ergodic Oscillator menentukan arah tren menggunakan moving average. Mereka saling memverifikasi untuk membentuk mekanisme konfirmasi ganda, yang dapat secara efektif menyaring sinyal palsu dan menangkap arah tren yang relatif kuat untuk pelacakan tren perdagangan.

Logika Strategi

  1. 123 Strategi Pembalikan

Strategi ini berasal dari sistem pada p183 dari buku Ulf Jensen How I Tripped My Money in the Futures Market. Ini termasuk tipe pembalikan. Ketika harga penutupan lebih tinggi dari penutupan sebelumnya selama 2 hari berturut-turut, dan garis lambat dari stokastik 9 hari berada di bawah 50, pergi panjang; ketika harga penutupan lebih rendah dari penutupan sebelumnya selama 2 hari berturut-turut, dan garis cepat dari stokastik 9 hari berada di atas 50, pergi pendek.

  1. SMA Ergodic Oscillator

Indikator ini mirip dengan TSI yang dikembangkan oleh William Blau, kecuali bahwa osilator SMA berisi garis sinyal. Indikator SMA Ergodic menggunakan rata-rata bergerak ganda harga dikurangi harga sebelumnya, dan memetakan EMA dari SMI sebagai garis sinyal untuk memicu sinyal perdagangan. Parameter dapat disesuaikan untuk optimasi.

Konfirmasi ganda: buka posisi hanya ketika 123 Reversal dan SMA Ergodic memberikan sinyal ke arah yang sama. Tetap flat ketika arah sinyal tidak konsisten.

Keuntungan

  1. Integrasi beberapa indikator membentuk mekanisme konfirmasi ganda, yang dapat secara efektif menyaring sinyal palsu.

  2. Strategi pembalikan menilai titik pembalikan potensial melalui pola lilin. SMA Ergodic Oscillator mengeluarkan sinyal berdasarkan penilaian tren. Mereka saling melengkapi untuk mengatasi keterbatasan indikator tunggal.

  3. Parameter SMA Ergodic Oscillator dapat disesuaikan untuk optimasi pada produk dan kerangka waktu yang berbeda.

  4. Sebagai keseluruhan strategi pelacakan tren, dapat mengikuti tren secara terus menerus untuk menangkap momentum yang kuat.

Risiko

  1. Integrasi dan keseimbangan antara strategi pembalikan dan tren perlu terus dioptimalkan, jika tidak, hal itu dapat melewatkan titik balik atau menyebabkan kerugian besar.

  2. Strategi pembalikan memiliki risiko perdagangan palsu yang melekat. Parameter perlu disesuaikan untuk mengurangi tingkat kegagalan.

  3. Strategi yang mengikuti tren murni tidak dapat menilai pembalikan. Ada potensi risiko kerugian. Ukuran posisi harus dikurangi tepat waktu untuk menghindari risiko.

  4. Parameter membutuhkan pengoptimalan dan pengujian iteratif untuk produk dan kerangka waktu yang berbeda.

Peningkatan

  1. Sesuaikan parameter 123 Reversal untuk mengurangi frekuensi perdagangan palsu.

  2. Sesuaikan parameter SMA Ergodic Oscillator untuk mengoptimalkan sensitivitas indikator.

  3. Tambahkan strategi stop loss untuk membatasi kerugian per perdagangan.

  4. Menggabungkan indikator lain untuk menilai potensi pembalikan dan mengurangi ukuran posisi seiring waktu.

  5. Parameter uji pada produk yang berbeda untuk meningkatkan ketahanan.

Ringkasan

Strategi ini mengintegrasikan keuntungan dari strategi pembalikan dan tren melalui mekanisme konfirmasi ganda, membentuk efek pelacakan tren yang kuat. Ini dapat secara efektif menyaring kebisingan, mengikuti tren, dan terus menangkap peluang tren berkualitas tinggi. Sementara itu, risiko penarikan tertentu ada. Parameter membutuhkan optimasi dan pengendalian risiko terus menerus menggunakan stop loss. Kuncinya adalah menyeimbangkan pembalikan dan tren, ditambah stop loss. Ini mungkin bekerja lebih baik untuk pelacakan jangka panjang. Secara keseluruhan, strategi ini memiliki nilai praktis, dan dapat digunakan sebagai bagian dari portofolio strategi, atau secara independen.


/*backtest
start: 2022-10-30 00:00:00
end: 2023-02-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 14/07/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
// The SMI Ergodic Indicator is the same as the True Strength Index (TSI) developed by 
// William Blau, except the SMI includes a signal line. The SMI uses double moving averages 
// of price minus previous price over 2 time frames. The signal line, which is an EMA of the 
// SMI, is plotted to help trigger trading signals. Adjustable guides are also given to fine 
// tune these signals. The user may change the input (close), method (EMA), period lengths 
// and guide values.
//
// 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


SMI_Erg(fastPeriod, slowPeriod,SmthLen, TopBand,LowBand) =>
    pos = 0.0
    xPrice = close
    xPrice1 = xPrice - xPrice[1]
    xPrice2 = abs(xPrice - xPrice[1])
    xSMA_R = ema(ema(xPrice1,fastPeriod),slowPeriod)
    xSMA_aR = ema(ema(xPrice2, fastPeriod),slowPeriod)
    xSMI = xSMA_R / xSMA_aR
    xEMA_SMI = ema(xSMI, SmthLen)
    pos:= iff(xEMA_SMI < LowBand, -1,
    	   iff(xEMA_SMI > TopBand, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & SMI Ergodic Oscillator", 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, "---- SMI Ergodic Oscillator ----")
fastPeriod = input(4, minval=1)
slowPeriod = input(8, minval=1)
SmthLen = input(3, minval=1)
TopBand = input(0.5, step=0.1)
LowBand = input(-0.5, step=0.1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posSMI_Erg = SMI_Erg(fastPeriod, slowPeriod,SmthLen, TopBand,LowBand )
pos = iff(posReversal123 == 1 and posSMI_Erg == 1 , 1,
	   iff(posReversal123 == -1 and posSMI_Erg == -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