Hoje vou falar sobre um indicador muito interessante, o Símbolo Sintetizador, que funciona de forma semelhante ao Triangle Hedge (Símbolo Sintetizador para MT5). A principal diferença é que este é voltado para a exibição de gráficos no MetaTrader 4.
Com ele, você pode sintetizar qualquer símbolo, desde que tenha os símbolos de origem na janela de Market Watch. O resultado é um gráfico offline em tempo real, muito parecido com o Period_Converter_Opt.mq4 (https://www.mql5.com/en/code/7673).
O uso básico é bem semelhante ao do Period_Converter_Opt, já que este indicador é baseado nele.
Diferenças nas Configurações de Parâmetros:
- extern int spread = 0;
O spread em pontos para o símbolo sSym01 (símbolo do gráfico anexado). Um valor de 0 significa que está usando o atual.
Como o arquivo de histórico do MetaTrader 4 não possui dados de spread do passado, precisamos desses dados para determinar o preço Ask ao calcular os preços virtuais.
- extern int vDigits = 5;
Os dígitos para o símbolo sintetizado. Isso substitui OmitDigit (do Period_Converter_Opt.mq4).
- extern string vSymbol = "EURUSD_v";
Este é o símbolo que você deseja gerar. Qualquer nome é válido, desde que tenha menos de 11 caracteres.
- string sSym01 = "EURGBP"; // (Variável não externa)
Fonte símbolo #1. Ele é automaticamente definido a partir do símbolo do gráfico anexado.
É importante anexar esta ferramenta ao gráfico do símbolo para evitar o erro "Dados Insuficientes" quando sCal é "D" e se o arquivo de histórico de sSym01 não for suficiente.
- extern string sSym02 = "GBPUSD";
Fonte símbolo #2. O nome precisa ser exatamente igual ao que está no Market Watch, incluindo prefixo e/ou sufixo.
- extern string sCal = "M";
A operação para sintetizar. "M" significa "Multiplicar" e "D" significa "Dividir".
Se o preço virtual de vSymbol pode ser calculado pela multiplicação de sSym01 por sSym02, coloque "M".
Exemplos:
vSymbol="EURUSD" sSym01="EURGBP" sSym02="GBPUSD"
vSymbol="EURJPY" sSym01="EURGBP" sSym02="GBPJPY"
vSymbol="EURJPY" sSym01="EURUSD" sSym02="USDJPY"
vSymbol="BTCJPY" sSym01="BTCUSD" sSym02="USDJPY"
Observação: sSym01 e sSym02 podem ser trocados, pois estamos multiplicando. O par principal deve ser sSym01 para ter mais ticks.
Se o preço virtual de vSymbol pode ser calculado pela divisão de sSym02 por sSym01, coloque "D" ou qualquer outra string, exceto "M".
Exemplos:
vSymbol="USDJPY" sSym01="EURUSD" sSym02="EURJPY"
vSymbol="ZARJPY" sSym01="USDZAR" sSym02="USDJPY"
vSymbol="EURUSD" sSym01="USDJPY" sSym02="EURJPY"
Observação: sSym01 e sSym02 não podem ser trocados, pois estamos dividindo.
As moedas sublinhadas são as "moedas médias".

Publicações relacionadas
- Buffers Horários para Coleta de Dados no MetaTrader 5
- Calendário Econômico: Monitoramento e Cache para Testes de Estratégia no MetaTrader 5
- 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
- Utilitário de Informações de Barras e Taxas: Como Usar no MetaTrader 5