
A estratégia de quantificação de média móvel cruzada é uma estratégia de negociação quantitativa que gera sinais de compra e venda com base em sinais de cruzamento de duas médias móveis de períodos diferentes. A estratégia usa duas médias móveis simples de 9 e 20 dias, gerando um sinal de compra quando a média curta atravessa a média longa de baixo para cima e um sinal de venda quando a média curta atravessa a média longa de cima para baixo.
O núcleo da estratégia é o uso de sinais de cruzamento de diferentes médias móveis periódicas para capturar os pontos de inflexão das tendências do mercado. Concretamente, os principais passos da estratégia são os seguintes:
Através dos passos acima, a estratégia pode comprar a primeira linha positiva depois de atravessar a linha média de longo prazo na linha média de curto prazo e vender a primeira linha negativa depois de atravessar a linha média de longo prazo abaixo da linha média de curto prazo, permitindo a construção de uma posição de paz no momento da mudança de tendência.
A estratégia de quantificação da média móvel cruzada tem as seguintes vantagens:
Apesar das vantagens de uma estratégia de quantificação de médias móveis cruzadas, existem os seguintes riscos:
Os riscos acima podem ser melhorados com as seguintes medidas:
Optimização de parâmetros: Otimização dos parâmetros periódicos das médias móveis para encontrar combinações de parâmetros mais adequados para o mercado atual e melhorar o desempenho da estratégia.
Filtragem de sinais: baseado em equilíbrio de linha cruzada, introdução de outros indicadores ou condições técnicas, como MACD, RSI, etc., para a confirmação secundária do sinal de negociação, aumentando a confiabilidade do sinal.
Gerenciamento de posições: De acordo com a intensidade da tendência do mercado, a volatilidade e outros fatores, o tamanho da posição é ajustado dinamicamente, aumentando a posição quando a tendência é forte, reduzindo a posição quando a tendência é incerta ou flutuante, aumentando o risco de ganho.
Stop loss: introdução de um mecanismo de stop loss razoável para controlar o limite de risco de uma única transação, ao mesmo tempo em que permite que os lucros corram, aumentando a receita da estratégia.
Coberturas de mais de um espaço: considerar a inclusão de sinais de contra-balanço na estratégia, mantendo simultaneamente posições de mais de um espaço, cobrindo o risco de mercado e aumentando a estabilidade da estratégia.
As orientações de otimização acima podem ajudar a melhorar o desempenho da estratégia, mas a implementação específica também precisa de ajustes e testes de acordo com a situação real.
A estratégia de quantificação de cruzamento de médias móveis é uma estratégia de acompanhamento de tendências simples e eficaz para capturar mudanças de tendências de mercado por meio de sinais de cruzamento de médias móveis de diferentes períodos. A lógica da estratégia é clara e adaptável, mas também há problemas de atraso e risco de mercado de turbulência.
/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
period: 1h
basePeriod: 15m
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/
// © ZeroHeroTrading
//@version=5
strategy("Simple 9/20 Crossover", overlay=true)
// Define moving averages
ma9 = ta.sma(close, 9)
ma20 = ta.sma(close, 20)
// Set persistent variable to keep track of crossover condition
var bool crossoverCondition = false
// 9 MA crosses above 20 MA
// Set crossover condition to true
if ta.crossover(ma9, ma20)
crossoverCondition := true
// 9 MA crosses under 20 MA
// Reset crossover condition to false
if ta.crossunder(ma9, ma20)
crossoverCondition := false
// Set buy and sell signals
buySignal = crossoverCondition and close > open and close > ma9
sellSignal = close < ma9
// Execute trades based on signals
if (buySignal)
strategy.entry("Long", strategy.long)
// Avoid repeat entries by resetting crossover condition to false
crossoverCondition := false
if (sellSignal)
strategy.close("Long")
// Plot moving averages on the chart
plot(ma9, color=color.blue)
plot(ma20, color=color.red)