Estratégia de cruzamento da média móvel tripla

Autora:ChaoZhang, Data: 2023-11-06 09:48:33
Tags:

img

Resumo

A estratégia de cruzamento de média móvel tripla usa o cruzamento de médias móveis em diferentes períodos de tempo como sinais de negociação, pertencentes a estratégias de tendência.

Estratégia lógica

Em primeiro lugar, a estratégia calcula as médias móveis de curto prazo (default 7 dias), de médio prazo (default 25 dias) e de longo prazo (default 99 dias).

  1. Quando a MA de curto prazo cruza a MA de médio prazo, é gerado um sinal de compra.

  2. Quando a MA de curto prazo cruza abaixo da MA de médio prazo, é gerado um sinal de venda.

  3. Quando o MA a curto prazo cruza o MA a longo prazo, é gerado um sinal de compra rápida.

  4. Quando o MA a curto prazo cruza abaixo do MA a longo prazo, é gerado um sinal de venda rápida.

A estratégia acredita que o cruzamento de MA de curto prazo acima do MA de médio prazo indica uma tendência de alta, de modo que um sinal de compra é gerado. E o cruzamento de MA de curto prazo abaixo do MA de médio prazo indica uma tendência de queda, de modo que um sinal de venda é gerado. Da mesma forma, o cruzamento entre o MA de curto prazo e o MA de longo prazo também gera sinais de negociação rápidos para capturar mudanças de tendência de longo prazo.

Análise das vantagens

  • A lógica estratégica é simples e fácil de compreender e implementar.

  • O uso de análises de vários prazos pode capturar eficazmente as alterações nas tendências do mercado.

  • Os parâmetros podem ser otimizados ajustando os períodos de MA.

  • Os sinais de cruzamento visual refletem intuitivamente as mudanças de tendência.

Análise de riscos

  • Os MAs têm problemas atrasados e podem perder pontos de reversão da tendência.

  • Muitos sinais falsos quando a MA de curto prazo cruza acima da MA de longo prazo em mercados de alta.

  • Muitos sinais falsos quando a MA a curto prazo cruza abaixo da MA a longo prazo em mercados de baixa.

  • Os sinais de negociação rápida podem ser demasiado sensíveis, aumentando a frequência de negociação e as comissões.

Os ajustes adequados dos períodos de MA ou a adição de condições de filtro podem ajudar a otimizar e reduzir os falsos sinais.

Orientações de otimização

  • Adicionar condições de filtragem, tais como gerar sinais apenas quando se cumprem determinados volumes de negociação ou percentagens de variação de preços.

  • Combine com outros indicadores como MACD, KDJ para evitar transações errôneas quando não há tendência clara.

  • Otimizar as combinações de períodos de MA para reduzir os falsos sinais.

  • Distinguir os mercados de alta e baixa, otimizar os parâmetros de compra e venda separadamente.

  • Considere os custos de negociação, ajuste os parâmetros de negociação rápida para controlar a frequência.

Resumo

A estratégia triple MA crossover é relativamente simples, julgando a direção da tendência através do crossover de diferentes MAs de período de tempo para gerar sinais de negociação. É fácil de implementar com ajustes de parâmetros flexíveis para capturar mudanças de tendência. Mas também tem os problemas de MA atrasado e sinais falsos excessivos. Métodos como adicionar filtros e otimizar combinações de parâmetros podem melhorar a estratégia.


/*backtest
start: 2023-10-06 00:00:00
end: 2023-11-05 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/
// © dadashkadir

//@version=4
strategy("Üç Hareketli Ortalama Str.", overlay=true, initial_capital=10000, commission_value=0.047, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=0, calc_on_order_fills=true)

kisa = input(title = "Kısa Vade - Gün", defval = 7,  minval = 1)
orta = input(title = "Orta Vade - Gün", defval = 25, minval = 1)
uzun = input(title = "Uzun Vade - Gün", defval = 99, minval = 1)

sma7  = sma(close, kisa)
sma25 = sma(close, orta)
sma99  = sma(close, uzun)

alTrend  = plot (sma7, color=#2323F1, linewidth=2, title="Har.Ort. Kısa Vade", transp=0)
satTrend = plot (sma25, color=#FF0C00, linewidth=3, title="Har.Ort. Orta Vade", transp=0)
ort99    = plot (sma99, color=#DFB001, linewidth=3, title="Har.Ort. Uzun Vade", transp=0)

zamanaralik = input (2020, title="Backtest Başlangıç Tarihi")

al  = crossover (sma7, sma25) and zamanaralik <= year
sat = crossover (sma25, sma7) and zamanaralik <= year

hizlial = crossover (sma7, sma99) and zamanaralik <= year
hizlisat = crossover (sma99, sma7) and zamanaralik <= year

alkosul  = sma7 >= sma25
satkosul = sma25 >= sma7

hizlialkosul  = sma7 >= sma99
hizlisatkosul = sma99 >= sma7

plotshape(al,  title = "Buy",  text = 'Al',  style = shape.labelup,   location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny)
plotshape(sat, title = "Sell", text = 'Sat', style = shape.labeldown, location = location.abovebar, color= color.red,   textcolor = color.white, transp = 0, size = size.tiny)

plotshape(hizlial,  title = "Hızlı Al",  text = 'Hızlı Al',  style = shape.labelup,   location = location.belowbar, color= color.blue, textcolor = color.white, transp = 0, size = size.tiny)
plotshape(hizlisat, title = "Hızlı Sat", text = 'Hızlı Sat', style = shape.labeldown, location = location.abovebar, color= #6106D6 , textcolor = color.white, transp = 0, size = size.tiny)

fill (alTrend, satTrend, color = sma7 >= sma25? #4DFF00 : #FF0C00, transp=80, title="Al-Sat Aralığı")
//fill (ort99, satTrend, color = sma7 >= sma25? #6106D6 : color.blue, transp=80, title="Hızlı Al-Sat Aralığı")

if (al)
    strategy.entry("LONG", strategy.long)
if (sat)
    strategy.entry("SHORT", strategy.short)
//if (hizlial)
//    strategy.entry("My Short Entry Id", strategy.long)
//if (hizlisat)
//    strategy.entry("My Short Entry Id", strategy.short)    

Mais.