Combo Backtest 123 Inversion et indice de volatilité relative

Auteur:ChaoZhang est là., Date: 2023-09-11 09:01:03 Je suis désolé
Les étiquettes:le commerceanalyse techniquerenversementsvolatilitéRVIstatistiques stochastiquesrésistantles signauxcombinaisonsynergiesgestion des risquesgestion de l'argentla discipline

Combinaison de stratégies d'inversion et de volatilité pour des signaux solides

Cette stratégie combinée combine synergiquement un système d'inversion 123 avec un indice de volatilité relative (RVI) pour générer des signaux de trading robustes.

Comment fonctionne- t- il?

La stratégie d'inversion 123 identifie les bas et les sommets potentiels. Elle est longue si la clôture est supérieure aux deux jours précédents et que les stochastiques sont survendus. Elle est courte si la clôture est inférieure aux deux jours précédents et que les stochastiques sont surachetés.

Le RVI mesure la direction de la volatilité. Il suit si la volatilité est en expansion ou en contraction. La stratégie est longue sous 30 RVI et courte au-dessus de 70 RVI.

En combinant les deux, la stratégie vise à isoler les entrées de haute fiabilité lorsque les renversements s'alignent sur les extrêmes de volatilité.

Les avantages et les inconvénients

L'utilisation de deux systèmes réduit les faux signaux inhérents à des stratégies uniques.

Cependant, n'importe quel système peut être adapté à la courbe. L'optimisation de nombreux intrants risque de surpasser la stratégie. Une discipline stricte est requise pour éviter le sur-trading. Aucune stratégie ne remplace la gestion prudente des risques et de l'argent.

Dans l'ensemble, la combinaison de différentes stratégies peut améliorer les performances si elle est appliquée judicieusement.La garantie d'une dimension appropriée des positions, des limites de risque et d'une tolérance au retrait est essentielle au succès à long terme.L'examen continu et la flexibilité aident à surmonter les limitations inhérentes.


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

Relationnée

Plus de