A ideia principal desta estratégia é abrir uma posição longa após o surgimento de um padrão específico de candelabro, ou seja, abrir uma posição longa na próxima barra aberta após uma brecha de baixa (colorbar) seguida de um pullback para a baixa da barra anterior.
As condições específicas para esta estratégia são: a barra anterior tem uma baixa mais baixa e uma alta mais alta em comparação com as duas barras anteriores, indicando uma lacuna descendente; e a baixa da barra atual é menor ou igual à baixa da barra anterior, indicando que ocorreu um pullback.
Após a abertura da posição longa, o stop loss é definido na baixa de pullback, que é a baixa da barra anterior, e o take profit é definido em mais de 2% acima do preço de entrada.
A maior vantagem desta estratégia é aproveitar a oportunidade de rebote de alta probabilidade após o padrão específico de velas. A lacuna de baixa seguida de pullback representa um padrão técnico extremamente poderoso que indica que a pressão de venda pode ter se esgotado neste nível e uma rebentação de alta probabilidade é provável que ocorra. Portanto, esta estratégia é mais adequada para negociação de curto prazo.
O principal risco é a queda contínua após o fim do pullback. Como estamos tomando posições longas em torno de mínimos de pullback, podem ser incorridas perdas significativas se não pudermos cortar a perda a tempo. Além disso, se o intervalo de pullback for pequeno, o stop loss definido muito apertado pode causar a parada. Assim, essa estratégia é mais preferível para negociação de curto prazo, exigindo atenção do mercado e stop loss oportuno.
Outros indicadores técnicos podem ser incorporados para melhorar a precisão do sinal e a estabilidade da estratégia, como entrar na cruz de ouro do MACD ou verificar se o preço típico está no nível de suporte antes da entrada.
Em resumo, esta é uma estratégia típica de curto prazo de breakout pullback longo. Captura a oportunidade de rebote após o forte padrão de gap de baixa seguido de pullback. Mas também carrega o risco de grandes perdas se não conseguir cortar as perdas a tempo. É necessário monitoramento frequente do mercado para resultados favoráveis.
/*backtest start: 2024-01-22 00:00:00 end: 2024-02-21 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 // Created by Leon Ross //study(title="OutsideDownOpenLower", shorttitle="ODOL", overlay=true) strategy(title = "Outside", shorttitle = "OB", overlay = true ) //Window of time //start = timestamp(2018, 01, 01, 00, 00) // backtest start window //finish = timestamp(2018, 12, 31, 23, 59) // backtest finish window //window() => time >= start and time <= finish ? true : false // create function "within window of time" //Conditions outsideBar = low < low[1] and high > high[1] and close < open allConditions = outsideBar //Stop and Take Profit as percentages //inpTakeProfit = input(2, title='Take Profit %', type=float)/100 //takeProfitValue = strategy.position_avg_price * (1 + inpTakeProfit) //useTakeProfit = inpTakeProfit > 0 ? takeProfitValue : na //inpStopLoss = input(1, title='Stop Loss %', type=float)/100 //stopLossValue = strategy.position_avg_price * (1 - inpStopLoss) //useStopLoss = inpStopLoss > 0 ? stopLossValue : na //entry = strategy.position_avg_price //Stop as last bars low and profit as percentage entry = strategy.position_avg_price inpTakeProfit = input(2.0, title='Take Profit %', type=float)/100 takeProfitValue = strategy.position_avg_price * (1 + inpTakeProfit) useTakeProfit = inpTakeProfit > 0 ? takeProfitValue : na inpStopLoss = valuewhen(allConditions, low, 0) stopLossValue = inpStopLoss useStopLoss = inpStopLoss > 0 ? stopLossValue : na //Plots bgcolor(allConditions ==1 ? aqua : na, transp=70) plot(entry, color=blue, style=linebr, linewidth=2) plot(useStopLoss, color=red, style=linebr, linewidth=2) plot(useTakeProfit, color=green, style=linebr, linewidth=2) //Entires strategy.entry(id = "Long", long = true, when = allConditions) // use function or simple condition to decide when to get in //Exits //if (barssince(allConditions) == 2) //strategy.close("Long") //else strategy.exit("Exit Long", from_entry = "Long", stop = useStopLoss)