Com base na teoria das ondas de preços e na estratégia de média móvel


Data de criação: 2023-11-13 16:39:41 última modificação: 2023-11-13 16:39:41
cópia: 1 Cliques: 640
1
focar em
1617
Seguidores

Com base na teoria das ondas de preços e na estratégia de média móvel

Visão geral

Esta estratégia usa a teoria das ondas de preço combinada com a média plana para procurar oportunidades de formação de tendências, estabelecer paradas razoáveis e rastrear paradas para controlar o risco, com o objetivo de maximizar os lucros. A estratégia abre posições apenas em períodos de negociação designados e evita a volatilidade do mercado em determinados momentos.

Princípio da estratégia

  • Calcula a média dos preços usando a média móvel SMMA, filtrando o ruído do mercado de ondas, identificando a direção da tendência
  • Os preços de ondas são avaliados com base nos preços mais altos e mais baixos de um determinado período, identificando pontos de mudança de tendência
  • A tendência é de que os preços subiram quando a onda de preços ultrapassou a média móvel e aumentaram quando a onda de preços desceu.
  • Configurar um ponto de parada com um traçado de parada baseado em ATR para controlar o risco
  • Abrir posições apenas em horários de negociação designados, evitando oscilações de mercado no fim de semana e em determinados períodos do dia
  • Parar de negociar ao emitir um sinal de reversão

Análise de vantagens

  • O uso da teoria das ondas de preço para determinar os pontos de inflexão de preços, auxiliado pela direção da tendência com a média móvel, pode ser eficaz para identificar a tendência
  • A configuração do ponto de parada com o rastreamento dinâmico do ATR permite o controle efetivo de um único stop loss
  • Abrir posições apenas em horários de negociação com liquidez evita deslizamentos desnecessários e fortes flutuações em determinados períodos de tempo
  • Seguindo rigorosamente o princípio da parada em linha paralela, a parada em caso de sinal de inversão pode maximizar o lucro

Análise de Riscos

  • Quando o julgamento de ondas de preços não é preciso, pode haver revezes de negociação em áreas fora de tendência
  • O atraso da média móvel pode ter perdido a reviravolta da tendência
  • Um ponto de parada pequeno pode ser facilmente bloqueado, e um grande pode causar um prejuízo maior.
  • O travão fixo não pode ser ajustado de forma flexível para diferentes situações

Resolução de riscos:

  • Otimizar os parâmetros do ciclo de ondas e ajustar os parâmetros da média de deslocamento
  • Combinado com Stochastics indicadores e outros para determinar um sinal de reversão
  • Ponto de paragem e paragem de otimização dinâmica

Direção de otimização

  • Optimizar os parâmetros do ciclo de ondas para encontrar o melhor ciclo de média plana
  • Junta-se a inversão de julgamento do indicador de Stoch, para filtrar o sinal de set de falha de ruptura
  • Tente ajustar dinamicamente o ponto de parada e o ponto de parada
  • Ampliar a banda de suspensão para evitar o bloqueio
  • Parâmetros de otimização de acordo com diferentes variedades e períodos de negociação

Resumir

Esta estratégia integra a teoria das ondas de preço com os indicadores de média plana, evitando o tempo de negociação designado, confirmando a entrada de entrada, definindo o ponto de parada e rastreando o ponto de parada para controlar o risco, parando quando ocorrem sinais de reversão. A estratégia pode melhorar ainda mais a estabilidade e a taxa de retorno com a otimização de parâmetros e a adição de indicadores auxiliares.

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

//@version=4
strategy("FX Strategy Based on Fractals and SMMA", overlay=true)

// パラメータ
SMMAPeriod1 = input(30, title="SMMA Period")
StopLoss1 = input(7, title="Stop Loss %")
TrailingStopCoef1 = input(2.7, title="Trailing Stop Coefficient")
fractalPeriod = input(5, title="Fractal Period")

// SMMAの計算関数
smma(src, length) =>
    var float smma = na
    if na(smma[1])
        smma := sma(src, length)
    else
        smma := (smma[1] * (length - 1) + src) / length
    smma

// フラクタルの近似
highFractal = high[2] > high[1] and high[2] > high[3] and high[2] > high[4] and high[2] > high
lowFractal = low[2] < low[1] and low[2] < low[3] and low[2] < low[4] and low[2] < low

// エントリー条件
longEntrySignal = lowFractal and close[1] < smma(close, SMMAPeriod1)
shortEntrySignal = highFractal and close[1] > smma(close, SMMAPeriod1)

// エントリー実行
if (longEntrySignal)
    strategy.entry("Long", strategy.long)

if (shortEntrySignal)
    strategy.entry("Short", strategy.short)

// トレーリングストップの計算
atrValue = atr(10)
longStopPrice = close - atrValue * TrailingStopCoef1
shortStopPrice = close + atrValue * TrailingStopCoef1

// トレーリングストップの設定
strategy.exit("Exit Long", "Long", stop=longStopPrice)
strategy.exit("Exit Short", "Short", stop=shortStopPrice)

// バックテスト期間の設定(MetaTraderのバックテストと同じ期間)
startYear = 2007
startMonth = 05
startDay = 01
endYear = 2022
endMonth = 04
endDay = 01

startDate = timestamp(startYear, startMonth, startDay, 00, 00)
endDate = timestamp(endYear, endMonth, endDay, 23, 59)

// バックテスト期間内でのみトレードを実行
if (time >= startDate and time <= endDate)
    if (longEntrySignal)
        strategy.entry("Long", strategy.long)
    if (shortEntrySignal)
        strategy.entry("Short", strategy.short)