Estratégia de negociação da rede de rebote de grande amplitude Wavetrend

Autora:ChaoZhang, Data: 2024-04-25 17:13:39
Tags:DCAEMASMA

img

Resumo

Esta estratégia é baseada no indicador Wavetrend e estabelece posições longas quando o preço atinge múltiplos níveis de sobrevenda e sobrecompra.

Princípios de estratégia

  1. Calcular duas linhas do indicador de tendência de onda, uma é o valor original (wt1) e a outra é o valor suavizado (wt2).
  2. Definir níveis múltiplos de sobrevenda (oslevel1~8) e níveis de sobrecompra (Oblevel1~5).
  3. Quando tanto o wt1 quanto o wt2 estiverem abaixo de um certo nível de sobrevenda e o wt1 estiver acima do wt2, abra uma posição longa.
  4. Quando tanto o wt1 como o wt2 estiverem acima do nível de sobrecompra 1 e o wt1 estiver abaixo do wt2, feche 70% da posição longa.
  5. Repita os passos 3 e 4 para construir um sistema de negociação de rede.

Vantagens da estratégia

  1. Capturar oportunidades de rebote de sobrevenda: estabelecendo vários níveis de sobrevenda, abre posições após uma queda significativa do preço para lucrar com o rebote.
  2. Construção de posições por lotes para controlar o risco: Construi posições em lotes de acordo com os níveis de sobrevenda, com posições mais pesadas em níveis mais baixos, permitindo um melhor controle do risco.
  3. Tomada automática de lucro: fecha automaticamente a maioria das posições quando o preço se recupera para a zona de sobrecompra, bloqueando os lucros.
  4. Parâmetros flexíveis: Os níveis de sobrevenda e sobrecompra podem ser ajustados em função das características do mercado e das preferências pessoais, adaptando-se aos diferentes produtos e ciclos comerciais.

Riscos estratégicos

  1. Risco de crash: se o preço continuar a cair, desencadeando cada vez mais sinais de abertura de sobrevenda, pode levar a posições pesadas serem presas.
  2. Risco de mercado agitado: se o preço flutuar repetidamente na zona de sobrevenda, pode conduzir a várias aberturas de posições sem poder obter lucro, enfraquecendo assim o efeito da estratégia.
  3. Risco de parâmetros: diferentes definições de parâmetros têm um impacto significativo no desempenho da estratégia e precisam ser otimizadas com base em backtesting e experiência, caso contrário, podem trazer perdas.

Orientações para a otimização da estratégia

  1. Adicionar filtragem de tendência: Determine se a tendência de grande nível é ascendente antes de abrir uma posição para evitar a abertura de posições em uma tendência descendente.
  2. Otimizar a gestão de posições: ajustar o tamanho da posição de abertura de acordo com a distância entre o preço e o nível de sobrevenda, com posições maiores para distâncias maiores.
  3. Titular de uma posição de capital de risco (titular de uma posição de capital de risco)
  4. Adicionar stop-loss: definir um stop-loss fixo ou final para controlar a perda máxima de uma única transação.

Resumo

A estratégia Wavetrend Large Amplitude Oversold Rebound Grid Trading é uma estratégia quantitativa baseada em sinais de sobrevenda e sobrecompra. Tenta capturar oportunidades de rebote após uma queda acentuada através da construção de posições de lote e da obtenção automática de lucros, visando lucrar com a diferença de preço. A vantagem desta estratégia reside em sua forte adaptabilidade e ajuste flexível de parâmetros. No entanto, também enfrenta riscos como o declínio contínuo do mercado e configurações de parâmetros inadequadas.


/*backtest
start: 2024-03-25 00:00:00
end: 2024-04-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// © And Isaac, all rights reserved. If there is any piracy, please call the police immediately. 

strategy(title='wavetrend',shorttitle='DCA-High win rate quantitative trading')
n1 = input(40,'channel length')
n2 = input(60,'average length')
Oblevel1 = input(40,'over bought level 1')
Oblevel2 = input(50,'over bought level 1')
Oblevel3 = input(70,'over bought level 1')
Oblevel4 = input(80,'over bought level 1')
Oblevel5 = input(100,'over bought level 2')
oslevel1 = input(-40,'over sold level 1')
oslevel2 = input(-45,'over sold level 1')
oslevel3 = input(-50,'over sold level 1')
oslevel4 = input(-55,'over sold level 1')
oslevel5 = input(-65,'over sold level 1')
oslevel6 = input(-75,'over sold level 1')
oslevel7 = input(-85,'over sold level 1')
oslevel8 = input(-100,'over sold level 2')

ap = input(title="source",defval=hlc3)
esa =ta.ema(ap, n1)
d =ta.ema(math.abs(ap - esa),n1)
ci = (ap - esa)/ (0.015 * d)
tci = ta.ema(ci,n2)

wt1 = tci
wt2 = ta.sma(wt1, 4)

plot(0,color=color.new(#787b86, 0 ))
plot(Oblevel1, color=color.new(#89ff52, 53), linewidth = 2)
plot(oslevel1, color=color.new(#89ff52, 53), linewidth = 2)
plot(oslevel2, color=color.new(#89ff52, 53), linewidth = 2)
plot(oslevel3, color=color.new(#89ff52, 53), linewidth = 2)
plot(oslevel4, color=color.new(#89ff52, 53), linewidth = 2)
plot(oslevel5, color=color.new(#89ff52, 53), linewidth = 2)
plot(oslevel6, color=color.new(#89ff52, 53), linewidth = 2)
plot(oslevel7, color=color.new(#89ff52, 53), linewidth = 2)
plot(oslevel8, color=color.new(#89ff52, 53), linewidth = 2)
plot(oslevel2, color=color.new(#89ff52, 53), linewidth = 2)
plot(wt1, color=color.new(#ff5252,0))
plot(wt2, color=color.new(#ffffff,0))
plot(wt1 - wt2, color=color.new(#00bcd4, 30),style=plot.style_area)

plot(ta.cross(wt1, wt2) ? wt2 : na, color=color.new(#ff5252,0) , style=plot.style_circles, linewidth=4 )

// barcolor(cross(wt1, wt2) ? (wt2 - wt1 > 0 ? aqua : yellow) : na)
barcolor(ta.cross(wt1, wt2) ? (wt2 - wt1 > 0 ? color.new(#ffffff,0) : color.new(#89ff52, 53)) : na)

/////////////
Long1 = wt2 < oslevel1 and wt1 < oslevel1 and wt1>wt2 and wt2 > oslevel3 and wt1>oslevel3
Long5 = wt2 < oslevel5 and wt1 < oslevel5 and wt1>wt2 and wt2 > oslevel6 and wt1>oslevel6

Long7 = wt2 < oslevel7 and wt1 < oslevel7 and wt1>wt2 and wt2 > oslevel8 and wt1>oslevel8
Long8 = wt2 < oslevel8 and wt1 < oslevel8 and wt1>wt2
LS1 = wt2 > Oblevel1 and wt1 > Oblevel1 and wt1<wt2



if Long1
    strategy.entry("L",strategy.long,comment = "做多1")


if Long5
    strategy.entry("L",strategy.long,comment = "做5")

if Long7
    strategy.entry("L",strategy.long,comment = "做多7")
if Long8
    strategy.entry("L",strategy.long,comment = "做多8")
if LS1
    strategy.close("L", qty_percent = 70,comment = "平多")




Relacionados

Mais.