Strategi Pengambilan Trend Fusi Dua Jalur

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

img

Ringkasan

Strategi ini menggabungkan sub-strategi 123 Reversal dan SMA Ergodic Oscillator untuk membentuk strategi pengesanan trend dengan penapisan isyarat dual-track. Strategi 123 Reversal menilai titik perubahan yang berpotensi melalui corak lilin; SMA Ergodic Oscillator menentukan arah trend menggunakan purata bergerak. Mereka saling mengesahkan untuk membentuk mekanisme pengesahan ganda, yang dapat menapis isyarat palsu dengan berkesan dan menangkap arah trend yang agak kuat untuk perdagangan pengesanan trend.

Logika Strategi

  1. 123 Strategi Pembalikan

Strategi ini adalah dari sistem pada p183 buku Ulf Jensen How I Tripped My Money in the Futures Market. Ia tergolong dalam jenis pembalikan. Apabila harga penutupan lebih tinggi daripada penutupan sebelumnya selama 2 hari berturut-turut, dan garis perlahan stokastik 9 hari berada di bawah 50, pergi panjang; apabila harga penutupan lebih rendah daripada penutupan sebelumnya selama 2 hari berturut-turut, dan garis cepat stokastik 9 hari berada di atas 50, pergi pendek.

  1. SMA Ergodic Oscillator

Indikator ini serupa dengan TSI yang dibangunkan oleh William Blau, kecuali bahawa osilator SMA mengandungi garis isyarat. Indikator SMA Ergodic menggunakan purata bergerak ganda harga dikurangkan harga sebelumnya, dan memetakan EMA SMI sebagai garis isyarat untuk mencetuskan isyarat perdagangan. Parameternya boleh diselaraskan untuk pengoptimuman.

Pengesahan berganda: buka kedudukan hanya apabila 123 Reversal dan SMA Ergodic memberi isyarat ke arah yang sama.

Kelebihan

  1. Integrasi pelbagai penunjuk membentuk mekanisme pengesahan berganda, yang dapat menapis isyarat palsu dengan berkesan.

  2. Strategi pembalikan menilai titik pembalikan yang berpotensi melalui corak lilin. SMA Ergodic Oscillator mengeluarkan isyarat berdasarkan penilaian trend. Mereka saling melengkapi untuk mengatasi batasan penunjuk tunggal.

  3. Parameter SMA Ergodic Oscillator boleh diselaraskan untuk pengoptimuman pada produk dan jangka masa yang berbeza.

  4. Sebagai keseluruhan strategi pengesanan trend, ia boleh mengikuti trend secara berterusan untuk menangkap momentum yang kuat.

Risiko

  1. Integrasi dan keseimbangan antara strategi pembalikan dan trend memerlukan pengoptimuman berterusan, jika tidak, ia mungkin terlepas titik perubahan atau menyebabkan kerugian besar.

  2. Strategi pembalikan mempunyai risiko perdagangan palsu yang melekat. Parameter perlu diselaraskan untuk mengurangkan kadar kegagalan.

  3. Strategi trend murni tidak dapat menilai pembalikan. Terdapat risiko kerugian yang berpotensi. Saiz kedudukan harus dikurangkan pada waktunya untuk mengelakkan risiko.

  4. Parameter memerlukan pengoptimuman dan ujian berulang untuk produk dan jangka masa yang berbeza.

Peningkatan

  1. Sesuaikan parameter 123 Reversal untuk mengurangkan kekerapan perdagangan palsu.

  2. Sesuaikan parameter SMA Ergodic Oscillator untuk mengoptimumkan kepekaan penunjuk.

  3. Tambah strategi stop loss kepada had kerugian setiap perdagangan.

  4. Menggabungkan penunjuk lain untuk menilai potensi pembalikan dan mengurangkan saiz kedudukan dalam masa.

  5. Parameter ujian pada produk yang berbeza untuk meningkatkan ketahanan.

Ringkasan

Strategi ini mengintegrasikan kelebihan strategi pembalikan dan trend melalui mekanisme pengesahan berganda, membentuk kesan pengesanan trend yang kuat. Ia dapat menapis bunyi bising dengan berkesan, mengikuti trend, dan terus menangkap peluang trend berkualiti tinggi. Sementara itu, risiko penarikan tertentu wujud. Parameter memerlukan pengoptimuman dan kawalan risiko yang berterusan menggunakan stop loss. Kuncinya adalah mengimbangi pembalikan dan trend, ditambah stop loss. Ia mungkin berfungsi dengan lebih baik untuk pengesanan jangka panjang. Secara keseluruhan, strategi ini mempunyai nilai praktikal, dan boleh digunakan sebagai sebahagian daripada portfolio strategi, atau secara bebas.


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