Estratégia de polígono de média móvel


Data de criação: 2023-10-31 14:53:50 última modificação: 2023-10-31 14:53:50
cópia: 1 Cliques: 674
1
focar em
1617
Seguidores

Estratégia de polígono de média móvel

Visão geral

A estratégia de equilíbrio móvel de múltiplos lados é uma estratégia de acompanhamento de tendências que consiste na construção de múltiplos lados por meio de equilíbrios móveis de múltiplos períodos diferentes e na detecção de sinais de negociação através da ruptura do polígono. A estratégia considera fatores de múltiplos períodos de tempo de forma integrada, filtrando efetivamente o ruído do mercado e capturando as principais tendências.

Princípio da estratégia

A estratégia consiste em inserir EMAs de diferentes períodos, como EMAs de 3o, 7o e 13o períodos, e traçá-los em um canal poliédrico no gráfico de preços. Um sinal de ruptura é gerado quando o preço atravessa vários EMAs acima; um sinal de ruptura é gerado quando o preço atravessa vários EMAs abaixo.

O código determina o sinal de ruptura superior através de close>ema1 e ema1>ema2 e ema2>ema3, e o sinal de ruptura inferior através de close. Quando você define as condições de compra e venda, adicione a condição de tempo time_cond, limitando o alcance de retomada . Quando você executa a operação de compra e venda, utilize a proteção de stop loss móvel para proteger o lucro .

Vantagens estratégicas

A maior vantagem da estratégia é a capacidade de capturar eficazmente a direção das principais tendências, usando várias linhas de equilíbrio móvel para construir um mecanismo de filtragem, evitando a influência do ruído de curto prazo do mercado e reduzindo os falsos sinais. O stop loss móvel permite que o stop loss proteja os lucros a tempo.

Riscos e soluções

O principal risco desta estratégia é a incapacidade de definir o ponto de reversão da tendência, que pode ser uma perda de mercado em caso de reversão da tendência. Além disso, a configuração inadequada da combinação de equilíbrio também pode levar a uma frequência de negociação excessiva ou a um atraso no sinal. O risco pode ser reduzido através da otimização da combinação de parâmetros da linha de equilíbrio, da adição de outros indicadores para determinar a reversão e da ampliação do intervalo de parada.

Direção de otimização

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

  1. Optimizar os parâmetros de ciclo da média móvel para encontrar a melhor combinação de parâmetros

  2. Adicionar indicadores de sinais de reversão, como RSI, MACD, etc., em pontos de reversão de tendência, para parar o desvio em tempo hábil

  3. Optimizar a amplitude e o desvio do stop móvel para reduzir a probabilidade de que o stop seja acionado

  4. Otimização de parâmetros para diferentes variedades para melhorar a adaptabilidade da estratégia

Resumir

A estratégia de MOL é uma estratégia de acompanhamento de tendências confiável e eficaz. Sua maior vantagem é capturar a direção da tendência principal e, ao mesmo tempo, filtrar o ruído.

Código-fonte da estratégia
/*backtest
start: 2023-09-30 00:00:00
end: 2023-10-30 00:00:00
period: 1h
basePeriod: 15m
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/
// © Crypto-Oli

//@version=4
strategy("BLANK Strategy + TSL", initial_capital=5000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, pyramiding=1, commission_value=0.075, overlay=true)

////////////////////////////////////////////////////////////////////////////////
// BACKTESTING RANGE
 
// From Date Inputs
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2019, title = "From Year", minval = 1970)
 
// To Date Inputs
toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)
 
// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
 
////////////////////////////////////////////////////////////////////////////////


/// YOUR INPUTS BELOW - DELET EXAPLES ///


ema1=ema(close,input(3))
ema2=ema(close,input(7))
ema3=ema(close,input(13))


/// PLOTS IF YOU NEED BELOW - DELET EXAPLES ///


plot(ema1, "EMA1", color.yellow)
plot(ema2, "EMA2", color.white)
plot(ema3, "EMA3", color.blue)


/// YOUR CONDITIONS BELOW - DELET EXAPLES ///


longCondition = close>ema1 and ema1>ema2 and ema2>ema3 and time_cond
shortCondition = close<ema1 and ema1<ema2 and ema2<ema3 and time_cond

/// EXECUTION ///


if (longCondition)
    strategy.entry("Long", strategy.long)
strategy.exit("Long Exit", "Long", trail_points = close * 0.05 / syminfo.mintick, trail_offset = close * 0.02 / syminfo.mintick)

if (shortCondition)
    strategy.entry("Short", strategy.short)
strategy.exit("Short Exit", "Short", trail_points = close * 0.05 / syminfo.mintick, trail_offset = close * 0.02 / syminfo.mintick)