Как обеспечить работу эксперта только на том чарте куда он был сброшен первый раз - страница 2

 
Факт наличия советника должен отражаться в конфигурации терминала, там по идее и нужно проверять наличие клонов. Кстати можно и от переименования страховаться, если правильное имя в конфиге не появилось после запуска, то и до свидания. Правда с конфигами терминала я плотно не работал, вроде в chr файлах такие вещи пишутся, но насколько это контролируется в реалтайме - проверять надо.
 
Тогда тупо файл в качестве локера и никаких проблем.
 
PapaYozh:

Кстати, да. Если недопустимо использование 2-х экземпляров советника, следовательно не имеет значения какой советник стартанётся первым.

имеет :(

исходная ситуация: два открытых чарта на одном символе и одном периоде. на одном один набор индикаторов на другом - другой. какие и в каком количестве - не важно (решение должно быть универсальным и не привязанным к конкретным именам).

так вот: мне надо чтобы эксперт работал только на первом чарте с первым набором индикаторов (некоторые из них МОГУТ давать сигналы эксперту). но если я случайно присоединю его на второй чарт - там эксперт не должен работать ни после присоединения, ни после перкомпиляции, ни после перезапуска терминала. На втором он МОЖЕТ начать работать (это правдо надо еще обдумать - но все же) только после того как я руками удалю первого советника и его деинит подчистит за собой хвосты

 

Вариант раз, два советкина не важно на каком чарте:

В init() генерируешь число-идентификатор, записываешь в локальную и в глобальную переменную.

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

В start() сигнализируешь звуком, если переменные не совпадают - запущено два экземпляра кода.

 

 

Создать файл в файле очередь, кто первый в очереди тот и работает, из очереди удалять по деиниту (REASON_REMOVE 1 Программа удалена с графика)

Может что-то типа этого

 
ForexTools:

имеет :(

исходная ситуация: два открытых чарта на одном символе и одном периоде. на одном один набор индикаторов на другом - другой. какие и в каком количестве - не важно (решение должно быть универсальным и не привязанным к конкретным именам).

так вот: мне надо чтобы эксперт работал только на первом чарте с первым набором индикаторов (некоторые из них МОГУТ давать сигналы эксперту). но если я случайно присоединю его на второй чарт - там эксперт не должен работать ни после присоединения, ни после перкомпиляции, ни после перезапуска терминала. На втором он МОЖЕТ начать работать (это правдо надо еще обдумать - но все же) только после того как я руками удалю первого советника и его деинит подчистит за собой хвосты

дак если один и тот же эесперт с разными параметрами, можно ведь и магик делать extern и менять тоже, тогда путаницы не будет и все четко.
 
Techno:
дак если один и тот же эесперт с разными параметрами, можно ведь и магик делать extern и менять тоже, тогда путаницы не будет и все четко.
видимо он хочет что бы вообще работала только одна копия данного советника, не зависимо от настроек и т.п.
 
gip:

В init() генерируешь число-идентификатор, записываешь в локальную и в глобальную переменную.

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

не годится. при перекомпиляции и двух работающих экспертах не сработает - первым может отработать инит со второго (неправильного) графика.
 
sanyooooook:
видимо он хочет что бы вообще работала только одна копия данного советника, не зависимо от настроек и т.п.
именно! какую самую первую навесил (когда не было ни единого экземпляра) та и работает всегда, а все остальные кто позже - нет!
 
ForexTools:
именно! какую самую первую навесил (когда не было ни единого экземпляра) та и работает всегда, а все остальные кто позже - нет!

ну, вот, очередь, кто у кассы тот и рулит )
Причина обращения: