Versão Atualizada.
Confira a descrição abaixo.
Ainda acreditando no potencial da Média Móvel Cruzada e, como programador, sempre em busca da solução mais simples, me deparei com a frase "não existe uma configuração mágica para a média móvel cruzada". Este indicador experimenta diversas configurações sempre que o período ou o ativo muda, ou até mesmo a cada nova vela. Ele opera analisando as últimas 100 velas e selecionando as configurações com melhor desempenho. Basicamente, mede a distância entre um sinal curto e um longo, como se alguém estivesse operando sem um stop loss. O indicador considera o spread.
A janela inferior exibe a distância entre a média móvel curta e a longa, onde valores positivos indicam operações de compra e valores negativos, operações de venda em pips. Usando o "oscilador de lucro", você pode encerrar uma operação com lucro, verificando se as operações curtas/longas têm uma diferença máxima e encerrando antes do máximo.
A linha superior exibe "Lucro hoje com MA 5/19 é de 60 pips". O indicador ou o usuário escolheu 5 para a média móvel rápida e 19 para a média móvel lenta. O próximo campo de texto mostra os resultados do dia anterior seguidos do sinal Longo ou Curto. Os traders podem gostar de adicionar duas médias móveis ao gráfico e configurá-las conforme os valores indicados.
Estou em busca de mais recomendações sobre médias móveis na literatura.
Parâmetros
- PeriodShort=6;
Período para a média móvel rápida. Ignore se a otimização estiver ativada. - PeriodLong=40;
Período para a média móvel lenta. Ignore se a otimização estiver ativada. - Method=0;
Método para iMA. - Optimize=true;
O indicador escolhe automaticamente os valores para a média móvel rápida e lenta. - DrawTringles=true;
Desenhar triângulos no gráfico. - MinShortMA=2;
MaxShortMA=20;
MaxLongMA=100;
Valores mínimos e máximos para a otimização; testará valores entre 2 e 20 para a média rápida e de 7 a 100 para a média lenta. - StepLongMA=5;
StepShortMA=5;
Para agilizar a busca, testará a cada terceiro valor. - CountOptimize=200;
Analisará 200 velas do passado. Quanto mais velas você analisar, mais lento será; um número alto pode resultar em resultados menos bons. - OptimizeOnNewCandle=false;
Iniciar otimização a cada nova vela. Nota: A otimização pode levar tempo e desacelerar seu terminal. - Alarm=true;
Tocar o alarme se um novo sinal surgir.
No próximo passo, quero criar um Expert Advisor para isso, mas ainda estou pensando em como detectar uma tendência lateral que não deve ser negociada com a média móvel cruzada. Até agora, meu EA baseado na média móvel cruzada otimizada às vezes gera lucros excelentes, mas os queima no dia seguinte.
Versão Atualizada
Novos recursos:
- O indicador agora desenha as médias móveis dentro do gráfico, o "oscilador de lucro" está em um indicador diferente (MAProfit2), ambos se comunicam com variáveis globais.
- Suporte a Canais de MA (veja o e-book em www.vnchanger.org), a média móvel lenta é dividida em duas linhas, uma para valores baixos e outra para altos, isso deve evitar perdas em mercados laterais.
- Em vez de testar todas as combinações, pode testar certos intervalos de MA encontrados na literatura. Para isso, defina OptimizeAll como falso e OptimizeSystems como verdadeiro.
Você pode adicionar ou modificar a tabela de sistemas. Não se esqueça de encerrá-la com 0,0,0,0,0,0.
extern bool OptimizeAll=false;
extern bool OptimizeSystems=true;
int Systems[] = {PRICE_MEDIAN,MODE_SMA,50, PRICE_MEDIAN,MODE_SMA,200,
PRICE_MEDIAN,MODE_SMA,50, PRICE_MEDIAN,MODE_SMA,100, // Death Cross
PRICE_MEDIAN,MODE_SMA,10, PRICE_MEDIAN,MODE_SMA,40,
PRICE_MEDIAN,MODE_SMA,13, PRICE_MEDIAN,MODE_SMA,26,
PRICE_MEDIAN,MODE_SMA,5, PRICE_MEDIAN,MODE_SMA,10,
PRICE_CLOSE, MODE_EMA,5, PRICE_OPEN, MODE_EMA,6,
PRICE_MEDIAN,MODE_SMA,3, PRICE_MEDIAN,MODE_SMA,8,
0,0,0,0,0,0};
- Novos alertas podem ser dados em formato de voz. Para isso, você precisa baixar o gspeak, por exemplo, de https://www.mql5.com/en/code/8621.
Se você não quiser a voz, precisará modificar o código. Remova as linhas de #import "speak.dll" até #import e descomente a função gSpeak. Agradecemos ao autor por esta DLL maravilhosa.
void gRate(int rate);
void gVolume(int rate);
void gPitch(int rate);
void gSpeak(string text);
#import
// caso você não tenha (ou não queira) a speak.dll, descomente isso
/*
void gSpeak(string x)
{
}
*/
Se você não remover a voz, após algum lucro, pode começar a adorar a voz do "Tio Sam" falando.
- No primeiro início ou na mudança de parâmetro, ele lembra da vela da primeira operação, isso deve evitar re-pintar operações antigas com diferentes.
- Os triângulos agora têm três cores: Verde para operações de compra, Vermelho para operações de venda e Violeta para operações com perda (longas ou curtas). As cores podem ser modificadas no código-fonte:
int ColorShortTrade = Red;
int ColorBadTrade = Violet;
- Os passos na otimização de MA foram definidos para 5.
- O nome interno deste indicador foi alterado para SMA (Smart Ass ... ele exibe como você deveria ter negociado depois).

Otimização de MA
Publicações relacionadas
- Calendário Econômico: Monitoramento e Cache para Testes de Estratégia no MetaTrader 5
- Buffers Horários para Coleta de Dados no MetaTrader 5
- FFC - Calendário Forex Factory: Um Indicador Essencial para MetaTrader 4
- Pivot Point Personalizado com Horário de Fechamento Ajustável para MetaTrader 4
- Painel Gráfico: Mostre a Tendência Atual em Todos os Tempos no MetaTrader 4