
La estrategia de inducción de tendencia histórica utiliza el indicador de fluctuación para identificar el punto de inflexión de la tendencia del mercado y, en combinación con el promedio móvil del índice, genera una señal de negociación con el objetivo de capturar la tendencia de favor. La estrategia combina hábilmente el uso del indicador de fluctuación y el promedio móvil para determinar el movimiento del mercado y proporcionar orientación comercial.
Indicadores de flujo de escape- Para determinar la dirección y la intensidad de la tendencia mediante el análisis de los movimientos positivos y negativos de los precios. Los principales parámetros incluyen la longitud del ciclo, el multiplicador y el valor de la brecha.
Medias móviles exponenciales- Para suavizar el índice de cierre de precios, ofreciendo un juicio de tendencia más fluido.
La estrategia utiliza un indicador de flujo de onda para determinar la dirección de la tendencia principal del mercado, generando una señal de transacción cuando la línea de indicadores cruza la brecha. Se filtra en combinación con la media móvil para evitar señales erróneas. En concreto, genera una señal de compra cuando el indicador de flujo de onda cruza la brecha hacia arriba y el precio es superior al promedio móvil; genera una señal de venta cuando el indicador de flujo de onda cruza la brecha hacia abajo y el precio es inferior al promedio móvil.
El riesgo se puede abordar mediante la adición de filtros adicionales, la combinación de varios indicadores de juicio, la optimización de la configuración de los parámetros y la configuración de un stop loss adecuado.
En general, la estrategia de inducción de tendencia histórica es más sólida y tiene cierta capacidad de filtrado al mismo tiempo que capta la reversión de la tendencia potencial. Con la ayuda de la optimización de los parámetros y la gestión del riesgo, se espera que la estrategia obtenga una excelente tasa de retorno. Se recomienda que los comerciantes imiten la verificación completa en el disco real y también pueden intentar una expansión innovadora sobre la base de la estrategia.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/
// © AstroHub
//@version=5
strategy("Vortex Strategy [AstroHub]", shorttitle="VS [AstroHub]", overlay=true)
// Vortex Indicator Settings
length = input(14, title="Length", group ="AstroHub Vortex Strategy", tooltip="Number of bars used in the Vortex Indicator calculation. Higher values may result in smoother but slower responses to price changes.")
mult = input(1.0, title="Multiplier", group ="AstroHub Vortex Strategy", tooltip="Multiplier for the Vortex Indicator calculation. Adjust to fine-tune the sensitivity of the indicator to price movements.")
threshold = input(0.5, title="Threshold",group ="AstroHub Vortex Strategy", tooltip="Threshold level for determining the trend. Higher values increase the likelihood of a trend change being identified.")
emaLength = input(20, title="EMA Length", group ="AstroHub Vortex Strategy", tooltip="Length of the Exponential Moving Average (EMA) used in the strategy. A longer EMA may provide a smoother trend indication.")
// Calculate Vortex Indicator components
a = math.abs(close - close[1])
b = close - ta.sma(close, length)
shl = ta.ema(b, length)
svl = ta.ema(a, length)
// Determine trend direction
upTrend = shl > svl
downTrend = shl < svl
// Define Buy and Sell signals
buySignal = ta.crossover(shl, svl) and close > ta.ema(close, emaLength) and (upTrend != upTrend[1])
sellSignal = ta.crossunder(shl, svl) and close < ta.ema(close, emaLength) and (downTrend != downTrend[1])
// Execute strategy based on signals
strategy.entry("Sell", strategy.short, when=buySignal)
strategy.entry("Buy", strategy.long, when=sellSignal)
// Background color based on the trend
bgcolor(downTrend ? color.new(color.green, 90) : upTrend ? color.new(color.red, 90) : na)
// Plot Buy and Sell signals with different shapes and colors
buySignal1 = ta.crossover(shl, svl) and close > ta.ema(close, emaLength)
sellSignal1 = ta.crossunder(shl, svl) and close < ta.ema(close, emaLength)
plotshape(buySignal1, style=shape.square, color=color.new(color.green, 10), size=size.tiny, location=location.belowbar, title="Buy Signal")
plotshape(sellSignal1, style=shape.square, color=color.new(color.red, 10), size=size.tiny, location=location.abovebar, title="Sell Signal")
plotshape(buySignal1, style=shape.square, color=color.new(color.green, 90), size=size.small, location=location.belowbar, title="Buy Signal")
plotshape(sellSignal1, style=shape.square, color=color.new(color.red, 90), size=size.small, location=location.abovebar, title="Sell Signal")