
O sistema de estratégia quantitativa de cruzamento de múltiplos equilíbrios é uma estratégia de negociação baseada em análise técnica, cuja ideia central é identificar mudanças de tendências de mercado monitorando as relações cruzadas entre as diferentes médias móveis periódicas e, assim, gerar sinais de compra e venda. A estratégia gera um sinal de compra ao atravessar uma linha lenta na linha rápida e um sinal de venda ao atravessar uma linha lenta abaixo da linha rápida, comparando a posição relativa de uma média móvel rápida (default 9 cycle) e uma média móvel lenta (default 21 cycle). A flexibilidade da estratégia agora suporta vários tipos de equilíbrios, incluindo a média móvel simples (SMA), a média móvel de índices (EMA), a média móvel ponderada (MAW) e a média móvel ponderada (MAW), permitindo que os comerciantes ajusten a diferentes condições de mercado e preferências pessoais.
Os princípios centrais da estratégia são baseados na função de indicação de tendências das médias móveis. As médias móveis são capazes de suavizar os dados de preços, filtrar o ruído das flutuações de preços de curto prazo e refletir a direção geral da tendência do mercado. As partes-chave da estratégia incluem:
Calculo de linha média: estratégia através de funções personalizadasf_maCalculação de diferentes tipos de médias móveis, com suporte a quatro tipos de SMA, EMA, WMA e VWMA, permitindo ao usuário escolher o tipo de média mais adequado ao atual cenário de mercado.
Geração de sinais de transação:
ta.crossoverA detecção de funções indica que o movimento de preços de curto prazo excede a tendência de longo prazo e que o mercado pode entrar em uma tendência ascendente.ta.crossunderA detecção de funções indica que a dinâmica de preços de curto prazo é menor do que a tendência de longo prazo e que o mercado pode entrar em uma tendência de queda.Execução de transações: uso de estratégiasstrategy.entryestrategy.closeFunções para executar operações de compra e venda, permitindo transações totalmente automatizadas.
Visualização: a estratégia é aprovadaplotA função traça uma média móvel e usalabel.newOs pontos de sinal de compra e venda são marcados no gráfico, permitindo que os comerciantes entendam intuitivamente a lógica da estratégia e o momento de negociação.
Capacidade de acompanhamento de tendências: a estratégia é baseada em cruzamentos de médias móveis, capazes de capturar efetivamente as mudanças de tendências do mercado, adequadas para negociações de tendências de médio e longo prazo. Os sinais de cruzamentos de medianas geralmente atrasam os pontos de mudança de preço, mas podem filtrar uma grande quantidade de negociações de ruído e melhorar a qualidade das negociações.
Ajuste de parâmetros flexível: a estratégia permite que o usuário personalize a duração do ciclo de média móvel rápida e lenta, bem como a escolha de diferentes tipos de métodos de cálculo de linha média, que podem ser otimizados de acordo com diferentes períodos de mercado e características de flutuação.
Suporte de tipos de média móvel múltipla: a estratégia suporta quatro tipos diferentes de média móvel, cada um com suas características:
Comentários visuais claros: A estratégia marca os sinais de compra e venda de forma intuitiva nos gráficos, ajudando os comerciantes a entender e validar rapidamente as decisões de negociação.
Codificação simples e eficiente: a codificação de estratégias é simples e clara, a ideia de programação funcional é adotada e a comutação flexível de computação linear através de funções personalizadas aumenta a manutenção e a extensibilidade do código.
Falsos sinais em mercados de choque: em mercados de colisão horizontal ou de choque, as médias móveis podem se cruzar com frequência, gerando uma grande quantidade de falsos sinais, resultando em excesso de negociação e gastos desnecessários em comissões. As soluções podem considerar o aumento de condições de filtragem adicionais, como indicadores de intensidade de tendência ou o estabelecimento de um limite mínimo de amplitude de cruzamento.
Problemas de atraso: As médias móveis são, em essência, indicadores de atraso, e podem não ser capazes de capturar os pontos de inflexão em tempo hábil em mercados de mudança acentuada, resultando em atrasos no tempo de entrada ou saída. As soluções podem ser consideradas em combinação com indicadores técnicos mais sensíveis, como o RSI ou o MACD, ou otimizar os parâmetros da linha de equilíbrio para reduzir o atraso.
Dependência de um único indicador: a estratégia depende apenas de uma média móvel cruzada para tomar decisões, carece de análise multidimensional e é vulnerável ao ruído do mercado. A solução pode considerar a integração de outros indicadores técnicos, como volume de transação, indicadores de taxa de flutuação ou pontos de resistência de suporte, para construir um sistema de negociação mais abrangente.
Falta de mecanismo de gestão de risco: A estratégia atual não possui um mecanismo de stop loss e stop-loss embutidos, o que pode levar a um retorno maior se a tendência se inverter, mas ainda não desencadear um sinal de cruzamento. Uma solução pode considerar a adição de stop loss dinâmico, como um stop loss de rastreamento ou um stop loss baseado no ATR.
Sensibilidade de parâmetros: a performance da estratégia é sensível à escolha de parâmetros de linha média, e diferentes ambientes de mercado podem exigir diferentes combinações de parâmetros. As soluções podem considerar testes de otimização de parâmetros ou implementar mecanismos de ajuste de parâmetros adaptativos.
Fusão de vários indicadores: integração de outros indicadores técnicos para confirmar sinais de negociação, como:
Melhorar a gestão de riscos:
Optimizado para filtragem de sinais:
Parâmetros adaptáveis:
Expansão da lógica de transação:
O sistema de estratégia de quantificação de cruzamento de linhas de múltiplos equilíbrios cria um sistema de negociação de acompanhamento de tendências simples e eficaz, monitorando a interação entre as diferentes médias móveis periódicas. Os principais benefícios da estratégia são sua lógica simples e fácil de entender, sua capacidade de ajuste de parâmetros flexíveis e sua adaptabilidade a diferentes ambientes de mercado. No entanto, como uma estratégia baseada em indicadores de atraso, ela também enfrenta riscos de falso sinal de mercado de tremor, atraso de sinal e dependência de um único indicador.
Para melhorar a robustez e a rentabilidade da estratégia, a integração de vários indicadores, a melhoria da gestão de risco, a otimização do mecanismo de filtragem de sinais, a auto-adaptação de parâmetros e a expansão da lógica de negociação podem ser otimizados. Em particular, a combinação de indicadores técnicos com volume de transação, estrutura de mercado e princípios de gestão de risco pode construir um sistema de negociação mais abrangente e robusto.
Em geral, esta estratégia baseada em equilíbrio de cruzamentos fornece um bom ponto de partida para a negociação quantitativa, adequada para os iniciantes entenderem e praticarem os princípios básicos da negociação quantitativa. Com otimização e aperfeiçoamento contínuos, ela pode se tornar um sistema de negociação mais maduro e confiável, fornecendo sinais de negociação estáveis e mecanismos de controle de risco para os investidores.
/*backtest
start: 2024-03-26 00:00:00
end: 2024-12-12 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
// @version=5
strategy("Moving Average Crossover Strategy", shorttitle="MA Crossover", overlay=true)
// ——— INPUTS ———
fastLength = input.int(9, title="Fast MA Length", minval=1)
slowLength = input.int(21, title="Slow MA Length", minval=1)
maType = input.string(title="MA Type", defval="SMA", options=["SMA", "EMA", "WMA", "VWMA"])
// ——— FUNCTION TO RETURN SELECTED MA ———
f_ma(_source, _length, _type) => switch _type
"SMA" => ta.sma(_source, _length)
"EMA" => ta.ema(_source, _length)
"WMA" => ta.wma(_source, _length)
"VWMA" => ta.vwma(_source, _length)
// ——— CALCULATE FAST AND SLOW MAs ———
fastMA = f_ma(close, fastLength, maType)
slowMA = f_ma(close, slowLength, maType)
// ——— PLOT THE MOVING AVERAGES ———
plot(fastMA, color=color.blue, linewidth=2, title="Fast MA")
plot(slowMA, color=color.red, linewidth=2, title="Slow MA")
// ——— TRADING CONDITIONS ———
longCondition = ta.crossover(fastMA, slowMA)
exitCondition = ta.crossunder(fastMA, slowMA)
// ——— EXECUTE TRADES ———
if longCondition
strategy.entry("Long Entry", strategy.long)
if exitCondition
strategy.close("Long Entry")
// ——— PLOT BUY/SELL LABELS ———
if longCondition
label.new(bar_index, low, style=label.style_label_up, color=color.new(color.green, 0), textcolor=color.white, text="Buy")
if exitCondition
label.new(bar_index, high, style=label.style_label_down, color=color.new(color.red, 0), textcolor=color.white, text="Sell")