
La estrategia es un sistema de seguimiento de tendencias basado en el indicador de energía de la oscilación (Vortex Indicator, VI). La estrategia identifica los puntos de inflexión de la tendencia del mercado mediante el cálculo de la dinámica positiva (VI +) y negativa (VI -) de las fluctuaciones de precios y genera una señal de negociación en los cruces de indicadores clave. La estrategia utiliza una media móvil lisa (SMA) para reducir el ruido y aumentar la fiabilidad de la señal.
El núcleo de la estrategia es determinar la dirección de la tendencia comparando la fuerza relativa de VI+ y VI- . El proceso de cálculo específico es el siguiente:
La estrategia proporciona un marco analítico fiable para el seguimiento de la tendencia de las operaciones a través de la aplicación innovadora de indicadores de energía de la volatilidad. Aunque existe un cierto retraso, se puede construir un sistema de negociación sólido con la optimización de parámetros razonables y medidas de gestión de riesgos. Se recomienda a los operadores que realicen una prueba de retroalimentación adecuada antes de la aplicación en el mercado real y que realicen optimizaciones específicas según las características específicas del mercado.
/*backtest
start: 2022-02-11 00:00:00
end: 2025-02-08 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Vortex Strategy with Signals", shorttitle="VI_Strat", overlay=true)
// Užívateľský vstup
length = input.int(14, title="Period", minval=1)
//------------------------------------
// 1) Výpočet Vortexu
//------------------------------------
vmPlus = math.abs(high - low[1])
vmMinus = math.abs(low - high[1])
trueRange = math.max(math.max(high - low, math.abs(high - close[1])), math.abs(low - close[1]))
// SMA vyhladzovanie
smoothedVMPlus = ta.sma(vmPlus, length)
smoothedVMMinus = ta.sma(vmMinus, length)
smoothedTrueRange = ta.sma(trueRange, length)
// Vortex Indikátory
viPlus = smoothedVMPlus / smoothedTrueRange
viMinus = smoothedVMMinus / smoothedTrueRange
//------------------------------------
// 2) Plot indikátora
//------------------------------------
plot(viPlus, color=color.green, title="VI+")
plot(viMinus, color=color.red, title="VI-")
//------------------------------------
// 3) Definícia signálov
//------------------------------------
bullSignal = ta.crossover(viPlus, viMinus) // VI+ pretína VI- smerom nahor
bearSignal = ta.crossunder(viPlus, viMinus) // VI+ pretína VI- smerom nadol
//------------------------------------
// 4) Vizualizácia signálov na grafe
//------------------------------------
plotshape(bullSignal,
title="Bull Signal",
style=shape.labelup,
location=location.belowbar,
color=color.green,
text="BUY",
textcolor=color.white,
size=size.small)
plotshape(bearSignal,
title="Bear Signal",
style=shape.labeldown,
location=location.abovebar,
color=color.red,
text="SELL",
textcolor=color.white,
size=size.small)
//------------------------------------
// 5) STRATEGY LOGIC
//------------------------------------
if bullSignal
strategy.entry("Long", strategy.long)
if bearSignal
strategy.entry("Short", strategy.short)