Estratégia de exaustão do oscilador de momentum


Data de criação: 2023-11-16 17:54:00 última modificação: 2023-11-16 17:54:00
cópia: 1 Cliques: 769
1
focar em
1617
Seguidores

Estratégia de exaustão do oscilador de momentum

Visão geral

A estratégia de exaustão de oscilação dinâmica é uma estratégia de acompanhamento de tendências que utiliza médias móveis e oscilações percentuais de preços para minimizar o risco de queda. A estratégia pertence ao modelo de negociação de fundos de índice e pode controlar eficazmente o risco.

Princípio da estratégia

Os indicadores centrais da estratégia são o valor de esgotamento e a média de esgotamento. O valor de esgotamento é uma medida da oscilação dos preços, que é calculada a partir do preço de fechamento, do preço máximo e do preço mínimo. A forma específica de cálculo é: ((preço de fechamento + preço máximo + preço mínimo - média móvel do valor de esgotamento) / ((média móvel do valor de esgotamento). A média de esgotamento é a média móvel do valor de esgotamento.

Além disso, a estratégia também usa médias móveis de curto prazo para auxiliar na determinação de tendências, incluindo linhas de 300 dias, 150 dias e 50 dias. Quando as médias móveis de curto prazo atravessam as médias móveis de longo prazo, indicando uma reversão de tendência, deve-se considerar um stop loss.

O MACD também é usado para determinar pontos de compra e venda em curto prazo. Quando o MACD cruza a linha de sinal, ele sobe, e quando ele desce, desce. O RSI baixo também é usado como sinal de compra.

A lógica de entrada e saída é a seguinte:

Condições de compra: a linha média de depreciação sobre o valor de depreciação e a linha de 50 dias acima da linha de 150 dias; ou o RSI abaixo de 30 ◦

Condições de parada de curto prazo: atravessar a linha média de esgotamento sob o valor de esgotamento; ou atravessar a linha de sinal sob o MACD.

Condições de parada de médio e longo prazo: 50 dias abaixo da linha de 150 dias; ou 150 dias abaixo da linha de 300 dias.

Vantagens estratégicas

A estratégia combina vários indicadores para avaliar a tendência endtime exhaustion para controlar o risco, com as seguintes vantagens:

  1. Os indicadores de exaustão podem ser eficazes para avaliar a correção e a reversão. A detecção atempada da reversão de tendência é a chave para o controle eficaz do risco.

  2. Utilize as médias móveis de períodos de tempo múltiplos para avaliar as tendências e evitar o ruído do mercado de curto prazo.

  3. O MACD ajuda a confirmar os pontos de compra e venda, aumentando a eficácia real da estratégia.

  4. Os indicadores RSI usam a eficácia de comprar baixo e vender alto, comprando quando estão acima da baixa.

  5. Uma estratégia de stop loss clara e eficaz para controlar o risco de cada transação.

Risco estratégico

A estratégia também traz alguns riscos:

  1. Com base em vários indicadores, a configuração inadequada dos parâmetros pode causar erros no sinal de negociação. Os parâmetros de otimização precisam ser testados repetidamente.

  2. Os indicadores de esgotamento não são totalmente confiáveis e podem falhar quando os preços se desviam de um nível baixo.

  3. A configuração inadequada do ponto de parada pode causar uma oscilação de linha ultra curta e ser parada. O ponto de parada deve considerar o efeito de longo prazo da estratégia.

  4. Quando a bolsa se desloca, o indicador perde a sua eficácia e é necessário controlar o tamanho da posição.

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

A estratégia pode ser melhorada em vários aspectos:

  1. Teste diferentes combinações de parâmetros para encontrar o melhor parâmetro para reduzir o sinal de erro. Parâmetros-chave ajustáveis incluem o ciclo de média, o ciclo de depreciação, etc.

  2. Combinado com indicadores de taxa de flutuação, como o ATR, ajuste dinamicamente a amplitude de suspensão e relaxe adequadamente a amplitude de suspensão em grandes flutuações.

  3. Optimizar a gestão de posições, com diferentes regras de proporção de posições para diferentes fases de grandes ações.

  4. A combinação de indicadores gráficos, como linhas de acumulação e linhas de apoio, aumenta a eficácia da estratégia em combate.

  5. Aumentar os algoritmos de aprendizagem de máquina para auxiliar a avaliação da eficácia dos indicadores-chave e a otimização dinâmica.

Resumir

A estratégia de esgotamento de dinâmica usa vários indicadores para determinar a reversão da tendência para controlar o risco de negociação. A estratégia tem a capacidade de acompanhar a tendência e pode determinar efetivamente o momento de comprar e vender. A eficiência da estratégia pode ser melhorada ainda mais por meio de otimização de parâmetros, configuração de regras de parada e suporte de indicadores gráficos.

Código-fonte da estratégia
/*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)
//}