Strategi gabungan tangkapan arah aliran dwi trek


Tarikh penciptaan: 2023-11-06 11:49:41 Akhirnya diubah suai: 2023-11-06 11:49:41
Salin: 0 Bilangan klik: 644
1
fokus pada
1617
Pengikut

Strategi gabungan tangkapan arah aliran dwi trek

Gambaran keseluruhan

Strategi ini menggabungkan substrategi 123 reversal dan SMA Elastic Oscillator untuk membentuk strategi trend-tracking yang memfilterkan isyarat dua orbit. Strategi 123 reversal menilai titik perubahan yang berpotensi melalui bentuk K-line; SMA Elastic Oscillator menggunakan purata bergerak untuk menentukan arah trend. Kedua-duanya saling mengesahkan, membentuk mekanisme pengesahan ganda, yang dapat menyaring isyarat yang salah, menangkap arah trend yang lebih kuat, dan mencapai perdagangan trend-tracking.

Prinsip Strategi

  1. 123 Strategi berbalik

Strategi ini berasal dari Ulf Jensen’s How to get three times the return in the futures market P183 dalam buku beliau. Strategi ini adalah strategi jenis pembalikan. Apabila harga penutupan 2 hari berturut-turut lebih tinggi daripada harga penutupan hari sebelumnya, dan pada hari ke-9 indikator rawak mempunyai garis lambat di bawah 50, buat lebih banyak; apabila harga penutupan 2 hari berturut-turut lebih rendah daripada harga penutupan hari sebelumnya, dan pada hari ke-9 indikator rawak mempunyai garis cepat di atas 50, buat kosong.

  1. Osilator elastis SMA

Penunjuk ini serupa dengan penunjuk TSI yang dibangunkan oleh William Blau, tetapi berbeza dengan pengayun SMA yang mengandungi garis isyarat. Penunjuk elastis SMA menggunakan harga tolak purata bergerak ganda harga hari sebelumnya, kemudian melukis purata bergerak indeks SMA sebagai garis isyarat untuk menghantar isyarat perdagangan.

Pengesahan dua kali: Hanya membuka kedudukan apabila 123 berbalik dan SMA memberi isyarat yang sama. Apabila kedua-dua isyarat tidak selaras, simpan kedudukan kosong.

Kelebihan Strategik

  1. Menggabungkan pelbagai petunjuk, membentuk mekanisme pengesahan dua, dapat menyaring isyarat silap dengan berkesan.

  2. 123 Strategi pembalikan menggunakan bentuk garis K untuk menentukan titik pembalikan yang berpotensi. Penangguhan gelung elastis SMA memberi isyarat melalui penilaian trend, yang saling mengesahkan dan melengkapi kekurangan satu petunjuk.

  3. Parameter pengayun fleksibel SMA boleh disesuaikan, boleh dioptimumkan untuk pelbagai jenis dan kitaran, dan sangat fleksibel.

  4. Secara keseluruhannya, sebagai strategi untuk mengesan trend, ia boleh digunakan secara beransur-ansur untuk menangkap arah yang lebih kuat.

Risiko Strategik

  1. Integrasi dan keseimbangan antara strategi pembalikan dan strategi trend perlu terus dioptimumkan, jika tidak, anda mungkin akan terlepas titik perubahan atau mengalami kerugian besar.

  2. Strategi pembalikan itu sendiri mempunyai risiko perdagangan yang salah dan perlu menyesuaikan parameter untuk mengurangkan kadar kegagalan.

  3. Strategi pemantauan semata-mata tidak dapat menentukan titik pembalikan trend, terdapat risiko kerugian yang berpotensi. Perlu mengurangkan kedudukan dengan tepat untuk mengelakkan risiko.

  4. Berbagai varieti dan parameter kitaran memerlukan ujian pengoptimuman berulang, tidak sesuai untuk memakai sarung keras.

Pengoptimuman Strategi

  1. Menyesuaikan parameter 123 yang berbalik untuk mengurangkan kadar kesalahan transaksi.

  2. Menyesuaikan parameter pengayun fleksibel SMA untuk mengoptimumkan kepekaan indikator.

  3. Menambah strategi hentikan kerugian untuk mengurangkan kerugian sekali gus.

  4. Ia juga boleh digunakan untuk menilai potensi pembalikan dan mengurangkan kedudukan apabila diperlukan.

  5. Uji optimasi parameter pelbagai jenis untuk meningkatkan kestabilan.

ringkaskan

Strategi ini menggunakan mekanisme pengesahan ganda, mengintegrasikan kelebihan strategi pembalikan dan trend, untuk membentuk kesan pengesanan trend yang lebih kuat. Ia dapat menghapuskan kebisingan dengan berkesan, dan dengan itu, peluang untuk menangkap trend yang berkualiti.

Kod sumber strategi
/*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 )