Estratégia de negociação de sombra

Autora:ChaoZhang, Data: 2023-11-03 16:03:59
Tags:

img

Resumo

A estratégia de negociação de sombra identifica a linha K com longas sombras inferiores ou superiores para determinar oportunidades potenciais de reversão do mercado. Ela fica longa quando uma sombra inferior longa é identificada e fica curta quando uma sombra superior longa é identificada.

Estratégia lógica

A lógica central da estratégia de negociação de sombras é identificar sombras longas superiores e inferiores em linhas K. A estratégia calcula o tamanho do corpo da linha K.corpoE as sombras,pinnaLepinnaSQuando o tamanho da sombra é maior do que o tamanho do corpo por um certo multiplicador, considera que pode haver oportunidades de reversão.

  1. Calcular o tamanho do corpo da linha Kcorpo, que é o valor absoluto da diferença entre o preço de abertura e o preço de fechamento.
  2. Calcular a sombra superiorpinnaL, que é o valor absoluto da diferença entre o preço mais alto e o preço de fechamento.
  3. Calcule a sombra inferiorpinnaS, que é o valor absoluto da diferença entre o preço mais baixo e o preço de fechamento.
  4. Verifique se a sombra superior é maior do que o tamanho do corpo por um multiplicador, atravéspinnaL > (corpo*size), ondesizeé um parâmetro ajustável.
  5. Verifique se a sombra inferior é maior do que o tamanho do corpo por um multiplicador, atravéspinnaS > (corpo*size).
  6. Se estiverem preenchidas as condições acima indicadas, proceder a um corte (sombra superior longa) ou a um longo (sombra inferior longa) no final da linha K com sombra.

Além disso, a estratégia verifica também se o intervalo da linha KdimÉ superior ao valor mínimominPara filtrar K-linhas triviais com um intervalo insignificante.

Análise das vantagens

  • Utiliza o princípio geral da inversão da sombra, que é um sinal comercial relativamente confiável
  • Lógica de estratégia simples e clara, configuração de parâmetros intuitiva, fácil de entender
  • Controlo flexível do risco através do ajustamento dos parâmetros para alterar a frequência de entrada
  • Pode ser ainda melhorado combinando tendência, suporte/resistência, etc.

Riscos e soluções

  • A probabilidade de falha na inversão da sombra existe, pode reduzir o risco ajustando os parâmetros
  • Necessidades de combinação com o julgamento da tendência para evitar operações contra tendência
  • Os parâmetros necessitam de otimização para diferentes produtos, podendo variar entre produtos
  • Pode combinar outros indicadores para filtrar entradas, menor taxa de vitória para maior rentabilidade

Orientações de otimização

  • Otimizar os parâmetros por produto para melhorar a estabilidade
  • Adicionar o julgamento da tendência com médias móveis etc. para evitar a contra-tendência
  • Adicionar verificações sobre a quebra dos pontos altos/baixos recentes para melhorar a eficácia
  • Otimizar o stop loss e obter lucro para maximizar o lucro e minimizar a perda
  • Otimizar o dimensionamento da posição, pode variar entre diferentes produtos

Conclusão

A estratégia de negociação de sombra é uma estratégia de negociação de curto prazo simples e prática. Ela gera sinais de negociação usando o princípio geral de reversões de sombra. A lógica da estratégia é simples e fácil de implementar, e pode ser ajustada e otimizada de acordo com as diferenças de produto. Ao mesmo tempo, a negociação de sombra também carrega certos riscos.


/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-11 23:59:59
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Shadow Trading", overlay=true)

size = input(1,type=float)
pinnaL = abs(high - close) 
pinnaS = abs(low-close)
scarto = input(title="Tail Tollerance", type=float, defval=0.0018)
corpo = abs(close - open)
dim = abs(high-low)
min = input(0.001)
shortE = (open + dim)

longE = (open - dim)
barcolor(dim > min and (close > open) and (pinnaL > (corpo*size)) and (open-low<scarto) ? navy : na)

longcond = (dim > min) and (close > open) and (pinnaL > (corpo*size)) and (open-low<scarto)
minimo=low+scarto
massimo=high+scarto
barcolor( dim > min and(close < open) and (pinnaS > (corpo*size)) and (high-open<scarto) ? orange: na)
shortcond = (dim > min) and(close < open) and (pinnaS > (corpo*size)) and (high-open<scarto)
//plot(shortE)
//plot(longE)
//plot(open)
ss= shortcond ? close : na
ll=longcond ? close : na
offset= input(0.00000)

DayClose = 2
closup = barssince(change(strategy.opentrades)>0)  >= DayClose 

longCondition = (close > open) and (pinnaL > (corpo*size)) and (open-low<scarto) 

crossFlag = longcond ? 1 : 0
monthBegin = input(1,maxval = 12)
yearBegin = input(2013, maxval= 2015, minval=2000)

if(month(time)>monthBegin and year(time) >yearBegin)
    if (longcond)
        strategy.entry("short", strategy.short, stop = low - offset)   
//strategy.close("short", when = closup)
shortCondition = (close < open) and (pinnaS > (corpo*size)) and (high-open<scarto)
if(month(time)>monthBegin and year(time) >yearBegin)
    if (shortcond)
        strategy.entry("long", strategy.long, stop = high + offset)
//strategy.close("long", when = closup)

Target =  input(20) 
Stop = input(70) //- 2
Trailing = input(0) 
CQ = 100

TPP = (Target > 0) ? Target*10: na
SLP = (Stop > 0) ? Stop*10 : na
TSP = (Trailing > 0) ? Trailing : na

strategy.exit("Close Long", "long", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)
strategy.exit("Close Short", "short", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)

Mais.