Estratégia de Crossover de Média Móvel Dupla


Data de criação: 2023-11-22 16:10:21 última modificação: 2023-11-22 16:10:21
cópia: 0 Cliques: 607
1
focar em
1617
Seguidores

Estratégia de Crossover de Média Móvel Dupla

Visão geral

Trata-se de uma estratégia de negociação simples e quantitativa baseada em indicadores de equilíbrio. Utiliza um binário de equilíbrio rápido e lento para determinar o momento de compra e venda. Produz um sinal de compra quando a linha rápida quebra a linha lenta a partir da direção inferior; Produz um sinal de venda quando a linha rápida quebra a linha lenta a partir da direção superior.

Princípio da estratégia

A estratégia baseia-se principalmente na função de acompanhamento de tendências na linha média. Os parâmetros da linha rápida são pequenos e respondem rapidamente às mudanças de preço; os parâmetros da linha lenta são grandes e representam tendências de longo prazo. A linha rápida que atravessa a linha lenta de baixo significa que a tendência de curto prazo começa a se inverter e entra em uma tendência ascendente; e a linha rápida que atravessa a linha lenta de cima significa que a tendência de curto prazo começa a se inverter e entra em uma tendência descendente.

Especificamente, a estratégia define um duplo equilíbrio entre o dia 5 (linha rápida) e o dia 34 (linha lenta). Calcule diariamente o valor desses dois equilíbrios e compare se a linha rápida quebra a linha lenta a partir da direção inferior. Se ocorrer um sinal de golden fork, faça mais; se ocorrer um sinal de dead fork, leve a posição.

Análise de vantagens

A estratégia é simples de entender e fácil de implementar. Em comparação com outras estratégias complexas, é mais adequada para iniciantes em negociação quantitativa.

A estratégia de dupla linha média pode filtrar o ruído do mercado e capturar as principais tendências. A estratégia de dupla linha média pode se adaptar às mudanças de mercado em diferentes períodos, ajustando o parâmetro de dias da linha média rápida e lenta.

A estratégia também possui um mecanismo de parada de perdas. Quando o preço começa a se inverter, a linha de equilíbrio se torna frágil, e a perda é interrompida em tempo hábil para controlar o risco de forma eficaz.

Análise de Riscos

A estratégia de dupla equilíbrio pode apresentar riscos de perda de parada, falha de ajuste de curva e outros. Em particular, existem principalmente os seguintes problemas:

  1. Há um atraso na linha média, que pode ocorrer quando o sinal é emitido apenas depois de uma reinicialização completa. Nesse momento, o lucro se transforma em perda.

  2. Em situações de turbulência, pode haver vários sinais falsos, o que pode levar a transações desnecessárias, aumentando os custos de transação e a perda de pontos de deslizamento.

  3. A estratégia baseia-se exclusivamente em indicadores técnicos, sem a combinação com a análise fundamental.

  4. Não se tem em conta a gestão de posições e o controlo de riscos. Um acidente inesperado pode fazer a estratégia explodir.

Direção de otimização

Para aproveitar melhor os benefícios da estratégia e minimizar os riscos, pode-se fazer otimizar a estratégia em alguns aspectos:

  1. A combinação de indicadores de tendência e oscilação, que estabelecem condições de entrada mais rigorosas, filtra os falsos sinais. Por exemplo, MACD ou KDJ indicadores.

  2. Adicione um mecanismo de parada apropriado. Se a queda for determinada após o Gold Forks, a parada será interrompida.

  3. Optimizar a combinação de parâmetros diários da linha média lenta e rápida, ajustando-se às mudanças de preços de diferentes períodos. Pode-se fazer a otimização de combinações de parâmetros para encontrar o melhor parâmetro.

  4. A tendência geral pode ser avaliada com base no índice de grandes mercados, evitando a alta frequência de negociação em situações de turbulência.

  5. Combinação de mudanças no volume de transação para verificar a confiabilidade do sinal de tendência. Por exemplo, o aumento deve ter condições de ruptura de volume.

Resumir

A estratégia de dupla equilíbrio é uma estratégia de negociação quantitativa muito típica. Tem características simples, intuitivas e fáceis de implementar, o que é ideal para os iniciantes em negociação quantitativa aprenderem e dominarem. Os melhores resultados são obtidos com o teste e otimização contínua dos parâmetros.

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

//@version=2
////////////////////////////////////////////////////////////
// This strategy is a modification to the "Bill Williams, Awesome Oscillator
// (AO) Backtest" strategy (Copyright by HPotter v1.0 29/12/2016)
//
// This version of the strategy by Midnight Mouse. 10/4/2018
//
// DESCRIPTION
//
// This indicator plots the oscillator as a column where periods fit for buying
// are marked as green, and periods fit for selling as orange/brown. If the
// current value of AO (Awesome Oscillator) is > the previous, the period is
// deemed fit for buying and the indicator is marked green. If the AO values is
// not over the previous, the period is deemed fit for selling and the indicator 
// is marked orange/brown.
//
// You can change long to short in the Input Settings
//
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////

strategy("Awesome Oscillator.MMouse_Lager_BCE")

// === SETTINGS ===

// Strategy start date
FromMonth   = input(defval = 1,    title = "From Month", minval = 1)
FromDay     = input(defval = 1,    title = "From Day",   minval = 1)
FromYear    = input(defval = 2017, title = "From Year",  minval = 2014)

// Strategy settings
nLengthSlow = input(34, minval=1,  title="Length Slow")
nLengthFast = input(5,  minval=1,  title="Length Fast")
allowShorts = input(false,         title="Include Short Trades")
reverse     = input(false,         title="Trade reverse")


// === BODY ===

// Use Heikin-Ashi candles for the buy/sell signal
ha_t        = heikinashi(syminfo.tickerid)
ha_high     = security(ha_t, timeframe.period, high)
ha_low      = security(ha_t, timeframe.period, low)
length      = input( 14 )
price       = open
vrsi        = rsi(price, length)

// Calc (H+L)/2 for each length
xSMA1_hl2   = sma((ha_high + ha_low)/2, nLengthFast)
xSMA2_hl2   = sma((ha_high + ha_low)/2, nLengthSlow)

// Get SMA difference (Fast - Slow)
xSMA1_SMA2  = xSMA1_hl2 - xSMA2_hl2

// Derive the color of the column
cClr = xSMA1_SMA2 > xSMA1_SMA2[1] ? #93c47d : #ad5e1d

// Determine the position to take (Long vs. Short)
pos = iff(xSMA1_SMA2 > xSMA1_SMA2[1],  1, iff(xSMA1_SMA2 < xSMA1_SMA2[1], -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos))

// Only apply strategy from the start date
if (time >= timestamp(FromYear, FromMonth, FromDay, 00, 00))
    if (possig == 1)
        // Market is currently fit for a Long position
        strategy.entry("Long", strategy.long)

    if (possig == -1)
        // Market is currently fit for a Short position
        if(allowShorts)
            // Shorts are allowed. Record a Short position
            strategy.entry("Short", strategy.short)	   	    
        else
            // Shorts are not allowed. Closec the Long position.
            strategy.close("Long")

// Define the candle colors
//barcolor(possig == -1 ? red : 
//         possig ==  1 ? green : 
//         blue )

// Plot the oscillator
plot(xSMA1_SMA2, style=columns, linewidth=1, color=cClr)