Strategi gabungan penunjuk pengayun kebangkitan semula


Tarikh penciptaan: 2023-11-02 16:43:41 Akhirnya diubah suai: 2023-11-02 16:43:41
Salin: 1 Bilangan klik: 727
1
fokus pada
1621
Pengikut

Strategi gabungan penunjuk pengayun kebangkitan semula

Gambaran keseluruhan

Strategi ini adalah strategi gabungan yang menggunakan strategi pembalikan dan strategi penunjuk pengayun semula untuk mendapatkan isyarat perdagangan yang lebih dipercayai.

Prinsip Strategi

Strategi ini terdiri daripada dua bahagian:

  1. Strategi berbalik

Strategi pembalikan berasal dari Ulf Jensen’s How I Doubled My Money in the Futures Market, halaman 183. Strategi ini termasuk dalam jenis pembalikan, logiknya ialah:

  • Apabila harga penutupan lebih tinggi daripada harga penutupan hari sebelumnya, dua hari berturut-turut, dan pada hari ke-9 indikator Stoch perlahan-lahan di bawah 50, masuk lebih banyak.

  • Apabila harga penutupan lebih rendah daripada harga penutupan hari sebelumnya, dua hari berturut-turut, dan pada hari ke-9 apabila Indeks Stok Cepat lebih tinggi daripada 50, masuklah ke dalam shorting.

  1. Strategi untuk memulihkan indikator getaran

Indeks resusitasi bergoyang dengan mengira nilai perbezaan yang paling kecil dalam pasaran, yang nilainya biasanya bergoyang antara -1 hingga 1. Semakin tinggi nilai indikator, semakin kuat trend, sama ada trend naik atau turun.

Apabila indikator mencapai nilai yang lebih tinggi, buat lebih banyak; apabila indikator mencapai nilai yang lebih rendah, buat kosong. Indeks ini sesuai untuk perdagangan dalam sehari.

Akhirnya, apabila kedua-dua isyarat strategi sama arah, ia berdagang dalam arah yang berkaitan.

Analisis kelebihan

  • Gabungan strategi pembalikan dan strategi trend dapat menyaring beberapa isyarat palsu dan meningkatkan kebolehpercayaan isyarat perdagangan.

  • Strategi pembalikan boleh menangkap peluang pembalikan jangka pendek; strategi penunjuk pengayun semula boleh menangkap trend garis panjang dan tengah.

  • Stoch index parameter yang lebih baik dioptimumkan, boleh berkesan menapis isyarat palsu pasaran goyah.

  • Indeks resuscitation oscillation lebih sensitif terhadap turun naik pasaran yang halus dan dapat menangkap perubahan trend lebih awal.

Risiko dan Penyelesaian

  • Strategi pembalikan mudah ditelan oleh pembalikan trend yang besar, parameter boleh disesuaikan dengan sewajarnya, atau digunakan dengan kombinasi strategi trend.

  • Strategi penunjuk mudah menghasilkan terlalu banyak isyarat perdagangan, parameter boleh disesuaikan dengan sewajarnya, atau digunakan dengan kombinasi penunjuk penapis lain.

  • Kedua-dua isyarat strategi mungkin tidak konsisten dan boleh disesuaikan dengan parameter berdasarkan data retrospeksi sejarah untuk mengoptimumkan kedua-duanya.

  • Anda boleh memperkenalkan strategi hentikan kerugian untuk mengawal kerugian tunggal.

Arah pengoptimuman

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

  • Uji parameter penunjuk getaran kebangkitan yang berbeza untuk mencari parameter optimum.

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

  • Menambah petunjuk tambahan untuk menyaring lebih jauh.

  • Menambah model pembelajaran mesin untuk meningkatkan ketepatan isyarat.

  • Memperkenalkan mekanisme pengurusan risiko, seperti penutupan kerugian, pengurusan kedudukan dan sebagainya.

ringkaskan

Strategi ini dapat meningkatkan kualiti isyarat perdagangan dan menunjukkan kesan yang lebih baik dalam pengujian semula dengan menggabungkan strategi pembalikan dan strategi penunjuk pengayun hidup, memanfaatkan keunggulan dua jenis strategi yang berbeza. Dengan pengoptimuman lanjut melalui pengoptimuman parameter, penambahan indikator lain, dan pengurusan risiko, strategi ini dijangka mencapai kesan yang lebih baik di lapangan. Secara keseluruhannya, ini adalah strategi yang sangat inovatif yang layak untuk dikaji dan digunakan.

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