Kombo Backtest 123 Umkehrung und Relativer Volatilitätsindex

Schriftsteller:ChaoZhang, Datum: 2023-09-11 09:01:03
Tags:Handeltechnische AnalyseUmkehrungenVolatilitätRVIStochastikrobustSignaleKombinationSynergienRisikomanagementGeldmanagementZüchtung

Kombination von Umkehr- und Volatilitätsstrategien für robuste Signale

Diese Kombinationsstrategie kombiniert synergistisch ein 123 Umkehrsystem mit einem Relativen Volatilitätsindex (RVI), um robuste Handelssignale zu generieren.

Wie es funktioniert

Die 123 Umkehrstrategie identifiziert potenzielle Tiefen und Spitzen. Es geht lang, wenn der Schluss höher ist als die vorherigen zwei Tage und die Stochastik überverkauft ist. Es geht kurz, wenn der Schluss niedriger ist als die vorherigen zwei Tage und die Stochastik überkauft ist.

Der RVI misst die Volatilitätsrichtung. Er verfolgt, ob die Volatilität wächst oder schrumpft. Die Strategie geht lang unter 30 RVI und kurz über 70 RVI.

Durch die Kombination der beiden versucht die Strategie, hochverlässliche Einträge zu isolieren, wenn Umkehrungen mit Volatilitätsextremen übereinstimmen.

Vorteile und Nachteile

Die Kombination von Umkehr- und Volatilitätsstrategien liefert robustere Signale. Der RVI erhöht das Vertrauen durch die Bestätigung der Erschöpfung.

Jedes System kann jedoch kurvenfähig sein. Die Optimierung vieler Inputs birgt Risiken, die der Strategie überflüssig sind. Eine strenge Disziplin ist erforderlich, um Überhandelungen zu vermeiden. Keine Strategie ersetzt umsichtige Risikomanagement und Geldmanagement.

Insgesamt kann die Kombination verschiedener Strategien die Performance steigern, wenn sie vernünftig angewandt wird.Eine angemessene Positionsgröße, Risikogrenzen und Abzugstoleranz sind der Schlüssel zum langfristigen Erfolg.Eine kontinuierliche Überprüfung und Flexibilität helfen, inhärente Einschränkungen zu überwinden.


/*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 )

Verwandt

Mehr