Estratégia de negociação reversa baseada em diferenças de preços sobrepostas

Autora:ChaoZhang, Data: 2023-12-15 15:47:23
Tags:

img

Resumo

A ideia principal desta estratégia é usar os diferenciais de preços sobrepostos para julgar as tendências do mercado.

Princípio

A estratégia primeiro calcula o diferencial de preço sobreposto (Close-Close [1]), que é o preço de fechamento de hoje menos o preço de fechamento de ontem, e depois calcula a soma dos diferenciais nos últimos 30 dias.

Em especial, a estratégia mantém três indicadores:

  1. FF: soma dos diferenciais de preços nos últimos 30 dias
  2. dd1: média móvel ponderada de 15 dias de ff
  3. dd2: média móvel ponderada de 30 dias de ff

Ele gera um sinal longo quando ff muda de negativo para positivo, ou seja, de menor que 0 para maior que 0, e dd1 também muda de negativo para positivo.

Gera um sinal curto quando ff muda de positivo para negativo, ou seja, de maior que 0 para menor que 0, e dd1 também muda de positivo para negativo.

Depois de ir longo ou curto, as linhas de take profit e stop loss serão definidas.

Vantagens

A estratégia apresenta as seguintes vantagens:

  1. A lógica é clara e fácil de compreender e implementar.
  2. Ele capta um bom momento de entrada nos pontos de virada do mercado utilizando características de reversão de preços.
  3. Falsas fugas podem ser filtradas com o mecanismo de confirmação dupla.
  4. Os parâmetros personalizáveis adaptam-se aos diferentes ambientes de mercado.

Riscos

Há também alguns riscos para a estratégia:

  1. Alta probabilidade de falha de reversão, susceptível de ser interrompida em mercados de intervalo.
  2. A configuração inadequada dos parâmetros pode conduzir a negociações frequentes e a um aumento dos custos de transação.
  3. Devem ser incorporados outros indicadores para filtrar as entradas, evitando-se perseguir os topos e os fundos.

As soluções correspondentes são:

  1. Defina a percentagem de stop loss adequada para controlar a perda única.
  2. Otimize os parâmetros para encontrar a melhor combinação.
  3. Adicionar condições de filtragem para evitar entradas desnecessárias.

Orientações de otimização

A estratégia pode ser otimizada nos seguintes aspectos:

  1. Adicione o filtro de volume, exigindo volume aumentado em breakouts.
  2. Incorporar indicadores de tendência para evitar operações de contratrend.
  3. Ajustar dinamicamente os parâmetros para se adaptarem às condições de mercado em evolução.
  4. Otimizar o mecanismo de stop loss, como o stop loss de trailing.

Resumo

A estratégia julga os pontos de virada do mercado calculando inversões de diferencial de preço. É uma estratégia de negociação reversa típica. A lógica é clara e fácil de implementar com algum valor prático. Mas também há riscos que precisam ser otimizados para se adaptar às mudanças do mercado.


/*backtest
start: 2023-12-07 00:00:00
end: 2023-12-14 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title="Fst",currency="USD",initial_capital=100000)

//Length0 = input(30, title="fastperiod", minval=1)
Length = input(30, title="SUMM")
Length1 = input(15, title="Signalperiod", minval=1)
Length2= input(30, title="Info", minval=1)
profit=input(95, title="profit", minval=1)
loss=input(95, title="loss", minval=1)
//f=iff(close>open,close-open,iff(close>open[1],close[1]-open[1],0))
f=0.0
dd1=0.0
dd2=0.0
ff=0.0
ff0=0.0
f:=close-close[1]
ff:=sum(f,Length)
//ff0:=sum(f,Length0)
dd1:=wma(ff,Length1)
dd2:=wma(ff,Length2)

bull=ff<0 and dd1<0 and ff[1]<dd1 and ff>dd1 and abs(ff)>20
bear=ff>0 and dd1>0 and ff[1]>dd1 and ff<dd1 and abs(ff)>20
if(bull)
    
    strategy.entry("long", strategy.long)
strategy.exit("exit", "long", profit = close*profit/1000, loss=close*loss/1000) 

strategy.close("long", when = bear)




plotchar(bull,size=size.small,location=location.bottom)
plot(ff,color=black,linewidth=2)
plot(ff0,color=green,linewidth=2)
plot(wma(ff,Length1),color=red,linewidth=2)
plot(wma(ff,Length2),color=blue,linewidth=2)
plot(wma(ff,Length1)-wma(ff,Length2),color=green,style=columns)

plot(0,linewidth=1,color=black)
plot(500,linewidth=1,color=red)
plot(-500,linewidth=1,color=red)


Mais.