Estratégia de média móvel dinâmica multiperíodo


Data de criação: 2023-10-27 16:07:16 última modificação: 2023-10-27 16:07:16
cópia: 1 Cliques: 647
1
focar em
1617
Seguidores

Estratégia de média móvel dinâmica multiperíodo

Esta estratégia permite a geração de sinais de negociação através da seleção dinâmica de diferentes tipos de médias móveis, combinadas com vários períodos de tempo.

Princípio da estratégia

A estratégia permite escolher os cinco indicadores de média móvel SMA, EMA, TEMA, WMA e HMA e definir a duração do período de equilíbrio. A estratégia traça diferentes tipos de equilíbrio de acordo com a dinâmica selecionada.

Em particular, a estratégia define primeiro o período de retrospecção com base nos parâmetros de entrada. Em seguida, calcula-se cinco indicadores de linha média:

  • SMA média móvel simples
  • EMA média móvel
  • TEMA média móvel trifásica
  • Média móvel ponderada da WMA
  • HMA Hull média móvel

Dependendo da escolha, trace a correspondente linha média. Quando o preço de fechamento for superior à linha média, faça mais; Quando o preço de fechamento for inferior à linha média, faça um vazio.

A estratégia usa diferentes tipos de linhas médias em combinação para suavizar os dados de preços, filtrar o ruído do mercado e produzir um sinal de negociação mais confiável. Permite a personalização do comprimento do ciclo de linhas médias, permitindo a negociação de tendências em diferentes períodos.

Vantagens estratégicas

  • Combinação de vários indicadores de linha média, com maior confiabilidade
  • Período linear personalizável para diferentes operações de ciclo
  • Tipo de linha uniforme de comutação dinâmica, flexibilidade de parâmetros de otimização
  • Estratégias simples e intuitivas de acompanhamento de tendências, fáceis de implementar

Risco estratégico

  • A linha média está atrasada e pode ter perdido o ponto de viragem da tendência
  • Os parâmetros fixos são facilmente sobre-ajustados, e os efeitos do disco rígido podem ser mais fracos do que os da ressonância
  • A fase multi-cabeça faz mais ativamente, a fase vazia faz mais ativamente, e é fácil de afetar a eficiência do uso de fundos

O risco pode ser reduzido através da optimização dos seguintes aspectos:

  • Combinando tendências com outros indicadores para determinar o momento de entrada mais preciso
  • Parâmetros de otimização de disco rígido, ajustando o ciclo de linha média para adaptar-se a diferentes condições de mercado
  • Optimizar a gestão das posições, ajustando as posições de acordo com o tamanho do capital e o controle de risco

Direção de otimização

A estratégia pode ser otimizada em várias direções:

  1. Adição de filtros para outros indicadores, formando sinais de negociação mais estáveis

Por exemplo, pode ser adicionado um indicador de capacidade quantitativa, que só gera sinais de negociação em caso de aumento do volume de transação, filtrando algumas brechas falsas.

  1. Otimizar a lógica de entrada e saída

Pode-se definir um canal que só entra quando o preço quebra o canal; definir uma linha de stop loss, a posição de liquidação após o preço tocar a linha de stop loss. Isso pode reduzir os prejuízos desnecessários.

  1. Período de ajuste dinâmico da linha média

Pode-se ajustar o ciclo de média de acordo com a dinâmica da situação do mercado, usando a média de longo período quando a tendência é mais evidente, usando a média de curto período para a consolidação.

  1. Optimizar estratégias de gestão de fundos

Pode-se ajustar o tamanho da posição de acordo com a situação de retirada, diminuir a posição na retirada e aumentar moderadamente a posição quando for lucrativo.

Resumir

A estratégia de aplicação combinada de vários indicadores de linha média, em combinação com vários períodos de tempo, para formar um efeito de acompanhamento de tendência mais estável. A estratégia de otimização de espaço é grande, pode ser melhorado em termos de entrada de filtragem, saída de forma, otimização de parâmetros, etc., para que a estratégia de obter um melhor efeito no disco real.

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

//@version=3
strategy("MA_strategy ", shorttitle="MA_strategy", overlay=true, initial_capital=100000)

qty = input(100000000, "Buy quantity")

testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testStartHour = input(0, "Backtest Start Hour")
testStartMin = input(0, "Backtest Start Minute")

testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,testStartHour,testStartMin)

testStopYear = input(2099, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)


testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false


ma1 = input( "SMA",title="Select MA", options=["SMA", "EMA","TEMA", "WMA","HMA"])


len1 = input(7, minval=1, title="Period")

s=sma(close,len1)

e=ema(close,len1)


xEMA1 = ema(close, len1)
xEMA2 = ema(xEMA1, len1)
xEMA3 = ema(xEMA2, len1)
t = 3 * xEMA1 - 3 * xEMA2 + xEMA3


f_hma(_src, _length)=>
    _return = wma((2 * wma(_src, _length / 2)) - wma(_src, _length), round(sqrt(_length)))

h = f_hma(close, len1)

w = wma(close, len1)

ma = ma1 == "SMA"?s:ma1=="EMA"?e:ma1=="WMA"?w:ma1=="HMA"?h:ma1=="TEMA"?t:na

buy= close>ma
sell= close<ma

alertcondition(buy, title='buy', message='buy')
alertcondition(sell, title='sell', message='sell')

ordersize=floor(strategy.equity/close)

if testPeriod()
    strategy.entry("long",strategy.long,ordersize,when=buy)
    strategy.close("long", when = sell )