Combo Backtest 123 Reversión y índice de volatilidad relativa

El autor:¿ Qué pasa?, fecha: 2023-09-11 09:01:03
Las etiquetas:el comercioanálisis técnicolas inversionesvolatilidadRVIEstocásticosrobustolas señalesCombinaciónlas sinergiasgestión de riesgosgestión de dinerodisciplina

Combinando estrategias de inversión y volatilidad para señales sólidas

Esta estrategia combinada combina sinérgicamente un sistema de reversión 123 con un índice de volatilidad relativa (RVI) para generar señales comerciales sólidas.

Cómo funciona

La estrategia de reversión 123 identifica los mínimos y máximos potenciales. Va largo si el cierre es más alto que los dos días anteriores y los estocásticos están sobrevendidos. Va corto si el cierre es más bajo que los dos días anteriores y los estocásticos están sobrecomprados.

El RVI mide la dirección de la volatilidad. Rastrea si la volatilidad se está expandiendo o contrayendo. La estrategia es larga por debajo de 30 RVI y corta por encima de 70 RVI.

Al combinar los dos, la estrategia busca aislar las entradas de alta confianza cuando las reversiones se alinean con los extremos de volatilidad.

Ventajas y desventajas

La combinación de estrategias de reversión y volatilidad proporciona señales más robustas. El RVI agrega confianza al confirmar el agotamiento.

Sin embargo, cualquier sistema puede estar ajustado a la curva. La optimización de muchos insumos corre el riesgo de sobreajustar la estrategia. Se requiere una disciplina estricta para evitar el sobrecomercio. Ninguna estrategia reemplaza la gestión prudente del riesgo y el dinero.

En general, la combinación de diferentes estrategias puede aumentar el rendimiento si se realiza de manera juiciosa.La garantía de un tamaño adecuado de las posiciones, los límites de riesgo y la tolerancia a la retirada son claves para el éxito a largo plazo.La revisión continua y la flexibilidad ayudan a superar las limitaciones inherentes.


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

Relacionados

Más.