
Una estrategia de ruptura de puntos altos y bajos es una estrategia de fluctuación de largo plazo basada en la identificación de puntos altos y bajos. La estrategia se realiza en la dirección de los parámetros de dirección de la estrategia, haciendo más cuando se rompe el precio más alto de la última ventana específica y haciendo menos cuando se rompe el precio más bajo de la última ventana específica.
La estrategia utiliza la configuración de los parámetros de entrada para ver el precio más alto y más bajo de la línea más reciente de la raíz N de K, es decir, los puntos altos y bajos de la fluctuación, para determinar la dirección de la estrategia de acuerdo con los parámetros de dirección. En caso de que el precio se encuentre entre los puntos más altos dentro de la línea más reciente de la raíz N de K, se puede comprar de manera stop-win; en caso de que el precio se encuentre entre los puntos más bajos dentro de la línea más reciente de la raíz N de K, se puede comprar de forma stop-loss.
Además, la estrategia también establece un punto de parada. Después de la apertura de la posición, la línea de parada se establece cerca del precio mínimo; después del cierre, la línea de parada se establece cerca del precio máximo. Esto puede evitar de manera efectiva las grandes pérdidas causadas por las acciones unilaterales.
La mayor ventaja de esta estrategia es que puede capturar las fluctuaciones clave cerca de los puntos altos y bajos y, por lo tanto, obtener ganancias. Además, establecer una línea de parada de pérdidas controla eficazmente el riesgo.
Algunas ventajas:
La estrategia es clara, y los puntos altos y bajos se juzgan a través de la entrada y salida.
El uso de los puntos altos y bajos de los swings para buscar oportunidades de reversión es una práctica clásica en el análisis técnico.
Hay un parámetro de pérdidas para controlar el riesgo y evitar grandes pérdidas de unilaterales.
La estructura del código es clara, fácil de entender y modificar.
Se pueden introducir diferentes parámetros para optimizar las estrategias, como ajustar el número de ciclos de puntos máximos y mínimos.
El principal riesgo de esta estrategia es el error de transacción que puede ocasionar el alto y bajo de los puntos. Los riesgos específicos incluyen:
Los puntos más bajos pueden dar lugar a errores de entrada.
El punto de ruptura podría haber sido provocado por un gran deterioro.
Las variedades de tendencia son propensas a costos enormes para determinar los puntos altos y bajos.
La configuración incorrecta de los parámetros también puede afectar el rendimiento de la estrategia.
Las soluciones incluyen:
Parámetros de optimización, número de ciclos para ajustar el máximo y el mínimo de juzgamiento.
El objetivo es aumentar el stop loss.
Distinguir las características de las variedades y evitar su uso en variedades de tendencia.
Parámetros de optimización dinámica con métodos de aprendizaje automático.
La estrategia se puede optimizar en las siguientes direcciones:
Optimización del número de ciclos máximo y mínimo: el número de ciclos fijos actuales se puede cambiar a optimización dinámica para evitar la optimización excesiva de los modelos fijos.
Optimización de la parada de pérdidas: la amplitud de la parada de pérdidas se puede ajustar dinámicamente en función de indicadores como el ATR y la volatilidad.
Combinación de varios períodos de tiempo: se puede determinar la tendencia en períodos de tiempo más altos, los períodos de tiempo bajos determinan la entrada.
Aumentar el aprendizaje automático: el uso de redes neuronales y otros métodos para predecir la probabilidad de un potencial punto alto o bajo de ruptura, para mejorar la eficacia.
Optimización de los algoritmos de detención de pérdidas: mejora de los algoritmos para reducir al mínimo las situaciones en las que se activa el bloqueo ineficaz, siempre y cuando se garantice la detención de pérdidas.
La estrategia de ruptura de puntos altos y bajos en general es una estrategia de cuantificación de líneas largas muy práctica. Se obtiene ganancias al capturar oportunidades de reversión cerca de los puntos altos y bajos, y se establece un stop loss para controlar el riesgo, lo que garantiza la recuperación al mismo tiempo que se controla la retirada. La configuración de los parámetros de la estrategia es flexible, la claridad de pensamiento es una estrategia recomendable.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tweakerID
// Long term strategy for managing a Crypto investment with Swing Trades of more than 1 day. The strategy buys with a
// stop order at the Swing High price (green line) and sells with a stop order at the Swing Low price (red line).
// The direction of the strategy can be adjusted in the Inputs panel.
//@version=4
strategy("Swing Points Breakouts", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=10000, commission_value=0.04)
direction = input(0, title = "Strategy Direction", type=input.integer, minval=-1, maxval=1)
strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long))
//Inputss
i_SL=input(true, title="Use Swing Lo/Hi Stop Loss & Take Profit")
i_SwingLow=input(10, title="Swing Low Lookback")
i_SwingHigh=input(10, title="Swing High Lookback")
i_reverse=input(false, "Reverse Trades")
i_SLExpander=input(defval=0, step=1, title="SL Expander")
//Strategy Calculations
SwingLow=lowest(i_SwingLow)
SwingHigh=highest(i_SwingHigh)
//SL & TP Calculations
bought=strategy.position_size != strategy.position_size[1]
LSL=valuewhen(bought, SwingLow, 0)-((valuewhen(bought, atr(14), 0)/5)*i_SLExpander)
SSL=valuewhen(bought, SwingHigh, 0)+((valuewhen(bought, atr(14), 0)/5)*i_SLExpander)
islong=strategy.position_size > 0
isshort=strategy.position_size < 0
SL= islong ? LSL : isshort ? SSL : na
//Entries and Exits
strategy.entry("long", true, stop=i_reverse?na:SwingHigh, limit=i_reverse?SwingLow:na)
strategy.entry("short", false, stop=i_reverse?na:SwingLow, limit=i_reverse?SwingHigh:na)
if i_SL
strategy.exit("longexit", "long", stop=LSL)
strategy.exit("shortexit", "short", stop=SSL)
//Plots
plot(i_SL ? SL : na, color=color.red, style=plot.style_cross, title="SL")
plot(SwingLow, color=color.red)
plot(SwingHigh, color=color.green)