Автоматическое магическое число

 

Здравствуйте все, это мое первое сообщение на этом форуме.


Я хотел бы спросить, что вы думаете об этом коде для создания уникального магического числа для каждого графика советника. Кажется, что все в порядке?

Спасибо.


int MagicNumber;

int init()
{
MagicNumber = WindowHandle(Symbol(),0);
Comment( MagicNumber);
}


 
NablaQuant:

Я хотел бы спросить, что вы думаете об этом коде для создания уникального магического числа для каждого графика советника. Кажется, что все в порядке?

Это довольно хитро - при условии, что вам не нужно, чтобы магический номер оставался одинаковым для каждого советника при перезапуске MT4. (Существует также очень маленькая вероятность того, что при перезапуске советник может получить хэндл окна, ранее использовавшийся другим советником).

 

И размер целого числа может быть больше, чем целое число MQL4.

И IIRC hWnd может быть отрицательным значением? Не очень хорошо для магического числа!

-BB-

 
BarrowBoy:

И размер целого числа может быть больше, чем целое число MQL4.

И IIRC hWnd может быть отрицательным значением? Не очень хорошо для магического числа!

-BB-

Я не думал об этом, но MT4 действительно допускает отрицательные магические числа - по крайней мере, на брокере, которого я регулярно использую для тестирования. (Поэтому с этой точки зрения проблем быть не должно: 32 бита hWnd просто обрабатываются как знаковое 32-битное целое число.

 
Используйте хэш-функцию
 
antslag:
Использовать хэш-функцию

Ну, да, но хэш чего?

 
jjc:

Ну, да, но хэш чего?

Я сделал это некоторое время назад, и это отлично сработало. Я присвоил двузначный номер каждой паре, по одной цифре для коротких и длинных позиций (некоторые из моих экспертов торговали только в одну сторону), и двузначный номер для ТФ.

Затем просто сложите эти числа, и у вас получится MagicNumber.

 
DayTrader:

Я сделал это некоторое время назад, и это отлично сработало. Я присвоил двузначный номер каждой паре, по одной цифре для коротких и длинных позиций (некоторые из моих советников торговали только в одну сторону) и двузначный номер для ТФ.

Это замечательно... но самое умное в методе NablaQuant то, что он генерирует уникальные магические номера, даже если на графиках для одного и того же символа и таймфрейма работает несколько советников. Идеальный вариант - это что-то, что делает это и сохраняется при перезапуске MT4, но я не вижу способа достичь этого, используя любую информацию в MT4 (или хэш этой информации).

 
jjc:

Это замечательно... но самое умное в методе NablaQuant то, что он генерирует уникальные магические числа, даже если на графиках одного и того же символа и таймфрейма работает несколько советников. Идеальный вариант - это что-то, что делает это и сохраняется при перезапуске MT4, но я не вижу способа достичь этого, используя любую информацию в MT4 (или хэш этой информации).

Это можно сделать, но делать это нужно осторожно...

Во вложении советник, который я сделал некоторое время назад (много работы, не очень прибыльный)... AutoMagic находится там.

Файлы:
 
DayTrader:

Это можно сделать, но делать это нужно осторожно...

В приложении советник, который я сделал некоторое время назад (много работы, не очень прибыльный)... AutoMagic там есть.

Я что-то упускаю. Если я открываю два графика, например, USDJPY H1, и добавляю экземпляр советника на каждый из них, то оба используют магическое число 9999033.

 
jjc wrote >>

Я что-то упускаю. Если я открываю два графика, например, USDJPY H1, и добавляю экземпляр советника на каждый из них, то оба используют магическое число 9999033.

Так является ли терминальное приложение MT "контейнером" - с одним hWnd для <всего>?

Причина обращения: