Kombo Strategi 123 Peralihan dan Fractal Chaos Oscillator

Penulis:ChaoZhang, Tarikh: 2023-11-02 16:43:41
Tag:

img

Ringkasan

Ini adalah strategi gabungan yang menggabungkan strategi 123 Reversal dan strategi Fractal Chaos Oscillator untuk mendapatkan isyarat perdagangan yang lebih boleh dipercayai.

Logika Strategi

Strategi ini terdiri daripada dua bahagian:

  1. 123 Strategi Pembalikan

    Strategi ini diambil daripada buku How I Tripped My Money in The Futures Market oleh Ulf Jensen, halaman 183.

    • Pergi panjang apabila harga penutupan lebih tinggi daripada penutupan sebelumnya selama 2 hari berturut-turut, dan Stoch yang perlahan selama 9 hari berada di bawah 50.

    • Pergi pendek apabila harga penutupan lebih rendah daripada penutupan sebelumnya selama 2 hari berturut-turut, dan Stoch cepat 9 hari di atas 50.

  2. Strategi Osilator Kaos Fraktal

    FCO mengira perbezaan antara pergerakan yang paling halus di pasaran. nilainya berfluktuasi antara -1 dan 1.

    Pergi panjang apabila FCO mencapai tahap yang tinggi. Pergi pendek apabila FCO mencapai tahap yang rendah. Indikator ini sesuai untuk perdagangan intraday.

Apabila isyarat kedua-dua strategi bersetuju, perdagangan akan dibuat ke arah itu.

Analisis Kelebihan

  • Menggabungkan strategi pembalikan dan trend membantu menapis isyarat palsu dan meningkatkan kebolehpercayaan.

  • Strategi pembalikan menangkap peluang pembalikan jangka pendek, manakala strategi FCO menangkap trend jangka menengah dan panjang.

  • Parameter Stoch yang dioptimumkan berkesan menapis isyarat palsu di pasaran yang terhad.

  • FCO sensitif terhadap turun naik pasaran yang halus dan boleh mengesan perubahan trend pada peringkat awal.

Risiko dan Penyelesaian

  • Strategi pembalikan boleh dibanjiri oleh pembalikan trend yang besar. Sesuaikan parameter atau menggabungkan dengan strategi trend.

  • Strategi penunjuk boleh menghasilkan isyarat berlebihan. Sesuaikan parameter atau tambah penapis penunjuk.

  • Sinyal yang bertentangan mungkin berlaku. mengoptimumkan parameter berdasarkan hasil backtest untuk meningkatkan kerjasama.

  • Tambah stop loss untuk mengawal kerugian perdagangan tunggal.

Arahan pengoptimuman

  • Uji kombinasi parameter pembalikan yang berbeza untuk mencari yang optimum.

  • Uji parameter FCO yang berbeza untuk mencari yang terbaik.

  • Cuba kaedah pengoptimuman parameter yang berbeza seperti algoritma genetik, hutan rawak dan sebagainya.

  • Tambah lebih banyak penunjuk tambahan kepada isyarat penapis tambahan.

  • Tambah model pembelajaran mesin untuk meningkatkan ketepatan isyarat.

  • Memperkenalkan mekanisme pengurusan risiko seperti stop loss, saiz kedudukan dll.

Ringkasan

Strategi ini menggabungkan kekuatan strategi pembalikan dan FCO melalui penggunaan portfolio, dan meningkatkan kualiti isyarat. Ia menunjukkan prestasi yang baik dalam backtest. pengoptimuman lanjut seperti penyesuaian parameter, menambah penunjuk, pengurusan risiko dan lain-lain boleh meningkatkan prestasi langsung. Secara keseluruhan ini adalah strategi inovatif yang patut diteliti dan digunakan.


/*backtest
start: 2023-10-02 00:00:00
end: 2023-10-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 07/10/2020
// 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 value of Fractal Chaos Oscillator is calculated as the difference between 
// the most subtle movements of the market. In general, its value moves between 
// -1.000 and 1.000. The higher the value of the Fractal Chaos Oscillator, the 
// more one can say that it follows a certain trend – an increase in prices trend, 
// or a decrease in prices trend.
//
//   Being an indicator expressed in a numeric value, traders say that this is an 
// indicator that puts a value on the trendiness of the markets. When the FCO reaches 
// a high value, they initiate the “buy” operation, contrarily when the FCO reaches a 
// low value, they signal the “sell” action. This is an excellent indicator to use in 
// intra-day trading.
//
// 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

fractalUp(pattern) =>
    p = high[pattern+1]
    okl = 1
    okr = 1
    res = 0.0
	for i = pattern to 1
		okl := iff(high[i] < high[i+1] and okl == 1 , 1, 0)
	for i = pattern+2 to pattern*2+1
		okr := iff(high[i] < high[i-1] and okr == 1, 1, 0)
	res := iff(okl == 1 and okr == 1, p, res[1])
    res

fractalDn(pattern) =>
    p = low[pattern+1]
    okl = 1
    okr = 1
    res = 0.0
	for i = pattern to 1
		okl := iff(low[i] > low[i+1] and okl == 1 , 1, 0)
	for i = pattern+2 to pattern*2+1
		okr := iff(low[i] > low[i-1] and okr == 1, 1, 0)
	res := iff(okl == 1 and okr == 1, p, res[1])
    res

FCO(Pattern) =>
    pos = 0.0
    xUpper = fractalUp(Pattern) 
    xLower = fractalDn(Pattern)
    xRes = iff(xUpper != xUpper[1], 1, 
             iff(xLower != xLower[1], -1, 0))
    pos := iff(xRes == 1, 1,
             iff(xRes == -1, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Fractal Chaos Oscillator", shorttitle="Combo", overlay = true)
Length = input(15, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Pattern = input(1, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posFCO = FCO(Pattern)
pos = iff(posReversal123 == 1 and posFCO == 1 , 1,
	   iff(posReversal123 == -1 and posFCO == -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