Strategi perdagangan reversal gabungan multi-indikator

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

Strategi ini disebut Multi-indicator Combined Reversal Trading Strategy. Ini mengintegrasikan berbagai indikator teknis untuk mengidentifikasi peluang untuk pembalikan harga jangka pendek dan perdagangan terhadap tren keuntungan sebelumnya.

Pertama, strategi menggunakan pola pembalikan 123 untuk menentukan pembalikan tren jangka pendek. Pola 123 adalah ketika harga selisih secara signifikan selama tiga hari berturut-turut dan hari ketiga ditutup ke arah yang berlawanan dari dua hari sebelumnya. Secara statistik, perdagangan dengan sinyal pembalikan 123 memiliki tingkat kemenangan yang lebih tinggi.

Kedua, indikator RSI dimasukkan untuk mengevaluasi keandalan sinyal pembalikan. RSI di bawah 50 mewakili kondisi oversold, sementara di atas 50 adalah overbought.

Ketiga, crossover multi-periode indikator CMO diperkenalkan. crossover CMO yang menggabungkan rata-rata bergerak eksponensial periode yang berbeda menilai pembalikan momentum. sinyalnya memberikan konfirmasi lebih lanjut tentang waktu pembalikan 123.

Aplikasi gabungan dari beberapa indikator meningkatkan tingkat keberhasilan menangkap pembalikan harga dengan menghindari sinyal yang terlalu tidak pasti.

Strategi ini cocok dengan pasar yang bervariasi dan berosilasi untuk menangkap fluktuasi harga jangka pendek. Namun, menggabungkan terlalu banyak indikator juga dapat menyebabkan konflik. Optimasi parameter diperlukan. Stop loss juga harus digunakan untuk membatasi kerugian maksimum per perdagangan.

Sebagai kesimpulan, strategi perdagangan pembalikan gabungan multi-indikator mengintegrasikan berbagai alat untuk meningkatkan keakuratan penilaian pembalikan pasar. Tetapi tidak ada strategi tunggal yang sempurna. Pedagang perlu memvalidasi dan menyesuaikan berdasarkan kondisi pasar saat ini, menjaga pola pikir 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 banyak