Combo Backtest 123 Reversal & Indeks Volatiliti Relatif

Penulis:ChaoZhang, Tarikh: 2023-09-11 09:01:03
Tag:perdagangananalisis teknikalpembalikanVolatilitiRVIstokastikkuatisyaratgabungansinergiPengurusan risikopengurusan wangdisiplin

Menggabungkan strategi pembalikan dan turun naik untuk isyarat yang kukuh

Strategi gabungan ini menggabungkan sistem pembalikan 123 dengan indeks turun naik relatif (RVI) untuk menjana isyarat perdagangan yang kukuh.

Cara Ia Bekerja

Strategi pembalikan 123 mengenal pasti potensi bawah dan atas. Ia pergi lama jika penutupan lebih tinggi daripada dua hari sebelumnya dan stokastik terlalu dijual. Ia pergi pendek jika penutupan lebih rendah daripada dua hari sebelumnya dan stokastik terlalu dibeli.

RVI mengukur arah turun naik. Ia mengesan sama ada turun naik berkembang atau menyusut. Strategi ini panjang di bawah 30 RVI dan pendek di atas 70 RVI.

Dengan menggabungkan kedua-duanya, strategi ini bertujuan untuk mengasingkan entri kebolehpercayaan tinggi apabila pembalikan sejajar dengan volatiliti yang melampau. Isyarat ditapis lebih lanjut dengan memerlukan penjajaran.

Kelebihan dan Kelemahan

Menggabungkan strategi pembalikan dan turun naik memberikan isyarat yang lebih kukuh. RVI menambah keyakinan dengan mengesahkan keletihan. Menggunakan dua sistem mengurangkan whipsaws dan isyarat palsu yang melekat pada strategi tunggal.

Walau bagaimanapun, mana-mana sistem boleh melengkung. Mengoptimumkan banyak input berisiko terlalu sesuai dengan strategi. Disiplin yang ketat diperlukan untuk mengelakkan overtrading. Tiada strategi yang menggantikan pengurusan risiko dan wang yang bijak.

Secara keseluruhan, menggabungkan strategi yang berbeza dapat meningkatkan prestasi jika dilakukan dengan bijak.Memastikan saiz kedudukan yang betul, had risiko dan toleransi penarikan adalah kunci kejayaan jangka panjang.Pengkajian dan fleksibiliti berterusan membantu mengatasi batasan yang melekat.


/*backtest
start: 2023-08-11 00:00:00
end: 2023-09-10 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 08/06/2021
// 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 RVI is a modified form of the relative strength index (RSI). 
// The original RSI calculation separates one-day net changes into 
// positive closes and negative closes, then smoothes the data and 
// normalizes the ratio on a scale of zero to 100 as the basis for the 
// formula. The RVI uses the same basic formula but substitutes the 
// 10-day standard deviation of the closing prices for either the up 
// close or the down close. The goal is to create an indicator that 
// measures the general direction of volatility. The volatility is 
// being measured by the 10-days standard deviation of the closing prices. 
//
// 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


RVI(Period,BuyZone, SellZone) =>
    pos = 0.0
    nU = 0.0
    nD =0.0
    xPrice = close
    StdDev = stdev(xPrice, Period)
    d = iff(close > close[1], 0, StdDev)
    u = iff(close > close[1], StdDev, 0)
    nU:= (13 * nz(nU[1],0) + u) / 14
    nD:= (13 * nz(nD[1],0) + d) / 14
    nRes = 100 * nU / (nU + nD)
    pos:= iff(nRes < BuyZone, -1,
    	   iff(nRes > SellZone, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Relative Volatility Index", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Relative Volatility Index ----")
Period = input(10, minval=1)
BuyZone = input(30, minval=1)
SellZone = input(70, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRVI = RVI(Period,BuyZone, SellZone)
pos = iff(posReversal123 == 1 and posRVI == 1 , 1,
	   iff(posReversal123 == -1 and posRVI == -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 )

Berkaitan

Lebih lanjut