Strategi Dagangan Pembalikan Gabungan Berbilang Penunjuk

Penulis:ChaoZhang, Tarikh: 2023-09-13 15:04:40
Tag:

Strategi ini dinamakan Multi-indicator Combined Reversal Trading Strategy. Ia mengintegrasikan pelbagai penunjuk teknikal untuk mengenal pasti peluang untuk pembalikan harga jangka pendek dan perdagangan terhadap trend keuntungan sebelumnya.

Pertama, strategi menggunakan corak pembalikan 123 untuk menentukan pembalikan trend jangka pendek. Corak 123 adalah apabila harga selisih dengan ketara selama tiga hari berturut-turut dan hari ketiga ditutup ke arah yang bertentangan dengan dua hari sebelumnya. Secara statistik, perdagangan dengan isyarat pembalikan 123 mempunyai kadar kemenangan yang lebih tinggi.

Kedua, penunjuk RSI dimasukkan untuk menilai kebolehpercayaan isyarat pembalikan. RSI di bawah 50 mewakili keadaan oversold, sementara di atas 50 adalah overbought. Menggunakan RSI mengelakkan menghasilkan isyarat yang tidak boleh dipercayai yang berlebihan semata-mata berdasarkan corak 123.

Ketiga, crossover multi-period CMO indicator diperkenalkan. crossover CMO yang menggabungkan purata bergerak eksponensial tempoh yang berbeza menilai pembalikan momentum. isyaratnya memberikan pengesahan lanjut mengenai masa pembalikan 123.

Penggunaan gabungan pelbagai penunjuk meningkatkan kadar kejayaan menangkap pembalikan harga dengan mengelakkan isyarat yang tidak pasti yang berlebihan. Hanya apabila RSI dan CMO kedua-duanya menyokong corak 123, isyarat perdagangan pembalikan yang kuat akan muncul.

Strategi ini sesuai dengan pasaran yang berbeza, berayun untuk menangkap turun naik harga jangka pendek. Walau bagaimanapun, menggabungkan terlalu banyak penunjuk juga boleh membawa kepada konflik. Pengoptimuman parameter diperlukan. Stop loss juga harus digunakan untuk mengehadkan kerugian maksimum setiap perdagangan.

Kesimpulannya, strategi perdagangan pembalikan gabungan pelbagai penunjuk mengintegrasikan pelbagai alat untuk meningkatkan ketepatan penilaian pembalikan pasaran. Tetapi tidak ada satu strategi yang sempurna. Pedagang perlu mengesahkan dan menyesuaikan berdasarkan keadaan pasaran semasa, mengekalkan pemikiran perdagangan yang fleksibel.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-03-11 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 25/02/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 related CMOaDisparity Index article is copyrighted material from Stocks & Commodities Dec 2009
// My strategy modification.
//
// 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

CMOD(LengthFirst, LengthSecond, LengthThird) =>
    pos = 0.0
    xEMAFirst = ema(close,LengthFirst)
    xEMASecond  = ema(close,LengthSecond)
    xEMAThird  = ema(close,LengthThird)
    xResFirst = 100 * (close - xEMAFirst) / close
    xResSecond = 100 * (close - xEMASecond) / close
    xResThird = 100 * (close - xEMAThird) / close
    pos := iff(xResThird > xResFirst, -1,
             iff(xResThird < xResSecond, 1, nz(pos[1], 0)))     
    pos

strategy(title="Combo Backtest 123 Reversal & CMOaDisparity Index", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthFirst = input(50, minval=1)
LengthSecond = input(25, minval=1)
LengthThird = input(10, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posCMOD = CMOD(LengthFirst, LengthSecond, LengthThird)
pos = iff(posReversal123 == 1 and posCMOD == 1 , 1,
	   iff(posReversal123 == -1 and posCMOD == -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