Estratégia baseada no cruzamento de médias móveis de curto e longo prazo


Data de criação: 2024-02-22 15:36:49 última modificação: 2024-02-22 15:36:49
cópia: 0 Cliques: 649
1
focar em
1617
Seguidores

Estratégia baseada no cruzamento de médias móveis de curto e longo prazo

Visão geral

A estratégia é uma estratégia de negociação simples de travessia de média móvel baseada no cruzamento de médias móveis de curto e longo prazo. Utiliza médias móveis de 34 e 89 ciclos, observando suas cruzadas como um sinal de compra e venda no horário da manhã. Um sinal de compra é gerado quando a média móvel de curto prazo quebra a média móvel de longo prazo a partir da direção inferior; um sinal de venda é gerado quando a média móvel de curto prazo quebra a partir da direção superior.

Princípio da estratégia

A lógica central da estratégia é baseada no cruzamento de médias móveis de curto e longo prazo como um sinal de negociação. Concretamente, a estratégia define uma média móvel simples de curto e longo prazo de 34 e 89 ciclos (SMA). Observe apenas o cruzamento de ambos os SMAs no período de negociação da manhã (08:00-10:00). Quando o SMA curto atravessa o SMA longo de baixo, o mercado é considerado em alta tendência e, portanto, gera um sinal de compra; Quando o SMA curto atravessa o SMA longo de cima, o mercado é considerado em baixa tendência e, portanto, gera um sinal de venda.

Depois de receber um sinal de compra ou venda, a estratégia entra na posição e define uma condição de saída da posição, ou seja, a entrada é realizada com o número de linhas K de raiz especificadas (default 3 raizes) e depois a saída de parada ativa. Isso pode bloquear parte dos lucros e evitar que os prejuízos se expandam ainda mais.

Note-se que a estratégia só identifica os sinais de cruzamento no período da manhã. Isso ocorre porque o volume de negociação no mercado é maior durante esse período e a confiabilidade dos sinais de conversão de tendência é maior.

Análise de vantagens

A estratégia tem as seguintes vantagens:

  1. Utiliza uma média móvel simples, universal, fácil de entender e apropriada para principiantes

  2. Identificar os sinais somente nos períodos de rádio matinal com mais sinais de alta qualidade e filtrar os falsos sinais em outros períodos de tempo

  3. Cancelamento de perdas, que bloqueia parte dos lucros e reduz o risco de perdas

  4. Parâmetros mais personalizáveis, adaptáveis ao mercado e ao estilo pessoal

  5. É fácil de expandir e pode ser baseado em um quadro de estratégias mais complexas para outros indicadores

Análise de Riscos

A estratégia também apresenta alguns riscos, principalmente em relação aos seguintes aspectos:

  1. A própria média móvel é muito atrasada e pode perder um ponto de reversão de preços de curto prazo.

  2. Dependendo apenas de indicadores simples, é fácil de falhar em determinadas condições de mercado (trend oscilações, intervalo de classificação, etc.)

  3. A configuração inadequada da posição de parada pode causar perdas desnecessárias

  4. A configuração inadequada dos parâmetros (período de média móvel, período de posição, etc.) também pode afetar o desempenho da estratégia

Resolução:

  1. Aumento da sensibilidade às mudanças de curto prazo, em combinação com outros indicadores de antecedência

  2. Aumentar as condições de filtragem para evitar o impacto dos sinais de férias nos mercados de turbulência e intervalo

  3. Optimizar a lógica de stop loss, ajustando a escala de stop loss de acordo com a dinâmica da volatilidade do mercado

  4. Optimização de parâmetros de combinação múltipla, procurando a melhor configuração de parâmetros

Direção de otimização

A estratégia também tem um grande espaço para otimização, principalmente em relação aos seguintes aspectos:

  1. Adição de outras condições de filtragem para evitar o impacto de sinais de férias no mercado de tremores e intervalos

  2. Combinação de estratégias de quantidade dinâmica para identificar sinais de ruptura mais fortes

  3. Optimizar os parâmetros periódicos das médias móveis para encontrar a melhor combinação de parâmetros

  4. Optimizar automaticamente o Stop Loss em função da volatilidade do mercado

  5. Tentar otimizar automaticamente toda a estratégia com base em tecnologia de aprendizagem de máquina

  6. Tentar combinar com outras estratégias para projetar sistemas multi-estratégias mais complexos

Resumir

A estratégia é simples e prática em geral, e é adequada para o aprendizado de referência para iniciantes. Ela reflete o modelo típico de estratégias de tipo cruzado de média móvel, que controlam o risco por meio da configuração de stop-loss. Mas a estratégia pode ser otimizada ainda mais, tornando-a mais eficiente e adaptada a mais ambientes de mercado.

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

//@version=5
strategy("34 89 SMA Crossover Strategy", overlay=true)

// Define the length for the SMAs
short_length = input(34, title="Short SMA Length")
long_length = input(89, title="Long SMA Length")
exit_candles = input(3, title="Exit after how many candles?")
exit_at_open = input(true, title="Exit at Open?")

// Define morning session
morning_session = input("0800-1000", "Morning Session")

// Calculate SMAs
short_sma = ta.sma(close, short_length)
long_sma = ta.sma(close, long_length)

// Function to check if current time is within specified session
in_session(session) =>
    session_start = na(time(timeframe.period, "0800-1000")) ? na : true
    session_start

// Condition for buy signal (short SMA crosses over long SMA) within specified trading hours
buy_signal = ta.crossover(short_sma, long_sma)

// Condition for sell signal (short SMA crosses under long SMA) within specified trading hours
sell_signal = ta.crossunder(short_sma, long_sma)

// Function to exit the trade after specified number of candles
var int trade_entry_bar = na
var int trade_exit_bar = na
if (buy_signal or sell_signal)
    trade_entry_bar := bar_index
if (not na(trade_entry_bar))
    trade_exit_bar := trade_entry_bar + exit_candles

// Exit condition
exit_condition = (not na(trade_exit_bar) and (exit_at_open ? bar_index + 1 >= trade_exit_bar : bar_index >= trade_exit_bar))

// Execute trades
if (buy_signal)
    strategy.entry("Buy", strategy.long)
if (sell_signal)
    strategy.entry("Sell", strategy.short)
if (exit_condition)
    strategy.close("Buy")
    strategy.close("Sell")

// Plot SMAs on the chart
plot(short_sma, color=color.blue, linewidth=1)
plot(long_sma, color=color.red, linewidth=1)