Peralihan Trend Salib Digabungkan Dengan Tiga Strategi Dual Osilator Sepuluh

Penulis:ChaoZhang
Tag:

img

Ringkasan

Strategi ini terutamanya menggabungkan isyarat dari dua jenis strategi yang berbeza untuk menumpuk isyarat strategi dan meningkatkan kualiti isyarat.

Strategi 1: Strategi Pembalikan Trend silang

Strategi 2: Strategi Osilator Tiga Sepuluh

Prinsip Strategi

  • Mula-mula mengira isyarat dagangan postReversal123 strategi pembalikan trend silang;
  • Kemudian mengira isyarat dagangan posD_Tiga daripada tiga strategi ten oscillator;
  • Menentukan arah perdagangan dan harga khusus berdasarkan pos isyarat gabungan;
  • Lukis K-garis dalam warna yang berbeza.

Analisis Kelebihan

Isyarat komposit dari pelbagai strategi menumpuk mempunyai kelebihan berikut:

  1. Menapis isyarat palsu dan meningkatkan kualiti isyarat

    Oleh kerana dua strategi diperlukan untuk memberikan isyarat ke arah yang sama pada masa yang sama, kesan isyarat palsu dalam satu strategi dapat dielakkan, dengan itu meningkatkan kebolehpercayaan isyarat.

  2. Kemudahan yang tinggi

    Mengikut keperluan sebenar, gabungan strategi yang mengambil bahagian boleh disesuaikan untuk mewujudkan strategi gabungan yang lebih pelbagai dengan menggabungkan pelbagai jenis strategi.

Analisis Risiko

  1. Tetapan parameter yang tidak betul boleh menyebabkan beberapa strategi gagal berfungsi dengan betul, mengakibatkan kegagalan untuk mencapai kesan yang diharapkan daripada kombinasi strategi.

Tindakan balas:

  1. Meningkatkan bilangan strategi untuk undi majoriti

  2. Tetapkan titik stop loss untuk mengawal kerugian dari isyarat individu

  3. Mengoptimumkan parameter untuk memastikan operasi strategi yang normal

Arahan pengoptimuman

Strategi ini juga boleh dioptimumkan ke arah berikut:

  1. Teruskan menambah lebih banyak jenis strategi yang berbeza untuk membentuk strategi gabungan, untuk meningkatkan lagi kualiti isyarat.

  2. Mengoptimumkan butiran parameter

Ringkasan

Strategi ini termasuk dalam strategi komposit berlapis multi-strategi. Ia mengintegrasikan dua sub-strategi, strategi pembalikan trend silang dan strategi osilasi tiga-sepuluh. Ia menghasilkan pesanan dagangan hanya apabila isyarat dagangan mereka berada dalam arah yang sama, yang dapat menapis isyarat palsu dalam satu strategi dan meningkatkan kualiti isyarat. Berbanding dengan satu strategi, kombinasi strategi jenis ini mempunyai kelebihan seperti kebolehpercayaan isyarat yang lebih tinggi dan toleransi ralat yang lebih kuat. Tetapi risiko yang dibawa oleh andaian konsistensi juga perlu diperhatikan, dan langkah yang sesuai harus diambil untuk mengawalnya. Secara umum, rangka kerja kombinasi multi-strategi ini mempunyai potensi yang besar untuk pengembangan, dan boleh diperdalam dengan menambahkan lebih banyak sub-strategi, mengoptimumkan parameter dan menetapkan keadaan penapisan.


/*backtest
start: 2024-01-11 00:00:00
end: 2024-01-18 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 04/12/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
// TradeStation does not allow the user to make a Multi Data Chart with 
// a Tick Bar Chart and any other type a chart. This indicator allows the 
// user to plot a daily 3-10 Oscillator on a Tick Bar Chart or any intraday interval.
// Walter Bressert's 3-10 Oscillator is a detrending oscillator derived 
// from subtracting a 10 day moving average from a 3 day moving average. 
// The second plot is an 16 day simple moving average of the 3-10 Oscillator. 
// The 16 period moving average is the slow line and the 3/10 oscillator is 
// the fast line.
// For more information on the 3-10 Oscillator see Walter Bressert's book 
// "The Power of Oscillator/Cycle Combinations" 
//
// 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_Three(Length1, Length2, Length3) =>
    pos = 0.0
    xPrice =  security(syminfo.tickerid,"D", hl2)
    xfastMA = ema(xPrice, Length1)
    xslowMA = ema(xPrice, Length2)
    xMACD = xfastMA - xslowMA
    xSignal = sma(xMACD, Length3)
    pos := iff(xSignal > xMACD, -1,
    	     iff(xSignal < xMACD, 1, nz(pos[1], 0)))     
    pos

strategy(title="Combo Backtest 123 Reversal & D_Three Ten Osc", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Length1 = input(3, minval=1)
Length2 = input(10, minval=1)
Length3 = input(16, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posD_Three = D_Three(Length1, Length2, Length3)
pos = iff(posReversal123 == 1 and posD_Three == 1 , 1,
	   iff(posReversal123 == -1 and posD_Three == -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