Número mágico automático

 

Olá a todos, este é meu primeiro post neste fórum.


Eu gostaria de perguntar o que vocês acham deste código para fazer um número mágico único para cada gráfico atacado pela EA. Parece que está tudo bem?

Obrigado.


int MagicNumber;

int init()
{
MagicNumber = WindowHandle(Symbol(),0);
Comentário( MagicNumber);
}


 
NablaQuant:

Eu gostaria de perguntar o que você acha deste código para fazer um número mágico único para cada gráfico atacado pela EA. Parece que está tudo bem?

Isso é bastante astuto - desde que você não precise do número mágico para permanecer o mesmo para cada EA através de reinícios do MT4. (Há também uma chance muito pequena de que, através de reinícios, uma EA possa receber um manípulo de janela usado anteriormente por outra EA).

 

E o tamanho inteiro pode ser maior que o inteiro da MQL4

E o IIRC hWnd pode ser um valor negativo? Não é bom para um número mágico!

-BB-

 
BarrowBoy:

E o tamanho inteiro pode ser maior que o inteiro da MQL4

E o IIRC hWnd pode ser um valor negativo? Não é bom para um número mágico!

-BB-

Eu não tinha pensado nisso, mas o MT4 permite números mágicos negativos - pelo menos no corretor que eu uso regularmente para testes. (Já fiz isso antes por acidente.) Portanto, não deve haver problema sob esse ponto de vista: os 32 bits do hWnd simplesmente são tratados como um inteiro de 32 bits assinado.

 
Função hash de uso
 
antslag:
Usar a função hash

Bem, sim, mas um haxixe de quê?

 
jjc:

Bem, sim, mas um haxixe de quê?

Eu fiz isso há algum tempo e funcionou muito bem. Atribuí um número de 2 dígitos para cada par, 1 dígito para curto e longo (alguns dos meus EAs negociavam apenas de uma forma), e um número de 2 dígitos para TFs.

Depois, basta anexar os números e você tem o MagicNumber.

 
DayTrader:

Eu fiz isso há algum tempo e funcionou muito bem. Atribuí um número de 2 dígitos para cada par, 1 dígito para curto e longo (alguns dos meus EAs negociavam apenas de uma forma), e um número de 2 dígitos para TFs.

Isso é ótimo... mas o mais inteligente do método NablaQuant é que ele gera números mágicos únicos mesmo que haja vários EAs rodando em gráficos para o mesmo símbolo e período de tempo. O ideal é algo que faz isso e persiste ao longo dos reinícios do MT4, mas não consigo ver uma maneira de conseguir isso usando qualquer informação dentro do MT4 (ou um hash dessa informação).

 
jjc:

Isso é ótimo... mas o mais inteligente do método NablaQuant é que ele gera números mágicos únicos mesmo que haja vários EAs rodando em gráficos para o mesmo símbolo e período de tempo. O ideal é algo que faz isso e persiste ao longo dos reinícios do MT4, mas não consigo ver uma maneira de conseguir isso usando qualquer informação dentro do MT4 (ou um hash dessa informação).

Isso pode ser feito, mas tem que ser tratado com cuidado...

Em anexo está uma EA que fiz há algum tempo (muito trabalho, não muito rentável)... O AutoMagic está lá dentro.

Arquivos anexados:
 
DayTrader:

Pode ser feito, mas tem de ser tratado com cuidado...

Em anexo está uma EA que fiz há algum tempo ( muito trabalho, não muito rentável)... O AutoMagic está lá dentro.

Está me faltando algo aqui. Se eu abrir dois gráficos para, por exemplo, USDJPY H1, e adicionar uma instância da EA a cada um deles, então ambos usam o número mágico 9999033.

 
jjc wrote >>

Está me faltando algo aqui. Se eu abrir dois gráficos para, por exemplo, USDJPY H1, e adicionar uma instância da EA a cada um deles, então ambos usam o número mágico 9999033.

Então o aplicativo do terminal MT é um 'container' - com um único hWnd para <a coisa toda>?