Estratégia de esgotamento do impulso

Autora:ChaoZhang, Data: 2023-11-16 17:54:00
Tags:

img

Resumo

A Estratégia de Esgotamento de Momento é uma estratégia de tendência que utiliza médias móveis e osciladores percentuais de preços para minimizar a exposição à baixa.

Estratégia lógica

Os principais indicadores desta estratégia são a média móvel de exaustão e exaustão. A exaustão é uma medida da oscilação de preços, calculada a partir de preços próximos, altos e baixos. O cálculo específico é: (média móvel de exaustão próxima + alta + baixa) / média móvel de exaustão. A média móvel de exaustão é a média móvel de exaustão. Quando a exaustão cruza acima da média móvel de exaustão, indica consolidação no mercado e uma possível formação de uma nova tendência. Quando a exaustão cruza abaixo da média móvel de exaustão, sinaliza uma inversão de tendência e devemos considerar tirar lucro.

Além disso, a estratégia também utiliza médias móveis de longo e curto prazo para ajudar a determinar a tendência, incluindo linhas de 300 dias, 150 dias e 50 dias.

O MACD também é usado para sinais de compra e venda de curto prazo. Quando a linha MACD cruza acima da linha de sinal, indica um sinal de alta, e quando o MACD cruza abaixo da linha de sinal, indica um sinal de baixa.

A lógica específica de entrada e saída é:

O indicador de crescimento é o indicador de crescimento do mercado de ações, o indicador de crescimento do mercado de ações e o indicador de crescimento do mercado de ações.

Stop loss a curto prazo: cruzamento de exaustão abaixo da média móvel de exaustão; ou cruzamento do MACD abaixo da linha de sinal.

O valor da posição em risco deve ser calculado de acordo com o método de classificação da posição em risco, de acordo com o método de classificação da posição em risco.

Vantagens da estratégia

Esta estratégia combina múltiplos indicadores para determinar o esgotamento da tendência e controlar os riscos.

  1. O indicador de exaustão pode identificar eficazmente a consolidação e a reversão.

  2. Usar médias móveis de vários prazos para determinar a tendência evita ser enganado pelo ruído do mercado a curto prazo.

  3. O MACD ajuda a confirmar os sinais de compra e venda, melhorando o desempenho da estratégia.

  4. O RSI desempenha o seu papel de comprar baixo e vender alto, comprando em situações extremamente sobrevendidas.

  5. A estratégia clara de captação de lucro e stop loss pode controlar eficazmente o risco de cada negociação.

Riscos da Estratégia

Há também alguns riscos com esta estratégia:

  1. Confiando em múltiplos indicadores, configurações incorretas de parâmetros podem levar a sinais de negociação errados.

  2. O indicador de esgotamento não é totalmente fiável, podendo falhar quando há divergência de preços.

  3. A colocação inadequada de stop loss pode resultar em ser interrompida por flutuações de curto prazo.

  4. Quando o mercado global está variando, os indicadores podem falhar.

Orientações de otimização

A estratégia pode ser otimizada nos seguintes aspectos:

  1. Testar diferentes combinações de parâmetros para encontrar os parâmetros ideais e reduzir os sinais falsos.

  2. Incorporar indicadores de volatilidade, como o ATR, para ajustar dinamicamente a faixa de stop loss de acordo com a volatilidade do mercado.

  3. Otimizar o dimensionamento das posições, com regras de dimensionamento de posições diferentes para diferentes condições de mercado.

  4. Incorporar padrões de gráficos como linhas de tendência, linhas de suporte para melhorar o desempenho da estratégia.

  5. Adicionar algoritmos de aprendizagem de máquina para ajudar a avaliar a eficácia dos principais indicadores, realizando otimização dinâmica.

Conclusão

A estratégia de exaustão de momento combina vários indicadores para identificar a reversão da tendência e controlar os riscos. Ele tem a capacidade de seguir a tendência e pode determinar efetivamente os pontos de entrada e saída. Melhorias adicionais podem ser feitas através da otimização de parâmetros, regras de stop loss, incorporação de padrões de gráficos e muito mais.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © spiritualhealer117

//@version=4

strategy("Infiten Slope Strategy", overlay=false,calc_on_every_tick = true, default_qty_type=strategy.percent_of_equity, default_qty_value = 100)
// //TIME RESTRICT FOR BACKTESTING {
// inDateRange = (time >= timestamp(syminfo.timezone, 2003,
//          1, 1, 0, 0)) and
//      (time < timestamp(syminfo.timezone, 2021, 5, 25, 0, 0))
// //}

//OPTIMAL PARAMETERS {
daysback = 30
volumesens = 1.618
//}
//Calculating Exhaustion and Exhaustion Moving Average {
clh = close+low+high
exhaustion = (clh-sma(clh,daysback))/sma(clh,daysback)
exhaustionSma = sma(exhaustion,daysback)
//}
//Long Term Moving Averages for sell signals {
red = sma(close,300)
white = sma(close,150)
blue = sma(close,50)

plot(red,color=color.red)
plot(white,color=color.white)
plot(blue,color=color.blue)
//}
//MACD Calculation {
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA (Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA (Signal Line)", type=input.bool, defval=false)
// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
//}
//SIGMOID Bottom {
timeAdjust = 300/sma(close,500)
//}
//RSI bottom {
len = input(14, minval=1, title="Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(close), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
//}

//Entry and exit conditions {
//Sell conditions
bigVolume = sma(volume,30)*volumesens
sellcond1 = crossunder(exhaustion,exhaustionSma) and volume > bigVolume
sellcond2 = crossunder(macd,signal) and volume > bigVolume
midtermsellcond1 = crossunder(blue,white)
longtermsellcond1 = white < red

//Buy conditions
buycond = crossover(exhaustion,exhaustionSma) and not longtermsellcond1
buycond2 = rsi < 30
buycond3 = crossover(blue,white) and longtermsellcond1
//}

//Backtest Run Buy/Sell Commands {
strategy.entry("buycond",true, when=buycond and bigVolume)
strategy.entry("buycond2",true, when=buycond2 and bigVolume)

strategy.close_all(when=sellcond1,comment="short term sell signal 1")
strategy.close_all(when=midtermsellcond1, comment="mid term sell signal 1")
strategy.close_all(when=longtermsellcond1, comment="long term sell signal 1")
strategy.close_all(when=sellcond2, comment="short term sell signal 2")
plot(strategy.position_size)

//Sell on last tested day (only for data collection)
//strategy.close_all(when=not inDateRange)
//}



Mais.