Baseado na estratégia de cruzamento de média móvel dupla

EMA SMA DEMA TEMA WMA VWMA
Data de criação: 2024-05-14 15:37:54 última modificação: 2024-05-14 15:37:54
cópia: 3 Cliques: 697
1
focar em
1617
Seguidores

Baseado na estratégia de cruzamento de média móvel dupla

Visão geral

A estratégia de cruzamento de duas médias móveis é uma estratégia de negociação quantitativa comum. A estratégia usa médias móveis de dois períodos diferentes como sinal de compra e venda, comprando quando a média curta atravessa a média longa e vendendo quando a média curta atravessa a média longa. O código da estratégia suporta vários tipos de médias móveis comuns, como média móvel simples (SMA), média móvel indexada (EMA), média móvel binária (DEMA), média móvel tri-indicativa (TEMA), média móvel ponderada (WMA) e média móvel ponderada (VMA), e pode ser configurada de forma flexível para medias médias de curto e médio período.

Princípio da estratégia

O princípio central da estratégia é aproveitar as características de tendência e atraso de duas médias móveis de diferentes períodos para capturar a tendência dos preços. Em geral, a média curta é mais sensível às mudanças de preço, enquanto a média longa é relativamente atrasa. Quando os preços estão em uma tendência ascendente, a média curta move-se para cima antes da média longa e, finalmente, atravessa a média longa, formando um sinal de compra “Gold Fork”; por outro lado, quando os preços estão em uma tendência descendente, a média curta move-se para baixo antes da média longa e, finalmente, atravessa a média longa, formando um sinal de venda “Dead Fork”.

Vantagens estratégicas

  1. Simples e fácil de usar: A estratégia de cruzamento de médias móveis duplas é uma estratégia de negociação quantitativa simples de entender e de implementar, adequada para traders novatos aprenderem e usarem.

  2. Ampla aplicabilidade: A estratégia pode ser aplicada a vários mercados financeiros e indicadores de negociação, como ações, futuros, divisas, criptomoedas, etc., com grande universalidade.

  3. Flexibilidade de parâmetros: O código da estratégia suporta vários tipos de médias móveis e tipos de preços comuns, permitindo que o usuário configure os parâmetros de forma flexível de acordo com suas necessidades, para se adaptar a diferentes ambientes de mercado e estilos de negociação.

  4. Seguimento de tendências: através de sinais de cruzamento de duas linhas médias periódicas diferentes, a estratégia pode capturar melhor as principais tendências de preços, ajudando a evitar a negociação de contrapartida em favor da tendência.

Risco estratégico

  1. Atraso: A média móvel é, em essência, um indicador de acompanhamento de tendências, existindo um certo atraso, que pode perder os melhores momentos de entrada e saída.

  2. Falha em mercados de turbulência: em mercados de turbulência ou em situações de liquidação horizontal, os preços flutuam muito e os sinais de cruzamento de linha média são frequentes, o que pode levar a estratégias de negociação frequentes, resultando em custos de negociação elevados e perda de capital.

  3. Dificuldade de otimização de parâmetros: a escolha do ciclo de linha média tem grande influência sobre a eficácia da estratégia, mas os parâmetros ótimos geralmente variam de acordo com a situação do mercado. É difícil encontrar um conjunto de parâmetros ótimos que seja acertado em todos os lugares.

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

  1. Introdução de filtro de tendência: com base no sinal de cruzamento de equilíbrio, pode ser feito um filtro de tendência em combinação com outros indicadores de tendência, como MACD, ADX, etc. O filtro de tendência só é usado quando a tendência é clara, evitando a negociação frequente em mercados de turbulência.

  2. Optimizar o Stop Loss: Incluir uma lógica de stop loss razoável na estratégia, como stop loss móvel, stop loss de volatilidade, etc., para controlar o risco de uma única transação e aumentar a taxa de retorno do risco da estratégia.

  3. Otimização de parâmetros dinâmicos: Para diferentes ambientes de mercado, pode ser feito periodicamente otimização dinâmica de parâmetros, como o ciclo de linha média, para que a estratégia possa se adaptar às mudanças do mercado e melhorar a estabilidade.

  4. Combinação de múltiplos fatores: o sinal de cruzamento de duas médias móveis é combinado com outros fatores de quantificação efetivos (como volume de movimento, valor, volume de transação, etc.) para formar uma estratégia de múltiplos fatores mais estável e eficaz.

Resumir

A estratégia de cruzamento de duas médias móveis é uma estratégia de rastreamento de tendências simples e clássica para capturar a tendência de preços através de sinais de cruzamento de duas médias periódicas diferentes, adequadas para mercados de tendências. Mas a estratégia também tem problemas de atraso e dificuldade de otimização de parâmetros, que precisam de otimização e melhoria em combinação com outros métodos, como filtragem de tendências, otimização de parâmetros dinâmicos, combinação de múltiplos fatores, etc., para melhorar a aplicabilidade e a robustez da estratégia.

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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SustainableInvestment

//@version=5
strategy("Moving average strategy (이동평균선 전략)", overlay=true)

// === INPUTS ===

basisType   = input.string(defval = "EMA", title = "MA Type: SMA, EMA, DEMA, TEMA, WMA, VWMA ",options=["SMA", "EMA", "DEMA", "TEMA", "WMA", "VWMA"])
shortLen    = input.int(defval = 1, title = "Short MA Period", minval = 1)
longLen    = input.int(defval = 20, title = "Long MA Period", minval = 1)
price       = input.string(defval = "Typical", title = "Price Type : Close, High, Open, Low, Typical, Center ",options=["Close", "High", "Open", "Low", "Typical", "Center"])

// === BASE FUNCTIONS ===
// 가격 종류 설정
priceType(price) =>
    Typical = (high+low+close)/3
    Center  = (high+low) / 2
    price=="High"?high : price=="Low"?low : price=="Open"?open : price=="Typical"?Typical : price=="Center"?Center : close

// 이동평균선 종류 설정
variant(type, src, len) =>
    v1 = ta.sma(src, len)                                                  // Simple
    v2 = ta.ema(src, len)                                                  // Exponential
    v3 = 2 * v2 - ta.ema(v2, len)                                          // Double Exponential
    v4 = 3 * (v2 - ta.ema(v2, len)) + ta.ema(ta.ema(v2, len), len)         // Triple Exponential
    v5 = ta.wma(src, len)                                                  // Weighted
    v6 = ta.vwma(src, len)                                                 // Volume Weighted
    
    type=="EMA"?v2 : type=="DEMA"?v3 : type=="TEMA"?v4 : type=="WMA"?v5 : type=="VWMA"?v6 : v1

longCondition = ta.crossover(variant(basisType, priceType(price), shortLen), variant(basisType, priceType(price), longLen))
if (longCondition)
    strategy.entry("Long Entry", strategy.long)

exitCondition = ta.crossunder(variant(basisType, priceType(price), shortLen), variant(basisType, priceType(price), longLen))
if (exitCondition)
    strategy.close("Long Entry","Long Exit")