Estratégia Golden Cross e Death Cross com base na média móvel


Data de criação: 2024-01-29 16:02:08 última modificação: 2024-01-29 16:02:08
cópia: 0 Cliques: 592
1
focar em
1617
Seguidores

Estratégia Golden Cross e Death Cross com base na média móvel

Visão geral

A estratégia baseia-se no princípio da forca de ouro e a forca de morte do equilíbrio móvel para criar um sinal de negociação. Ele combina três médias móveis com diferentes configurações de parâmetros em curto, médio e longo prazo, e determina o estado de vazio do mercado comparando o alto e baixo relacionamento entre as três médias, gerando um sinal de negociação.

Princípio da estratégia

A estratégia estabelece três médias móveis: uma média móvel simples de curto prazo, uma média móvel ponderada de médio prazo e uma média móvel indexada de longo prazo. Especificamente, a linha SMA de 1 comprimento, a linha WMA de 20 comprimento e a linha EMA de 25 comprimento.

Quando a linha de curto prazo SMA atravessa a linha de WMA médio e o preço de fechamento é superior à linha de WMA, indica que o mercado inverte de baixo para cima, formando um sinal de múltiplas cabeças; quando a linha de curto prazo SMA atravessa a linha de WMA médio ou o preço de fechamento abaixo da linha de WMA, é um sinal de cabeças vazias. Portanto, a estratégia julga o estado de múltiplas cabeças do mercado comparando os altos, baixos e cruzamentos das três linhas médias.

Análise de vantagens

A estratégia combina três linhas de equilíbrio diferentes, de curto, médio e longo, para responder às mudanças de mercado em diferentes períodos e melhorar a precisão de captura de tendências. Em particular, o WMA de médio prazo tem um melhor efeito de desaceleração de fluctuação e pode filtrar efetivamente os sinais de erro. Além disso, a estratégia só emite sinais de construção de posição quando os sinais de SMA e os preços de encerramento de múltiplos terminais atingem uma alta consistência, o que evita as whipsaws e garante a eficácia de cada entrada.

Análise de Riscos

A estratégia pode ter riscos de desinformação. Quando o SMA de curto prazo produz um sinal de erro, pode causar perdas desnecessárias, pois a estratégia depende rigorosamente do sinal da linha SMA. Além disso, a estratégia é sensível aos parâmetros, e quando o mercado entra em uma zona de choque e os parâmetros são ajustados incorretamente, pode produzir uma grande quantidade de transações erradas.

Para evitar esses riscos, é recomendável ajustar o comprimento da linha média, relaxar as condições de negociação adequadamente e definir um stop loss para controlar as perdas individuais. Quando a tendência do mercado não é óbvia, a negociação estratégica também pode ser suspensa temporariamente.

Direção de otimização

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

  1. Adicionar mais tipos de indicadores de linha média, como linhas KC, para formar um conjunto de indicadores e melhorar a precisão de julgamento

  2. Fatores que aumentam o volume de transações, como o volume de transações

  3. Combinando os indicadores de volatilidade, evitar a falha de um cenário de choque

  4. Treinamento e otimização de parâmetros por meios como aprendizado de máquina

Resumir

A estratégia é simples e confiável para avaliar a hiperactividade do mercado com base na relação em tempo real entre os preços de cruzamento e fechamento das três linhas de equilíbrio. Combina linhas de equilíbrio em diferentes intervalos de comprimento para detectar tendências de forma eficaz e oferecer uma melhor qualidade de sinal. A estratégia pode aumentar ainda mais a visão e a estabilidade, ajustando adequadamente os parâmetros e introduzindo mais indicadores auxiliares.

Código-fonte da estratégia
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA Candle Close Strategy KHANH 11/11/2023", overlay=true, initial_capital=100, commission_type=strategy.commission.percent, commission_value=0.0000005, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

len1 = input.int(1, title="SMA #1 Length", minval=1)
src1 = input(close, title="SMA Source #1")
out1 = ta.sma(src1, len1)
plot(out1, title="SMA #1", color=close >= out1 ? color.rgb(120, 123, 134, 100) : color.rgb(120, 123, 134, 100), linewidth=1)

len2 = input.int(20, title="HMA #2 Length", minval=1)
src2 = input(close, title="HMA Source #2")
out2 = ta.hma(src2, len2)
plot(out2, title="HMA #2", color=close >= out2 ? color.rgb(253, 255, 254, 100) : color.rgb(255, 255, 255, 100), linewidth=1)

len3 = input.int(25, title="EMA #3 Length", minval=1)
src3 = input(close, title="EMA Source #3")
out3 = ta.ema(src3, len3)
plot(out3, title="EMA #3", color=close >= out3 ? color.blue : color.blue, linewidth=1)

// Define the long condition
longCondition = (out1 > out2 and close > out2)

// Define the short condition
shortCondition = (out1 < out2 or close < out2)

// Entry conditions
if (longCondition)
    strategy.entry("Long",strategy.long)
else if (shortCondition)
    strategy.entry("Short", strategy.short)

// Trade channel plot
PeriodLookBack = input(55, title="Period Look Back")
xHighest55 = request.security(syminfo.tickerid, timeframe.period, ta.highest(PeriodLookBack))
xLowest55 = request.security(syminfo.tickerid, timeframe.period, ta.lowest(PeriodLookBack))
plot(xHighest55[1], color=color.red, title="HH")
plot(xLowest55[1], color=color.green, title="LL")



//@version=5
//indicator("Custom Moving Averages", shorttitle="CMA", overlay=true)

shortLength = input(defval=40, title="Short Length")
longLength = input(defval=80, title="Long Length")

// Sử dụng khung thời gian của biểu đồ đang sử dụng thay vì cố định là "D"
shortTopBorder = request.security(syminfo.tickerid, timeframe.period, ta.highest(high, shortLength))
shortBottomBorder = request.security(syminfo.tickerid, timeframe.period, ta.lowest(low, shortLength))

longTopBorder = request.security(syminfo.tickerid, timeframe.period, ta.highest(high, longLength))
longBottomBorder = request.security(syminfo.tickerid, timeframe.period, ta.lowest(low, longLength))

shortAverageLine = (shortTopBorder + shortBottomBorder) / 2
longAverageLine = (longTopBorder + longBottomBorder) / 2

plot(shortAverageLine, color=color.new(#fc0000, 0))
plot(longAverageLine, color=color.new(#01ff27, 0))