A estratégia de breakout pullback é uma estratégia de tendência seguinte. Seu princípio básico é ir longo ou curto quando o preço atravessa o alto ou baixo do candelabro anterior e deixar o lucro continuar a correr após a configuração do take profit e stop loss.
A lógica central desta estratégia é determinar o momento de entrada julgando se o preço rompe o alto ou baixo do candelabro anterior.
Se o máximo do candelabro atual for maior do que o máximo do candelabro anterior, um sinal longo é acionado.
Se a baixa do candelabro atual for menor do que a baixa do candelabro anterior, um sinal curto é acionado.
Uma vez recebido o sinal longo ou curto, entre na posição imediatamente.
Quando a perda for superior ou igual aos pips de stop loss ou o lucro for superior ou igual aos pips de take profit, sair da posição ativamente.
Esta estratégia de retirada de ruptura tem as seguintes vantagens:
Esta estratégia tem também alguns riscos:
A estratégia pode ser ainda melhorada nos seguintes aspectos:
Adicionar a verificação de validade para as rupturas de preços para evitar rupturas falsas, como o uso de filtros de indicadores e confirmação de volume.
Adicionar um mecanismo de determinação de tendências para evitar a captura de riscos em mercados de intervalo.
Otimize a estratégia de take profit e stop loss, como trailing stop loss, movendo stop loss após lucro, etc., para maximizar os lucros.
Optimização de parâmetros para encontrar os pips de lucro e stop loss ideais.
Em geral, essa estratégia de breakout pullback tem a vantagem de lógica simples, implementação fácil e captura efetiva de tendências.
/*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)