Estrategia de volatilidad adaptativa para elementos de volumen finito

El autor:¿ Qué pasa?, Fecha: 2023-10-17 14:50:13
Las etiquetas:

img

Resumen general

Esta estrategia utiliza el método del elemento de volumen finito combinado con métricas de volatilidad adaptativas para determinar señales largas y cortas, pertenecientes a las estrategias de tendencia siguiente.

Principios

La estrategia primero calcula el promedio de los precios altos y bajos, el promedio de los precios de cierre de N barras recientes y el promedio de los precios altos, bajos y cerrados de la barra anterior. Luego calcula los rendimientos logarítmicos Intra e Inter para la barra actual e anterior. Mientras tanto, calcula las volatilidades Vintra e Inver de Intra e Inter.

Basado en los niveles de volatilidad y los parámetros ajustables, se determina el coeficiente de corte adaptativo CutOff. Cuando el cambio de precio excede el CutOff, se generan señales largas o cortas. Específicamente, calcula la diferencia MF entre el precio de cierre actual y el promedio de precios altos y bajos. Cuando MF es mayor que CutOff, es una señal larga. Cuando MF es menor que CutOff negativo, es una señal corta.

Finalmente, según las señales, se calculan los flujos de fondos, se emite la señal de posición pos y se traza la curva FVE del elemento de volumen finito.

Ventajas

  1. Parámetros adaptativos, aplicables a diferentes plazos y niveles de volatilidad sin ajuste manual.

  2. Captura con precisión los cambios de tendencia de los precios.

  3. La curva FVE refleja claramente la comparación de fuerzas largas y cortas.

  4. Una base teórica sólida para el análisis de flujos de fondos, señales relativamente fiables.

Los riesgos

  1. Puede generar más señales falsas durante las violentas fluctuaciones del mercado.

  2. No puede manejar las diferencias de precios.

  3. Las señales de flujo de fondos pueden divergir del análisis técnico a veces.

Optimización

  1. Puede probar el impacto de diferentes valores de N. Por lo general, un N mayor puede filtrar el ruido.

  2. Puede probar diferentes combinaciones de Cintra y Cinter para encontrar parámetros óptimos.

  3. Puede combinarse con otros indicadores como el MACD para mejorar la robustez.

  4. Puede incorporar mecanismos de stop loss para controlar la pérdida de una sola operación.

Conclusión

En general, esta estrategia es bastante confiable con principios sólidos. Puede servir como un componente de las estrategias de seguimiento de tendencias, y funcionar aún mejor cuando se combina correctamente con otras. La clave es encontrar parámetros óptimos y establecer una gestión de riesgos sólida. Si se optimiza aún más, puede convertirse en un sistema de seguimiento de tendencias muy poderoso.


/*backtest
start: 2022-10-10 00:00:00
end: 2023-10-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 18/08/2017
// This is another version of FVE indicator that we have posted earlier 
// in this forum.
// This version has an important enhancement to the previous one that`s 
// especially useful with intraday minute charts.
// Due to the volatility had not been taken into account to avoid the extra 
// complication in the formula, the previous formula has some drawbacks:
// The main drawback is that the constant cutoff coefficient will overestimate 
// price changes in minute charts and underestimate corresponding changes in 
// weekly or monthly charts.
// And now the indicator uses adaptive cutoff coefficient which will adjust to 
// all time frames automatically.
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Volatility Finite Volume Elements", shorttitle="FVI")
Samples = input(22, minval=1)
Perma = input(40, minval=1)
Cintra = input(0.1, step=0.1)
Cinter = input(0.1, step=0.1)
reverse = input(false, title="Trade reverse")
xhl2 = hl2
xhlc3 = hlc3
xClose = close
xIntra = log(high) - log(low)
xInter = log(xhlc3) - log(xhlc3[1])
xStDevIntra = stdev(sma(xIntra, Samples) , Samples)
xStDevInter = stdev(sma(xInter, Samples) , Samples)
xVolume = volume
TP = xhlc3
TP1 = xhlc3[1]
Intra = xIntra
Vintra = xStDevIntra
Inter = xInter
Vinter = xStDevInter
CutOff = Cintra * Vintra + Cinter * Vinter
MF = xClose - xhl2 + TP - TP1
FveFactor = iff(MF > CutOff * xClose, 1, 
             iff(MF < -1 * CutOff * xClose, -1,  0))
xVolumePlusMinus = xVolume * FveFactor
Fvesum = sum(xVolumePlusMinus, Samples)
VolSum = sum(xVolume, Samples)
xFVE = (Fvesum / VolSum) * 100
xEMAFVE = ema(xFVE, Perma)
pos = iff(xFVE > xEMAFVE, 1,
	   iff(xFVE < xEMAFVE, -1, nz(pos[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)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(xFVE, color=green, title="FVI")
plot(xEMAFVE, color=blue, title="FVI EMA")

Más.