A estratégia de cruzamento de média móvel dupla é uma estratégia de negociação quantitativa comum. Ele usa o cruzamento de médias móveis rápidas e lentas como os sinais de compra e venda. Quando a média móvel rápida cruza acima da média móvel lenta da parte inferior, um sinal de compra é gerado. Quando a média móvel rápida cruza abaixo da média móvel lenta da parte superior, um sinal de venda é gerado.
A lógica central desta estratégia é calcular dois grupos de médias móveis, uma é a média móvel rápida com um parâmetro de período de 10 dias, e a outra é a média móvel lenta com um parâmetro de período de 30 dias.
Quando a média móvel rápida cruza acima da lenta, significa que o preço de curto prazo começa a romper a tendência de longo prazo, que é um sinal de cruz de ouro para ir longo.
A estratégia também define mecanismos de stop loss e take profit. O stop loss é acionado quando o preço cai abaixo de uma certa porcentagem do preço de entrada. O take profit é acionado quando o preço sobe acima de uma certa porcentagem do preço de entrada.
A estratégia dupla de cruzamento das médias móveis tem as seguintes vantagens:
A lógica é simples e fácil de compreender e implementar;
Os parâmetros das médias móveis rápidas e lentas são personalizáveis para se adequarem a diferentes mercados;
Contém configurações de stop loss e take profit para limitar as perdas;
Pode ter um bom desempenho tanto nos mercados de tendência como nos mercados de gama.
A estratégia dupla de cruzamento de médias móveis apresenta igualmente os seguintes riscos:
O sinal do cruzamento pode ser uma falha, levando a perdas;
As configurações inadequadas de stop loss e take profit podem resultar em perdas enormes ou em lucros esperados reduzidos;
Baseia-se exclusivamente em indicadores técnicos, sem considerar os elementos fundamentais.
Soluções correspondentes:
Adicionar outros indicadores técnicos para filtrar os falsos sinais;
Testar e otimizar os parâmetros de stop loss e take profit;
Incorporar análise fundamental.
A estratégia pode ser otimizada a partir dos seguintes aspectos:
Ensaiar diferentes combinações de parâmetros das médias móveis para encontrar a melhor;
Adicionar indicadores de confirmação preço-volume para evitar falhas;
Ajustar dinamicamente as percentagens de stop loss e take profit para obter melhores lucros;
Incorporar outros indicadores como volume de negociação, taxa de rotatividade, etc.
Em resumo, a estratégia de cruzamento de média móvel dupla é uma estratégia quantitativa de negociação simples e prática. É fácil de entender e implementar e pode gerar lucros estáveis na maioria dos ambientes de mercado. Ao otimizar parâmetros, adicionar filtros de sinal e mecanismos dinâmicos de captação de lucro, a estratégia pode se tornar mais confiável e lucrativa. Como uma das estratégias quantitativas fundamentais de negociação, vale a pena aprender e aplicar.
/*backtest start: 2023-01-12 00:00:00 end: 2024-01-18 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Moving Average Crossover", overlay=true) // Define input parameters fast_length = input(10, title="Fast MA Length") slow_length = input(30, title="Slow MA Length") stop_loss_percent = input(1.0, title="Stop Loss (%)", minval=0.1, maxval=10, step=0.1) take_profit_percent = input(2.0, title="Take Profit (%)", minval=0.1, maxval=10, step=0.1) // Calculate moving averages fast_ma = sma(close, fast_length) slow_ma = sma(close, slow_length) // Entry conditions long_condition = crossover(fast_ma, slow_ma) short_condition = crossunder(fast_ma, slow_ma) // Plot moving averages on the chart plot(fast_ma, title="Fast MA", color=color.blue) plot(slow_ma, title="Slow MA", color=color.red) // Strategy orders strategy.entry("Long", strategy.long, when=long_condition) strategy.entry("Short", strategy.short, when=short_condition) // Set stop loss and take profit levels stop_loss_price = close * (1 - stop_loss_percent / 100) take_profit_price = close * (1 + take_profit_percent / 100) strategy.exit("Take Profit/Stop Loss", from_entry="Long", stop=stop_loss_price, limit=take_profit_price) strategy.exit("Take Profit/Stop Loss", from_entry="Short", stop=take_profit_price, limit=stop_loss_price)