Kombo Strategi 123 Reversal dan Fractal Chaos Oscillator

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

img

Gambaran umum

Ini adalah strategi combo yang menggabungkan strategi 123 Reversal dan strategi Fractal Chaos Oscillator untuk mendapatkan sinyal perdagangan yang lebih andal.

Logika Strategi

Strategi ini terdiri dari dua bagian:

  1. 123 Strategi Pembalikan

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

    • Pergi panjang ketika harga penutupan lebih tinggi dari penutupan sebelumnya selama 2 hari berturut-turut, dan Stoch lambat 9 hari berada di bawah 50.

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

  2. Strategi Fraktal Chaos Oscillator

    FCO menghitung perbedaan antara pergerakan yang paling halus di pasar. nilainya berfluktuasi antara -1 dan 1. semakin tinggi nilainya, semakin kuat tren, tidak peduli tren naik atau turun.

    Pergi panjang ketika FCO mencapai level tinggi. Pergi pendek ketika FCO mencapai level rendah. Indikator ini cocok untuk perdagangan intraday.

Ketika sinyal dari kedua strategi setuju, perdagangan akan dibuat ke arah itu.

Analisis Keuntungan

  • Menggabungkan strategi pembalikan dan tren membantu menyaring sinyal palsu dan meningkatkan keandalan.

  • Strategi pembalikan menangkap peluang pembalikan jangka pendek, sedangkan strategi FCO menangkap tren jangka menengah dan panjang.

  • Parameter Stoch yang dioptimalkan secara efektif menyaring sinyal palsu di pasar yang terikat rentang.

  • FCO sensitif terhadap fluktuasi pasar yang halus dan dapat mendeteksi perubahan tren sejak dini.

Risiko dan Solusi

  • Strategi pembalikan dapat kewalahan oleh pembalikan tren besar. sesuaikan parameter atau menggabungkan dengan strategi tren.

  • Strategi indikator dapat menghasilkan sinyal yang berlebihan. sesuaikan parameter atau tambahkan indikator penyaringan.

  • Sinyal yang bertentangan mungkin terjadi. Optimalkan parameter berdasarkan hasil backtest untuk meningkatkan kerja sama.

  • Tambahkan stop loss untuk mengendalikan kerugian perdagangan tunggal.

Arahan Optimasi

  • Uji kombinasi parameter pembalikan yang berbeda untuk menemukan yang optimal.

  • Uji parameter FCO yang berbeda untuk menemukan yang terbaik.

  • Cobalah metode optimasi parameter yang berbeda seperti algoritma genetik, hutan acak dll.

  • Tambahkan lebih banyak indikator tambahan untuk sinyal filter lebih lanjut.

  • Tambahkan model pembelajaran mesin untuk meningkatkan akurasi sinyal.

  • Memperkenalkan mekanisme manajemen risiko seperti stop loss, ukuran posisi dll.

Ringkasan

Strategi ini menggabungkan kekuatan strategi pembalikan dan FCO melalui penggunaan portofolio, dan meningkatkan kualitas sinyal. Ini menunjukkan kinerja yang baik dalam backtest. Optimasi lebih lanjut seperti penyesuaian parameter, menambahkan indikator, manajemen risiko dll dapat meningkatkan kinerja langsung. Secara keseluruhan ini adalah strategi inovatif yang layak untuk diteliti dan diterapkan.


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