Estratégia de negociação de reversão de impulso

Autora:ChaoZhang, Data: 2023-12-20 16:09:50
Tags:

img

Resumo

Esta é uma estratégia de negociação de reversão baseada no indicador Momentum. Ele usa o indicador Ease of Movement (EOM) para determinar as tendências do mercado e vai longo ou curto quando o indicador excede os limiares pré-definidos.

Estratégia lógica

O indicador de facilidade de movimento (EOM) mede a magnitude das mudanças de preço e volume. Retorna valores positivos e negativos. Um valor positivo significa que o preço subiu e um valor negativo significa que o preço caiu. Quanto maior o valor absoluto, maior a mudança de preço e / ou menor o volume de negociação.

A lógica por trás desta estratégia é:

  1. Calcular o valor EOM da barra de corrente
  2. Verificar se o valor do EOM excede o limiar longo ou curto
    • Se acima do limiar longo (default 4000), vá longo
    • Se abaixo do limiar de curto prazo (default -4000), vá curto prazo
  3. Fornecer função de negociação reversa
    • Por padrão, longo = alta, curto = baixa
    • Quando o reverso estiver habilitado, longo = baixa, curto = alta

Análise das vantagens

As principais vantagens desta estratégia:

  1. Usar o indicador EOM para determinar a tendência real do mercado com base nas variações de preços e de volume
  2. Limite personalizável para longo/curto
  3. Fornecer modo de negociação reversa
  4. Intuitivo sinal longo/curto da cor da barra

Análise de riscos

Os principais riscos desta estratégia:

  1. O EOM pode ter uma fuga falsa.
  2. Um limiar inadequado pode conduzir a uma troca excessiva ou inferior
  3. Precisa de uma tolerância de risco suficiente para a negociação reversa

Soluções:

  1. Utilize outros indicadores para evitar sinais falsos
  2. Optimização dos parâmetros e ajuste do limiar
  3. Avalie o seu nível de tolerância ao risco

Optimização

Esta estratégia pode ser otimizada nos seguintes aspectos:

  1. Adicionar média móvel para evitar falha de ruptura
  2. Adicionar stop loss
  3. Otimizar os parâmetros de limiar longo/curto
  4. Adicionar mais condições de entrada para controlar a frequência de negociação
  5. Adicionar regras de gestão de riscos para negociação reversa

Ao fazer as otimizações acima, a estratégia pode tornar-se mais robusta, reduzir os riscos e melhorar o desempenho comercial real.

Conclusão

Em conclusão, esta estratégia utiliza o indicador de facilidade de movimento para determinar as tendências reais do mercado e os lucros da negociação longa / curta. É fácil de usar e considera tanto a mudança de preço quanto os fatores de mudança de volume.


/*backtest
start: 2023-11-19 00:00:00
end: 2023-12-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 19/06/2018
// This indicator gauges the magnitude of price and volume movement. 
// The indicator returns both positive and negative values where a 
// positive value means the market has moved up from yesterday's value 
// and a negative value means the market has moved down. A large positive 
// or large negative value indicates a large move in price and/or lighter 
// volume. A small positive or small negative value indicates a small move 
// in price and/or heavier volume.
// A positive or negative numeric value. A positive value means the market 
// has moved up from yesterday's value, whereas, a negative value means the 
// market has moved down. 
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Ease of Movement (EOM) Backtest", shorttitle="EOM")
BuyZone = input(4000, minval=1)
SellZone = input(-4000, minval=1)
reverse = input(false, title="Trade reverse")
hline(0, color=blue, linestyle=line)
hline(BuyZone, color=green, linestyle=line)
hline(SellZone, color=red, linestyle=line)
xHigh = high
xLow = low
xVolume = volume
xHalfRange = (xHigh - xLow) * 0.5
xMidpointMove = mom(xHalfRange, 1)
xBoxRatio = iff((xHigh - xLow) != 0, xVolume / (xHigh - xLow), 0)
nRes = iff(xBoxRatio != 0, 1000000 * ((xMidpointMove - xMidpointMove[1]) / xBoxRatio), 0)
pos = iff(nRes > BuyZone, 1,
       iff(nRes < SellZone, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(nRes, color=red, title="EOM", style=histogram, linewidth=2)

Mais.