Скачать MetaTrader 5

Повторные алерты

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Как заработать на MQL5.community? Зайди и узнай!
Forex Trader
114255
Forex Trader 2007.05.30 21:07 
Мой индикатор выдает алерты стандартным метатрейдеровским способом Alerts(). Проблема в том, что при переключении на другой таймфрейм и обратно сообщения дублируются как показано на скриншоте. Сколько переключений, столько и дубликатов. Как этого избежать? Если бы можно было получить доступ к инфе, которая отображается в окошке алертов, то можно было бы организовать проверку на дубликаты.

Неужели ничего лучше сохранения сигнатур выданных алертов во внешнем файле с последующей проверкой, придумать нельзя?
Forex Trader
114255
Forex Trader 2007.05.31 15:43  
Можно вместо внешних файлов использовать глобальные переменные.
Forex Trader
114255
Forex Trader 2007.05.31 18:32  
Можно вместо внешних файлов использовать глобальные переменные.


А разве есть такие пользовательские переменные, которые при переключении таймфреймов (инициализации ЕА) не обнуляются? Т.е. я могу создать динамический массив строк Alerts[], добавлять туда выведенные алерты и этот массив будет жить до тех пор, пока работает terminal.exe?

В хелпе глобальные переменные определяются так. Это подходит для моего случая?
string Alerts[];   // global variable
int start()  {
   ...
 }
Forex Trader
114255
Forex Trader 2007.05.31 18:34  
Думаю, речь шла о других глобальных переменных - "MQL4: Глобальные переменные"
Forex Trader
114255
Forex Trader 2007.05.31 18:40  
Думаю, речь шла о других глобальных переменных - "MQL4: Глобальные переменные"


Ясно, но там разрешен только тип double, то есть нужно как-то извратиться чтобы превратить строку типа "EURUSD0706011600" в число с плавающей точкой и обратно?

datetime GlobalVariableSet( string name, double value) 




Forex Trader
114255
Forex Trader 2007.05.31 20:25  
А зачем мучаться? Ведь имя переменной можно задавать строкой. В качестве имени и можно использовать символ пары да и всё. А число хранить в значении переменной.
Forex Trader
114255
Forex Trader 2007.05.31 21:18  
А зачем мучаться? Ведь имя переменной можно задавать строкой.


То есть, отправляя алерт, проверять, есть переменная=ALERT_ID ("fxbEURUSD0706011600"). Если GlobalVariableCheck("fxbEURUSD0706011600") возвращает FALSE, значит переменной нет, алерт уникальный и можно создавать GlobalVariableSet( "fxbEURUSD0706011600", 255). А потом в deinit() удалить все свои переменные-алерты через GlobalVariablesDeleteAll( "fxb")?
Отлично, спасибо за помощь.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий