A estratégia de inversão de sombra dupla é uma estratégia de negociação de curto prazo baseada em padrões de velas. Ela identifica oportunidades de reversão potenciais detectando o padrão especial de velas onde duas velas consecutivas não têm sombras.
A lógica central desta estratégia é identificar o padrão
De acordo com a teoria da análise técnica, esse padrão de sombra dupla geralmente sugere uma reversão iminente da tendência.
Após detectar o padrão de sombra dupla, a estratégia entrará em longo ou curto na próxima vela aberta com base no fechamento anterior e fechará a posição após um número definido de barras.
A lógica da estratégia é direta e fácil de entender, com reconhecimento de padrões simples que é fácil de implementar.
Utiliza o padrão clássico de inversão de sombra dupla, que tem algum raciocínio de análise técnica.
O comércio infrequente ajuda a reduzir custos e riscos.
Fácil de adicionar recursos de backtesting e otimizar parâmetros.
A negociação de padrões depende de estatísticas históricas de gráficos e probabilidades, e podem ocorrer desvios.
Embora as sombras duplas sugeram uma reversão, a reversão real pode não ocorrer ou durar.
A zona de lucro fixo pode não suportar bem os mercados em rápida evolução.
Olhar para as informações limitadas das velas pode levar a entradas ansiosas demais.
Incorporar indicadores de tendência para evitar transações contra tendência.
Usar entradas de espera de confirmação para confirmar a reversão real.
Configurar a perda de parada dinâmica com base no ATR em vez da duração fixa.
Use aprendizagem de máquina para determinar quais padrões de sombra dupla são mais confiáveis.
A estratégia de inversão de sombra dupla aproveita o conceito clássico de negociação de padrões de uma forma simples e intuitiva, adequada para iniciantes, ao mesmo tempo em que serve como um componente modular para algos.
/*backtest start: 2023-10-30 00:00:00 end: 2023-11-06 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("No Shadow Candles", overlay=true) //set inputs bars_until_close_trade = input(1,"Bars Until Close", minval = 1) backtest_option = input(true,"Backtest on Twice alert?", bool) //set conditions up = close > close[1] and low >= open and high <= close down = close < close[1] and low >= close and high <= open up2 = (close > close[1] and low >= open and high <= close) and (close[1] > close[2] and low[1] >= open[1] and high[1] <= close[1]) down2 = (close < close[1] and low >= close and high <= open) and (close[1] < close[2] and low[1] >= close[1] and high[1] <= open[1]) close_trade = barssince(up or down) == bars_until_close_trade close_trade2 = barssince(up2 or down2) == bars_until_close_trade //plot indicators plotshape(up,"Up Marker", shape.triangleup, location.belowbar, color = olive, size = size.tiny, transp = 50) plotshape(down,"Down Marker", shape.triangledown, location.abovebar, color = orange, size = size.tiny, transp = 50) plotshape(up2,"Up Twice Marker", shape.triangleup, location.belowbar, color = white, size = size.small) plotshape(down2,"Down Twice Marker", shape.triangledown, location.abovebar, color = white, size = size.small) plotshape(close_trade,"Close Trigger", shape.circle, location.belowbar, color = fuchsia, size = size.tiny, transp = 50) plotshape(close_trade2,"Close Trigger2 (After Twice Alert)", shape.circle, location.belowbar, color = red, size = size.small) //Strategy Testing // Component Code Start // Example usage: // if testPeriod() // strategy.entry("LE", strategy.long) testStartYear = input(2017, "Backtest Start Year") testStartMonth = input(01, "Backtest Start Month") testStartDay = input(2, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testStopYear = input(2019, "Backtest Stop Year") testStopMonth = input(7, "Backtest Stop Month") testStopDay = input(30, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0) // A switch to control background coloring of the test period testPeriodBackground = input(title="Color Background?", type=bool, defval=true) testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na bgcolor(testPeriodBackgroundColor, transp=97) testPeriod() => true // Component Code Stop //Entry and Close settings if testPeriod() and backtest_option == true strategy.entry("up2", true, when = up2, limit = close) strategy.close("up2", when = close_trade) if testPeriod() and backtest_option == false strategy.entry("up", true, when = up, limit = close) strategy.close("up", when = close_trade)