Boa noite.
Usando a função ChartGetString é possivel saber o nome do expert anexado a um gráfico. Já que o número mágico não é uma propriedade de um EA, teria como obter os parâmetros de um EA anexado, para eu saber o número mágico dele?
Pensei em setar o número mágico nas variáveis globais, para obter essa informação, mas se houver outra forma, seria útil saber.
Olá Samuel,
se a intenção é setar o número mágico porque não usar o input?
input long inpMagicNumber = 200502; // Magic Number
Olá Samuel,
se a intenção é setar o número mágico porque não usar o input?
Não. A ideia é tornar um EA consciente da existência de outros EAs no terminal.
No caso quero saber se um negócio foi realizado pelo mesmo EA, anexado em outro gráfico, mesmo que o EA anexado em outro gráfico esteja usando número mágico diferente.
Entendi, não tem nada que associe o MagicNumber ao nome do EA, tem que buscar uma solução, eu gravei arquivos na COMMON/FILES para trocar msg entre as instâncias que estavam rodando o EA.
No caso quero saber se um negócio foi realizado pelo mesmo EA, anexado em outro gráfico, mesmo que o EA anexado em outro gráfico esteja usando número mágico diferente.
Caso não seja necessário anexar o mesmo EA em mais de 1 gráfico do mesmo símbolo e timeframe, utilizando configurações diferentes, então não é preciso deixar o magic number nos parâmetros de entrada. Define apenas internamente como no exemplo abaixo:
//=== Global variables ulong MAGICNUM; . . . //+--------------------------------------------------------------------------------------------------------------------+ //| Expert initialization function | //+--------------------------------------------------------------------------------------------------------------------+ int OnInit() { //--- Inicializar objeto para o controle correto das operações MAGICNUM = MagicNumberTF(_Period); trade.SetExpertMagicNumber(MAGICNUM); . . . //+--------------------------------------------------------------------------------------------------------------------+ //| Magic number timeframes function | //+--------------------------------------------------------------------------------------------------------------------+ int MagicNumberTF(int CodeTF) { //--- Local variable int ResMN; switch(CodeTF) { case PERIOD_M1: ResMN = 7001; break; case PERIOD_M2: ResMN = 7002; break; case PERIOD_M3: ResMN = 7003; break; case PERIOD_M4: ResMN = 7004; break; case PERIOD_M5: ResMN = 7005; break; case PERIOD_M6: ResMN = 7006; break; case PERIOD_M10: ResMN = 7007; break; case PERIOD_M12: ResMN = 7008; break; case PERIOD_M15: ResMN = 7009; break; case PERIOD_M20: ResMN = 7010; break; case PERIOD_M30: ResMN = 7011; break; case PERIOD_H1: ResMN = 7012; break; case PERIOD_H2: ResMN = 7013; break; case PERIOD_H3: ResMN = 7014; break; case PERIOD_H4: ResMN = 7015; break; case PERIOD_H6: ResMN = 7016; break; case PERIOD_H8: ResMN = 7017; break; case PERIOD_H12: ResMN = 7018; break; case PERIOD_D1: ResMN = 7019; break; case PERIOD_W1: ResMN = 7020; break; case PERIOD_MN1: ResMN = 7021; break; default: ResMN = 0; break; } return(ResMN); }
Se realmente for necessário manter o MN editável, talvez a solução com as variáveis globais seja a mais viável.
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Boa noite.
Usando a função ChartGetString é possivel saber o nome do expert anexado a um gráfico. Já que o número mágico não é uma propriedade de um EA, teria como obter os parâmetros de um EA anexado, para eu saber o número mágico dele?
Pensei em setar o número mágico nas variáveis globais, para obter essa informação, mas se houver outra forma, seria útil saber.