Скачать MetaTrader 5

Количество торгующих экспертов

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Forex Trader
114293
Forex Trader  
Как узнать, сколько запущено экспертов, и, особенно, скольким разрешено торговать?

Глобальный счетчик в init/deinit, наверное, не пойдет.
Forex Trader
114293
Forex Trader  
Как узнать, сколько запущено экспертов, и, особенно, скольким разрешено торговать?

Глобальный счетчик в init/deinit, наверное, не пойдет.

почему не пойдёт? Делай глобальную переменную (или 2) и считай туда чего хочешь =)
Forex Trader
114293
Forex Trader  
почему не пойдёт? Делай глобальную переменную (или 2) и считай туда чего хочешь =)


По крайней мере две причины.
Непонятно, как определить, торгует эксперт или нет, и когда торговля включается или выключается вручную без выгрузки эксперта.
И неопределенное поведение при падении терминала или запуске терминала несколькими пользователями на одном компьютере.
Последнее, кстати, относится ко всем настройкам, не только к глобальным переменным.
Forex Trader
114293
Forex Trader  
Непонятно, как определить, торгует эксперт или нет, и когда торговля включается или выключается вручную без выгрузки эксперта.

без выгрузки торговлю одного эксперта остановить невозможно. А определить - IsTradeAllowed().

И неопределенное поведение при падении терминала

Пусть все эксперты в инит проверяют - разрешена ли им торговля, и, если да, меняют глобальную переменную.

или запуске терминала несколькими пользователями на одном компьютере

а что, можно?
Я, если чесно, не пробовал, но, по идее, не должно работать...
Forex Trader
114293
Forex Trader  
без выгрузки торговлю одного эксперта остановить невозможно.

На чарте F7, закладка Common, checkbox Allow live traiding.
А определить - IsTradeAllowed().

Из "IsTradeAllowed() - непонятки в работе или глюк МТ"

komposter 07.09.05 18:18

У меня перед торговыми операциями идёт проверка IsTradeAllowed() (разработчики рекомендовали).
Когда я спрашивал - что эта ф-ция значит, мне отвечали примерно следующее: "она возвращает правду, если в настройках эксперта стоит галочка "разрешить торговлю" и торговый поток свободен (т.е. не торгует другой эксперт)"

Функция показывает, можно или нет торговать в данный конкретный момент времени. Мне нужно узнать, разрешено ли торговать вообще.

Пусть все эксперты в инит проверяют - разрешена ли им торговля, и, если да, меняют глобальную переменную.

Нельзя гарантировать, что счетчик обнулен, когда терминал стартует. Если, конечно, не удалять перед стартом файл глобальных переменных.


а что, можно?
Я, если чесно, не пробовал, но, по идее, не должно работать...

Работает... И не так, как хотелось бы. :(
Forex Trader
114293
Forex Trader  
На чарте F7, закладка Common, checkbox Allow live traiding.

Да, а потом "ОК", и эксперт переинициализируется...

Функция показывает, можно или нет торговать в данный конкретный момент времени. Мне нужно узнать, разрешено ли торговать вообще.

Вероятность того, что кто-то сейчас торгует небольшая... Но, конечно, не совсем то, что нужно...

ельзя гарантировать, что счетчик обнулен, когда терминал стартует. Если, конечно, не удалять перед стартом файл глобальных переменных.

...или повесить startup-эксперт, который будет обнулять..один раз - при запуске ;)
Forex Trader
114293
Forex Trader  
Да, а потом "ОК", и эксперт переинициализируется...

Не знал... Попробую, спасибо.
...или повесить startup-эксперт, который будет обнулять..один раз - при запуске ;)

Здесь не догоняю. :-\
Что за стартап-эксперт? Куда его повесить?
Forex Trader
114293
Forex Trader  
Здесь не догоняю. :-\
Что за стартап-эксперт? Куда его повесить?

Делаешь обычного эксперта, вставляешь в инит обнуление переменной, вешаешь на график, потом не трогаешь...
Результат - при каждом запуске терминала обнулённая переменная ;)
Forex Trader
114293
Forex Trader  
Делаешь обычного эксперта, вставляешь в инит обнуление переменной, вешаешь на график, потом не трогаешь...
Результат - при каждом запуске терминала обнулённая переменная ;)

Как обеспечить, чтобы этот эксперт запускался гарантированно первым?
Forex Trader
114293
Forex Trader  
на обнуление глобальной переменной уйдёт очччень немного времени...
поставь в остальные эксперты Слип(100).
Forex Trader
114293
Forex Trader  
Ключевое слово было "гарантированно".
Файл глобальных переменных сохраняется на диске. Когда файл открывается и записывается неизвестно. Время, нужное операционной системе для этого, от терминала никак не зависит. Будет достаточно 100 мс? или надо 1000?
Все это называется undefined behavior и строго-настрого запрещено к использованию во всех серьезных системах.
Глобальный счетчик, конечно, будет работать. В большинстве случаев.

Хорошо бы просто иметь наряду с MarketInfo функцию TerminalInfo, из которой можно тягать текущее состояние терминала и экспертов.

PS
За идеи спасибо, вполне достаточно для реализации на текущий момент. А обнулятель можно и семафором дополнительно защитить :)
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий