El principio básico es ir largo o corto cuando el precio rompe el máximo o mínimo del candelabro anterior y dejar que la ganancia continúe funcionando después de establecer el take profit y el stop loss.
La lógica central de esta estrategia es determinar el momento de entrada al juzgar si el precio rompe el máximo o el mínimo del candelabro anterior.
Si el máximo del candelero actual es mayor que el máximo del candelero anterior, se activa una señal larga.
Si el mínimo del candelero actual es menor que el mínimo del candelero anterior, se activa una señal corta.
Una vez que reciba la señal larga o corta, ingrese inmediatamente a la posición.
Cuando la pérdida sea mayor o igual a los puntos de stop loss o la ganancia sea mayor o igual a los puntos de take profit, salga de la posición activamente.
Esta estrategia de retirada de ruptura tiene las siguientes ventajas:
Esta estrategia también tiene algunos riesgos:
La estrategia se puede optimizar aún más en los siguientes aspectos:
Añadir una comprobación de validez para las rupturas de precios para evitar rupturas falsas, como el uso de filtros de indicadores y confirmación de volumen.
Añadir un mecanismo de determinación de tendencias para evitar la captura de riesgos en los mercados de rango.
Optimizar la estrategia de toma de ganancias y stop loss, como el stop loss de seguimiento, el movimiento de stop loss después de la ganancia, etc., para maximizar las ganancias.
Optimización de parámetros para encontrar los pips óptimos de toma de ganancias y stop loss.
En general, esta estrategia de ruptura tiene la ventaja de una lógica simple, una implementación fácil y una captura efectiva de los comienzos de tendencia. También tiene una buena capacidad de controlar los riesgos y las reducciones.
/*backtest start: 2023-01-25 00:00:00 end: 2024-01-31 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Breakout Strategy", shorttitle="BS", overlay=true) // Input for take profit and stop loss in pips tp_pips = input(50, title="Take Profit (in pips)") sl_pips = input(100, title="Stop Loss (in pips)") // Calculate take profit and stop loss levels in points tp_level = tp_pips * syminfo.mintick sl_level = sl_pips * syminfo.mintick // Function to check if a breakout has occurred breakout(high_or_low) => high_or_low > request.security(syminfo.tickerid, "D", high[1]) ? true : false // Buy condition buy_condition = breakout(high) strategy.entry("Buy", strategy.long, when=buy_condition) // Sell condition sell_condition = breakout(low) strategy.entry("Sell", strategy.short, when=sell_condition) // Take profit and stop loss conditions for Buy tp_buy_condition = strategy.position_avg_price + tp_level sl_buy_condition = strategy.position_avg_price - sl_level strategy.exit("Take Profit/Close Buy", from_entry="Buy", profit=tp_buy_condition, loss=sl_buy_condition) // Take profit and stop loss conditions for Sell tp_sell_condition = strategy.position_avg_price - tp_level sl_sell_condition = strategy.position_avg_price + sl_level strategy.exit("Take Profit/Close Sell", from_entry="Sell", profit=tp_sell_condition, loss=sl_sell_condition)