Participe de nossa página de fãs
Coloque um link para ele, e permita que outras pessoas também o avaliem
Avalie seu funcionamento no terminal MetaTrader 5
- Visualizações:
- 22
- Publicado:
-
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance
Média personalizada
A CustomAverage é um indicador de tendência autônomo e que não repinta, construído com base no conceito de média dupla: uma média básica rápida é calculada diretamente a partir do preço, e uma segunda etapa de suavização independente é então aplicada sobre ela. O resultado é uma única linha adaptativa que reage ao preço mais rapidamente do que uma única média móvel de longo prazo, mas permanece visivelmente mais estável do que uma única média móvel de curto prazo.
A ideia por trás disso
Uma média móvel simples exige um equilíbrio entre capacidade de resposta e ruído: se o período for reduzido, ela acompanha o preço de perto, mas oscila violentamente em faixas de variação; se for alongado, ela fica atrasada em relação a cada mudança real. O CustomAverage evita esse compromisso ao dividir a tarefa em dois filtros independentes:
- Etapa 1 – Média básica. Uma média móvel (SMA, EMA, SMMA ou LWMA, selecionável) é aplicada à série de preços escolhida (fechamento, abertura, mediana, típico, ponderado etc.). Essa etapa realiza o trabalho principal de acompanhamento da tendência.
- Etapa 2 – Suavização. Uma segunda média móvel (novamente, qualquer um dos quatro métodos clássicos) é aplicada sobre o resultado da Etapa 1, em vez de sobre o preço bruto. Como ela está filtrando uma série já calculada como média, um período de suavização relativamente curto é suficiente para eliminar a instabilidade residual sem adicionar muito atraso extra.
Cada valor é calculado uma vez, da esquerda para a direita, estritamente a partir de barras que já estão fechadas em relação à barra que está sendo processada — o indicador nunca analisa o futuro e nunca recalcula valores históricos. A cada novo tick, o código recalcula apenas as barras que mudaram (rates_total / prev_calculated), de modo que permanece leve mesmo com histórico extenso e intervalos de tempo curtos.
Como interpretá-lo
- A linha principal é o valor final, calculado com média dupla. Ela muda de cor dependendo de sua própria inclinação: uma cor quando a linha está subindo de barra em barra, outra quando está caindo — assim, a direção da tendência fica visível à primeira vista, sem a necessidade de um oscilador separado.
- Uma seta de alta é traçada abaixo da barra em que o preço fecha novamente acima da média após ter fechado abaixo dela na barra anterior — um sinal de compra simples e clássico de cruzamento de preço/média.
- Uma seta de baixa é traçada acima da barra em que o preço volta a fechar abaixo da média, após ter fechado acima dela na barra anterior — o sinal de venda espelhado.
- Uma pequena legenda no canto do gráfico mostra o valor numérico atual da média, atualizado a cada cálculo.
- O indicador não gera recomendações de negociação por si só — trate a linha como um filtro dinâmico de suporte/resistência/tendência e as setas como marcadores de tempo para combinar com suas próprias regras de entrada, saída e risco.

Fig. 1. CustomAverage plotado em um gráfico de preços (preto e branco, conforme as diretrizes de imagem da Code Base).
Variáveis externas (entradas)
| Variável | Valor padrão | Descrição |
|---|---|---|
| InpMAPeriod | 14 | Período da média de referência da Etapa 1. |
| InpMAMethod | MODE_EMA | Método de cálculo da média para o Estágio 1: SMA, EMA, SMMA ou LWMA. |
| InpAppliedPrice | PRICE_CLOSE | Série de preços inserida no Estágio 1 (fechamento, abertura, máxima, mínima, mediana, típico ou ponderado). |
| InpSmoothPeriod | 5 | Período de suavização do Estágio 2 aplicado ao resultado do Estágio 1. Um valor de 0 ou 1 desativa o Estágio 2 e o indicador se comporta como uma simples média de estágio único. |
| InpSmoothMethod | MODE_SMMA | Método de cálculo da média para o Estágio 2: SMA, EMA, SMMA ou LWMA. |
| InpShowSignals | true | Ativa/desativa as setas de cruzamento entre preço e média. |
| InpArrowUpCode | 233 | Código do símbolo Wingdings usado para a seta de cruzamento de alta. |
| InpArrowDownCode | 234 | Código do símbolo Wingdings usado para a seta de cruzamento de baixa. |
| InpArrowUpColor | clrLime | Cor da seta de cruzamento de alta. |
| InpArrowDownColor | clrRed | Cor da seta de cruzamento de baixa. |
| InpColorUp | clrDodgerBlue | Cor da linha enquanto a média está subindo. |
| InpColorDown | clrOrangeRed | Cor da linha enquanto a média está caindo. |
| InpLineWidth | 2 | Largura da linha traçada, em pixels. |
| InpShowLabel | true | Mostra/oculta a legenda de texto no gráfico com o valor numérico atual da média. |
| InpLabelCorner | CORNER_RIGHT_UPPER | Canto do gráfico usado para posicionar o rótulo de valor. |
Uso recomendado
- Funciona com qualquer símbolo e qualquer período de tempo; é um indicador derivado exclusivamente do preço e não impõe restrições quanto ao tipo de conta (funciona da mesma forma em contas de compensação e de hedge, reais ou de demonstração).
- A configuração padrão de 14/EMA com um estágio de suavização de 5/SMMA é um ponto de partida equilibrado para gráficos H1-H4. Para gráficos intradiários mais rápidos (M1-M15), considere reduzir ambos os períodos; para negociação de swing ou de posição em D1-W1, aumentar o InpMAPeriod reduzirá a sensibilidade ao ruído.
- Definir o InpSmoothPeriod como 0 ou 1 transforma o indicador em uma média móvel convencional de estágio único, útil para comparar o efeito do segundo estágio de filtragem diretamente no mesmo gráfico.
- Assim como qualquer ferramenta baseada em média móvel, a linha fica defasada em relação ao preço por definição e funciona melhor como um filtro de tendência ou referência dinâmica de suporte/resistência, em vez de um sinal de entrada independente; combine as setas de cruzamento com um plano de negociação mais amplo (estrutura, volatilidade, gestão de risco), em vez de negociá-las isoladamente.
- O indicador é plotado na janela principal do gráfico e cria um objeto de legenda, que é removido automaticamente na desinicialização (mudança de intervalo de tempo, remoção do indicador, recarregamento do modelo etc.), de modo que não deixa objetos de gráfico órfãos para trás.
Traduzido do inglês pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/en/code/75951
Broker Spec Inspector
Exibe os limites ocultos do contrato que rejeitam ordens sem aviso prévio: nível de stop, nível de congelamento, lote mínimo/incremento/máximo, tamanho e valor do tick, tipo de spread, modo de execução, swaps e a margem necessária para o lote mínimo em relação à sua margem disponível.
Session Opening Range Breakout EA
Um Expert Advisor que mede a máxima e a mínima de um intervalo de abertura de sessão definido e, em seguida, opera com base na quebra confirmada desse intervalo, utilizando o dimensionamento de posição com base no risco e um limite de uma operação por sessão.
Accumulation/Distribution
O Indicador Accumulation/Distribution (Acumulação/Distribuição ou A/D) é determinado pelas mudanças de preço e volume.
Accelerator Oscillator (AC)
O Indicador Acceleration/Deceleration (Aceleração/Desaceleração ou AC) mede a aceleração e a desaceleração da força motriz atual do mercado.