Estratégia de negociação IGKEIT multi-tempo com base na amplitude média da trajetória


Data de criação: 2023-11-24 17:29:39 última modificação: 2023-11-24 17:29:39
cópia: 2 Cliques: 586
1
focar em
1617
Seguidores

Estratégia de negociação IGKEIT multi-tempo com base na amplitude média da trajetória

Visão geral

Esta estratégia é conhecida como estratégia de negociação multi-temporal de criptomoedas baseada na amplitude média da trajetória. Sua principal idéia é construir um sinal de negociação com base na amplitude média entre as partículas e o preço, através da introdução de uma partícula que se encaixa na trajetória do preço.

Princípio da estratégia

A estratégia começa por definir uma partícula que se encaixa na trajetória do preço. A partícula é influenciada pela gravidade e pela inércia, e sua trajetória de movimento oscila em torno do preço. Em seguida, calcula-se a distância média de desvio entre a partícula e o preço, e com isso se constrói uma trajetória ascendente e descendente.

Especificamente, a fórmula de posicionamento de partículas definida na estratégia é:

pos:=if pos<close 
     nz(pos[1])+grav+traj  
else 
     nz(pos[1])-(grav)+traj

Aqui.gravO ponto de gravidade, que aproxima as partículas do preço;trajRepresentam os termos inerciais que permitem que as partículas mantenham a tendência de movimento. Estas duas combinações permitem que as partículas oscilem em torno do preço.

E depois calculamos a distância média entre o preço e a partícula.avgdistO projeto foi desenvolvido com o objetivo de construir uma rota de ascensão e descensão:

bbl=pos-sma(avgdist,varb) 
bbh=pos+sma(avgdist,varb)

Por fim, quando o preço é maior do que o da linha de cima, faça mais e quando é menor do que o da linha de baixo, faça menos.

Vantagens estratégicas

Comparado com a estratégia de média móvel tradicional, esta estratégia tem as seguintes vantagens:

  1. O uso de trajetórias de partículas para melhor simular oscilações de preços;
  2. A trajetória ascendente e descendente pode ser adaptada com base na amplitude média histórica, facilitando a captura de brechas;
  3. O projeto de multi-marco de tempo permite alternar entre marcos de tempo altos e baixos para capturar mais oportunidades de negociação.

Risco estratégico

A estratégia também apresenta alguns riscos:

  1. A configuração incorreta dos parâmetros de movimento de partículas pode causar falsos sinais ou sinais perdidos;
  2. O problema é que os sinais podem entrar em conflito ao alternar entre vários períodos de tempo.
  3. A quebra de um sinal de órbita ascendente e descendente pode aumentar o risco de perda.

As medidas de gerenciamento de risco correspondentes incluem: otimização de parâmetros para reduzir sinais falsos, definição de regras de escolha de um período de tempo claro, configuração de posições de parada apropriadas, etc.

Direção de otimização da estratégia

A estratégia pode ser melhorada nos seguintes aspectos:

  1. Otimizar parâmetros relacionados ao movimento de partículas para ajustar trajetórias de preços;
  2. Aumentar o número de camadas do quadro de tempo, confirmando o sinal em um quadro de tempo mais elevado;
  3. Adicionar os indicadores de taxa de flutuação para evitar a geração de sinais em momentos de forte volatilidade do mercado;
  4. Otimizar a estratégia de stop loss para reduzir o stop loss individual.

Resumir

Esta estratégia melhora a estratégia de média móvel, introduzindo a simulação de trajetória de preço, com características como adaptação de parâmetros, multi-quadros de tempo e otimização de stop loss. A chave está em encontrar a equação de movimento de partículas apropriada para simular o preço. Embora ainda seja necessário testar e otimizar ainda mais, o conceito básico é viável e vale a pena estudar mais.

Código-fonte da estratégia
/*backtest
start: 2022-11-17 00:00:00
end: 2023-11-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//2 revert
strategy("Jomy's Gyroscopic Bands",precision=8,commission_value=.03,overlay=true,initial_capital =10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100,  pyramiding=0)//,calc_on_order_fills= true, calc_on_every_tick=false) 
leverage=input(1,"leverage")
a=0
a:= if volume > -1
    nz(a[1])+1
else
    nz(a)
    
vara=input(4.0,"variable a (10 to the power of __ ",step=.5)
vara:=pow(10,vara)
varb=input(12,"variable b")
pos=0.0
pos:=if a<=5
    close
else
    nz(pos[1])
grav=1/sqrt((close*close))*vara
traj=0.0
traj:=(nz(close[1])-nz(close[2])+nz(traj[1])*varb)/(varb+1)
pos:=if pos<close
    nz(pos[1])+grav+traj
else
    nz(pos[1])-(grav)+traj

plot(pos,color=color.white)
plot(close)

avgdist=abs(close-pos)
bbl=pos-sma(avgdist,varb)
bbh=pos+sma(avgdist,varb)

plbbh=plot(bbh,color=color.red)
plbbl=plot(bbl,color=color.red)

long = close>pos
short = close<pos

fill(plbbh,plbbl,color=long?color.lime:color.red)
//bgcolor(close>bbh?color.lime:close<bbl?color.red:na,transp=90)

strategy.entry("Long1",strategy.long,when=long,qty=(strategy.equity*leverage/open)) 
strategy.close("Long1",when=not long)
strategy.entry("Short1",strategy.short,when=short,qty=(strategy.equity*leverage/open)) 
strategy.close("Short1",when=not short)


//plot(strategy.equity,color=color.lime,linewidth=4)