
La estrategia Reversal Momentum Breakout es una estrategia de negociación cuantitativa que utiliza el cambio de precio y el indicador de la dinámica para generar señales de negociación. La estrategia se basa en la teoría de la primacía de la dinámica, y determina si el mercado está en un punto clave de reversión para capturar oportunidades de reversión mediante el seguimiento de los precios más altos y más bajos en un período determinado.
La estrategia se basa en calcular los máximos y mínimos de precios dentro de un período determinado (por ejemplo, 20 días) para determinar si el mercado se encuentra en un punto de inflexión clave. La lógica específica es la siguiente:
Calcula el precio más alto (window_high) y el precio más bajo (window_low) de los últimos 20 días.
Si el máximo de la línea K actual es mayor que el máximo de los últimos 20 días (es decir, se produce un nuevo máximo), se entra en un período de monitoreo de reversión del punto más alto, con el contador fijado en 5 días.
Si el máximo no ha creado un nuevo máximo, el contador diario disminuye 1 ≠. Cuando el contador disminuye a 0, el período de monitoreo de inversión del máximo termina ≠.
La lógica para juzgar el precio mínimo es similar, si se produce un nuevo mínimo, se entra en el período de monitoreo de inversión del punto bajo.
Durante el período de monitoreo de la inversión, se realizan operaciones de sobre-o bajo-o. Si se produce una señal de inversión cerca del punto clave de la inversión, se puede capturar una situación más grande.
La estrategia también establece la hora de inicio de la operación para evitar que se produzcan señales de negociación en los datos históricos.
Las estrategias de rotatividad inversa tienen las siguientes ventajas principales:
Capturar oportunidades de reversión, adecuadas para situaciones de reversión. Después de que el mercado continúe subiendo o bajando, a menudo hay un cierto grado de reversión. Esta estrategia puede capturar estos puntos de inflexión.
La dinámica es anticipada y más sensible. Calcula los precios máximos y mínimos de un ciclo determinado, para determinar con mayor sensibilidad la tendencia y el momento de la reversión de los precios.
Establezca un período de monitoreo de reversión para evitar falsas señales. La señal solo se emite cerca del punto clave de reversión y se puede filtrar parte del ruido.
Se permite realizar varias operaciones de comprobación. Las operaciones de comprobación y comprobación se realizan de acuerdo con la dirección de la operación.
Las reglas son relativamente simples y fáciles de implementar. La estrategia se basa principalmente en un precio simple y un indicador de dinámica que se traduce fácilmente en una implementación de código.
Las estrategias de rotatividad inversa también presentan los siguientes riesgos principales:
La estrategia de invertir el pronóstico no es válida. Si el mercado sigue siendo direccional, la estrategia generará pérdidas.
No se puede considerar el movimiento de la bolsa de valores en su totalidad. Una reversión individual no necesariamente significa una reversión de la bolsa de valores, sino que se necesita combinar con el análisis de la bolsa de valores.
La retractación puede ser mayor. Cuando la reversión no ocurre, el NetDevice puede expandirse.
Riesgo de adecuación de datos. La estrategia puede depender demasiado de los datos históricos y puede tener menos efecto en el entorno real que la retroalimentación.
Los parámetros son sensibles. La configuración de parámetros como el período de ventana y el contador de giro puede afectar la estabilidad de la estrategia.
Las soluciones para responder al riesgo incluyen: optimización de la estrategia de parada de pérdidas, consideración de los factores de gran riesgo, ajuste de la combinación de parámetros para pruebas de estabilidad, etc.
Las principales direcciones de optimización de la estrategia incluyen:
Combinación de los indicadores de la bolsa de valores. Compara la fortaleza de la bolsa de valores y evita la inversión en un entorno desfavorable para la bolsa de valores.
Se seleccionan las acciones con una buena situación financiera, una buena base y un precio sobrevalorado.
Optimización de la combinación de parámetros. Ajuste el período de la ventana, invertir los parámetros del contador y buscar la combinación de parámetros óptima.
Agregar estrategias de stop loss, como stop loss de tipo de seguimiento, stop loss de amplitud, etc., para controlar el máximo retiro.
Aumentar el aprendizaje automático. Usar modelos de IA para predecir la probabilidad de reversión de precios y mejorar la precisión de la señal.
La estrategia de ruptura de la ventana de reversión busca oportunidades de reversión mediante el seguimiento de los precios y los indicadores de la dinámica. Es sensible y puede identificar la tendencia y el momento de la reversión. Pero también existe un cierto grado de riesgo que requiere una optimización y un control de riesgo adecuados. En general, después de dominar los principios de la estrategia y hacer optimizaciones, puede ser una parte efectiva del sistema de comercio cuantitativo.
/*backtest
start: 2023-02-16 00:00:00
end: 2024-02-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("New Highs and Lows Momentum Strategy", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
window = input.int(20, title="New Highs and Lows Window", minval=1)
decay = input.int(5, title="Decay", minval=1)
startDate = input(timestamp("1 Jan 2023"), title = "Start Date")
allowShort = input.bool(false, title = "Allow shorting")
var int highDecayCounter = 0
var bool isHighPeriod = false
var int lowDecayCounter = 0
var bool isLowPeriod = false
inTradeWindow = true
window_high = ta.highest(close, window)
window_low = ta.lowest(low, window)
// Logic for Highs
if window_high > ta.highest(close, window)[1]
highDecayCounter := decay
isHighPeriod := true
else
if highDecayCounter > 0
highDecayCounter := highDecayCounter - 1
else
isHighPeriod := false
// Logic for Lows
if window_low < ta.lowest(low, window)[1]
lowDecayCounter := decay
isLowPeriod := true
else
if lowDecayCounter > 0
lowDecayCounter := lowDecayCounter - 1
else
isLowPeriod := false
// Strategy Execution
if inTradeWindow
if isHighPeriod and highDecayCounter == decay
strategy.entry("Long", strategy.long)
if isHighPeriod and highDecayCounter == 0
strategy.close("Long")
if isLowPeriod and lowDecayCounter == decay and allowShort
strategy.entry("Short", strategy.short)
if isLowPeriod and lowDecayCounter == 0 and allowShort
strategy.close("Short")
// Plotting
plot(window_high, color=color.green)
plot(window_low, color=color.red)