Факт наличия советника должен отражаться в конфигурации терминала, там по идее и нужно проверять наличие клонов. Кстати можно и от переименования страховаться, если правильное имя в конфиге не появилось после запуска, то и до свидания. Правда с конфигами терминала я плотно не работал, вроде в chr файлах такие вещи пишутся, но насколько это контролируется в реалтайме - проверять надо.
Кстати, да. Если недопустимо использование 2-х экземпляров советника, следовательно не имеет значения какой советник стартанётся первым.
имеет :(
исходная ситуация: два открытых чарта на одном символе и одном периоде. на одном один набор индикаторов на другом - другой. какие и в каком количестве - не важно (решение должно быть универсальным и не привязанным к конкретным именам).
так вот: мне надо чтобы эксперт работал только на первом чарте с первым набором индикаторов (некоторые из них МОГУТ давать сигналы эксперту). но если я случайно присоединю его на второй чарт - там эксперт не должен работать ни после присоединения, ни после перкомпиляции, ни после перезапуска терминала. На втором он МОЖЕТ начать работать (это правдо надо еще обдумать - но все же) только после того как я руками удалю первого советника и его деинит подчистит за собой хвосты
исходная ситуация: два открытых чарта на одном символе и одном периоде. на одном один набор индикаторов на другом - другой. какие и в каком количестве - не важно (решение должно быть универсальным и не привязанным к конкретным именам).
так вот: мне надо чтобы эксперт работал только на первом чарте с первым набором индикаторов (некоторые из них МОГУТ давать сигналы эксперту). но если я случайно присоединю его на второй чарт - там эксперт не должен работать ни после присоединения, ни после перкомпиляции, ни после перезапуска терминала. На втором он МОЖЕТ начать работать (это правдо надо еще обдумать - но все же) только после того как я руками удалю первого советника и его деинит подчистит за собой хвосты
дак если один и тот же эесперт с разными параметрами, можно ведь и магик делать extern и менять тоже, тогда путаницы не будет и все четко.
Кстати, да. Если недопустимо использование 2-х экземпляров советника, следовательно не имеет значения какой советник стартанётся первым.
имеет :(
исходная ситуация: два открытых чарта на одном символе и одном периоде. на одном один набор индикаторов на другом - другой. какие и в каком количестве - не важно (решение должно быть универсальным и не привязанным к конкретным именам).
так вот: мне надо чтобы эксперт работал только на первом чарте с первым набором индикаторов (некоторые из них МОГУТ давать сигналы эксперту). но если я случайно присоединю его на второй чарт - там эксперт не должен работать ни после присоединения, ни после перкомпиляции, ни после перезапуска терминала. На втором он МОЖЕТ начать работать (это правдо надо еще обдумать - но все же) только после того как я руками удалю первого советника и его деинит подчистит за собой хвосты
Вариант раз, два советкина не важно на каком чарте:
В init() генерируешь число-идентификатор, записываешь в локальную и в глобальную переменную.
В start() исполняешь код только если совпадает значение глобальной и локальной переменных.
В start() сигнализируешь звуком, если переменные не совпадают - запущено два экземпляра кода.
Создать файл в файле очередь, кто первый в очереди тот и работает, из очереди удалять по деиниту (REASON_REMOVE 1 Программа удалена с графика)
Может что-то типа этого
имеет :(
исходная ситуация: два открытых чарта на одном символе и одном периоде. на одном один набор индикаторов на другом - другой. какие и в каком количестве - не важно (решение должно быть универсальным и не привязанным к конкретным именам).
так вот: мне надо чтобы эксперт работал только на первом чарте с первым набором индикаторов (некоторые из них МОГУТ давать сигналы эксперту). но если я случайно присоединю его на второй чарт - там эксперт не должен работать ни после присоединения, ни после перкомпиляции, ни после перезапуска терминала. На втором он МОЖЕТ начать работать (это правдо надо еще обдумать - но все же) только после того как я руками удалю первого советника и его деинит подчистит за собой хвосты
дак если один и тот же эесперт с разными параметрами, можно ведь и магик делать extern и менять тоже, тогда путаницы не будет и все четко.
В init() генерируешь число-идентификатор, записываешь в локальную и в глобальную переменную.
В start() исполняешь код только если совпадает значение глобальной и локальной переменных.
видимо он хочет что бы вообще работала только одна копия данного советника, не зависимо от настроек и т.п.
именно! какую самую первую навесил (когда не было ни единого экземпляра) та и работает всегда, а все остальные кто позже - нет!