Estratégia de inversão de sombra dupla

Autora:ChaoZhang, Data: 2023-11-07 17:00:52
Tags:

img

Resumo

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.

Princípio

A lógica central desta estratégia é identificar o padrão dual shadow. Especificamente, verifica se a vela atual atende à condição de aberta é igual a baixa, fechada é igual a alta, o que significa que não há sombras inferiores ou superiores, o que é conhecido como uma vela sem sombra. Se a vela anterior também atende a este critério, ela sinaliza duas velas consecutivas sem sombra, ou o padrão dual shadow.

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.

Vantagens

  • 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.

Riscos

  • 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.

Ideias de melhoria

  • 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.

Resumo

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)


Mais.