A Estratégia de Engulfimento de Abertura Reversa é uma estratégia de negociação intradiária simples baseada no primeiro candelabro após a abertura. A ideia central desta estratégia é julgar a tendência de alta ou baixa do primeiro candelabro quando ele aparece após a abertura todos os dias e realizar operações de contra. Se o primeiro candelabro for uma linha de yang vermelha, vá longo; se o primeiro candelabro for uma linha de yin verde, vá curto. A estratégia também configura mecanismos de stop loss e take profit para sair de posições.
O princípio por trás desta estratégia é a peculiaridade do primeiro candelabro após a abertura. Quando o mercado abre, as forças de longs e shorts se confrontam mais intensamente, e a probabilidade de uma reversão é relativamente grande.
Especificamente, após a abertura de um novo dia, a estratégia registrará o preço de abertura, o preço de fechamento e a mudança de preço do primeiro candelabro. Se o preço de abertura for maior que o preço de fechamento (linha verde yin), isso significa que os ursos venceram e devemos fazer long; se o preço de abertura for menor que o preço de fechamento (linha vermelha yang), significa que os touros venceram e devemos fazer short. Ao tomar tais operações de contra, a estratégia tenta capturar oportunidades de reversão após a abertura.
Enquanto isso, a estratégia também estabelece mecanismos de stop loss e take profit, incluindo o preço de stop loss longo, o preço de take profit longo, o preço de stop loss curto e o preço de take profit curto, para controlar os riscos e os lucros das posições longas e curtas, evitando perdas excessivas ou a tomada de lucro prematura.
A estratégia de abertura reversa do engulfing tem as seguintes vantagens:
A Estratégia de Abertura Reversa de Engulfing também apresenta alguns riscos, nomeadamente:
A estratégia de engulfamento de abertura reversa pode ser otimizada nos seguintes aspectos:
A Estratégia de Engulfamento de Abertura Reversa tenta capturar oportunidades de reversão após a abertura, julgando a direção do primeiro candelabro e realizando operações contrárias. A idéia da estratégia é simples com baixos custos de participação e tem algum valor prático.
/*backtest start: 2023-10-22 00:00:00 end: 2023-11-21 00:00:00 period: 3h 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/ // © vikris //@version=4 strategy("[VJ]First Candle Strategy", overlay = true,calc_on_every_tick = true,default_qty_type=strategy.percent_of_equity,default_qty_value=100,initial_capital=750,commission_type=strategy.commission.percent, commission_value=0.02) // ********** Strategy inputs - Start ********** // Used for intraday handling // Session value should be from market start to the time you want to square-off // your intraday strategy // Important: The end time should be at least 2 minutes before the intraday // square-off time set by your broker var i_marketSession = input(title="Market session", type=input.session, defval="0915-1455", confirm=true) // Make inputs that set the take profit % (optional) longProfitPerc = input(title="Long Take Profit (%)", type=input.float, minval=0.0, step=0.1, defval=1) * 0.01 shortProfitPerc = input(title="Short Take Profit (%)", type=input.float, minval=0.0, step=0.1, defval=1) * 0.01 // Set stop loss level with input options (optional) longLossPerc = input(title="Long Stop Loss (%)", type=input.float, minval=0.0, step=0.1, defval=0.5) * 0.01 shortLossPerc = input(title="Short Stop Loss (%)", type=input.float, minval=0.0, step=0.1, defval=0.5) * 0.01 // ********** Strategy inputs - End ********** // ********** Supporting functions - Start ********** // A function to check whether the bar or period is in intraday session barInSession(sess) => time(timeframe.period, sess) != 0 // Figure out take profit price longExitPrice = strategy.position_avg_price * (1 + longProfitPerc) shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc) // Determine stop loss price longStopPrice = strategy.position_avg_price * (1 - longLossPerc) shortStopPrice = strategy.position_avg_price * (1 + shortLossPerc) // ********** Supporting functions - End ********** // ********** Strategy - Start ********** // See if intraday session is active bool intradaySession = barInSession(i_marketSession) // Trade only if intraday session is active //=================Strategy logic goes in here=========================== // If start of the daily session changed, then it's first bar of the new session isNewDay = time("D") != time("D")[1] var firstBarCloseValue = close var firstBarOpenValue = open if isNewDay firstBarCloseValue := close firstBarOpenValue := open greenCandle = firstBarOpenValue < firstBarCloseValue redCandle = firstBarOpenValue > firstBarCloseValue buy = redCandle sell = greenCandle // plot(firstBarCloseValue) // plot(firstBarOpenValue) //Final Long/Short Condition longCondition = buy shortCondition =sell //Long Strategy - buy condition and exits with Take profit and SL if (longCondition and intradaySession) stop_level = longStopPrice profit_level = longExitPrice strategy.entry("My Long Entry Id", strategy.long) strategy.exit("TP/SL", "My Long Entry Id", stop=stop_level, limit=profit_level) //Short Strategy - sell condition and exits with Take profit and SL if (shortCondition and intradaySession) stop_level = shortStopPrice profit_level = shortExitPrice strategy.entry("My Short Entry Id", strategy.short) strategy.exit("TP/SL", "My Short Entry Id", stop=stop_level, limit=profit_level) // Square-off position (when session is over and position is open) squareOff = (not intradaySession) and (strategy.position_size != 0) strategy.close_all(when = squareOff, comment = "Square-off") // ********** Strategy - End **********