Ramalan pembalikan dan strategi gabungan pengayun


Tarikh penciptaan: 2023-10-10 10:39:44 Akhirnya diubah suai: 2023-10-10 10:39:44
Salin: 1 Bilangan klik: 651
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Strategi ini adalah gabungan strategi pembalikan dan strategi pengayun untuk mendapatkan isyarat perdagangan yang lebih dipercayai. Ia menggabungkan strategi prediksi pembalikan dan strategi pengayun ramalan Chande untuk melaksanakan perdagangan apabila kedua-dua strategi menghantar isyarat beli atau jual pada masa yang sama.

Prinsip Strategi

  1. Strategi penarikan balik

    • Menggunakan penunjuk osilator Stochastic untuk menilai fenomena overbought dan oversold

    • Operasi berbalik dilakukan apabila dua bar berturut-turut penutupan harga berbalik dan pada masa yang sama tanda Stochastic Oscillator menunjukkan isyarat overbought atau oversold

  2. Chande meramalkan strategi pengayun

    • Harga ramalan menggunakan analisis regresi linear

    • kurva pengayun sama dengan perbezaan antara harga penutupan dan harga ramalan

    • Isyarat perdagangan dihasilkan apabila terdapat perbezaan yang ketara antara harga sebenar dan harga ramalan

  3. Logik Strategi

    • Simultan mengira isyarat strategi prediksi terbalik dan strategi pendorong ramalan Chande

    • Isyarat perdagangan sebenar dihasilkan hanya apabila kedua-dua strategi selaras, iaitu sama ada untuk membeli atau menjual

    • Meningkatkan kebolehpercayaan isyarat dengan mengkombinasikan untuk menghapuskan isyarat palsu yang mungkin muncul dalam satu strategi

Analisis kelebihan strategi

  1. Menggabungkan pelbagai strategi, menilai pasaran secara menyeluruh, lebih dipercayai

  2. Menyingkirkan isyarat palsu yang mungkin muncul dalam satu petunjuk teknikal

  3. Strategi penarikan balik boleh menangkap peluang penarikan balik jangka pendek

  4. Chande meramalkan pengayunannya tepat untuk trend jangka panjang

  5. Stochastic oscillator parameter penunjuk boleh laras, beradaptasi

  6. Menggabungkan pelbagai kaedah analisis untuk memanfaatkan peluang perdagangan dalam pelbagai dimensi

Analisis risiko

  1. Strategi gabungan meningkatkan kebolehpercayaan, tetapi menghasilkan frekuensi isyarat yang lebih rendah

  2. Perlu mengoptimumkan parameter strategi secara serentak, lebih rumit

  3. Tidak pasti masa berlakunya perubahan, risiko kerugian

  4. Ramalan kemerosotan linear tidak sesuai untuk pasaran dengan harga yang bergelombang

  5. Perhatian perlu diberikan kepada harga saham yang berada di luar pengayun Stochastic

  6. Data pengesanan tidak mencukupi, keberkesanan cakera tetap dipersoalkan

Arah pengoptimuman strategi

  1. Mengoptimumkan parameter stochastic oscillator, memendekkan kitaran K dan D

  2. Sesuaikan kitaran regresi linear untuk menguji lebih banyak parameter kitaran

  3. Meningkatkan strategi penangguhan kerugian dan mengurangkan kerugian tunggal

  4. Ubah logik bukaan kedudukan untuk menunggu penunjuk osilator Stochastic sepenuhnya memasuki zon overbought dan oversold

  5. Menambah analisis ciri statistik untuk varieti yang diperdagangkan

  6. Menggabungkan lebih banyak penunjuk seperti MACD dan lain-lain untuk memberi lebih banyak penghakiman dimensi

ringkaskan

Strategi ini menggunakan pelbagai kaedah analisis yang komprehensif, meningkatkan kualiti isyarat melalui kombinasi, sambil mengimbangi kedua-dua aspek penemuan pembalikan jangka pendek dan menilai trend besar, untuk menangkap peluang perdagangan yang lebih menyeluruh. Tetapi perlu memperhatikan kesan cakera keras dan menyesuaikan parameter dengan sewajarnya.

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 08/08/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
// The Chande Forecast Oscillator developed by Tushar Chande The Forecast 
// Oscillator plots the percentage difference between the closing price and 
// the n-period linear regression forecasted price. The oscillator is above 
// zero when the forecast price is greater than the closing price and less 
// than zero if it is below.
//
// 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

ChandeForecastOscillator(Length, Offset) =>
    pos = 0
    xLG = linreg(close, Length, Offset)
    xCFO = ((close -xLG) * 100) / close
    pos := iff(xCFO > 0, 1,
           iff(xCFO < 0, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Chande Forecast Oscillator", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthCFO = input(14, minval=1)
Offset = input(0)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posChandeForecastOscillator = ChandeForecastOscillator(LengthCFO, Offset)
pos = iff(posReversal123 == 1 and posChandeForecastOscillator == 1 , 1,
	   iff(posReversal123 == -1 and posChandeForecastOscillator == -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 )