- Глобальные переменные - Алгоритмический трейдинг, торговые роботы
- Создание готового советника - Мастер MQL4/MQL5
- Как самому создать советника или индикатор - Алгоритмический трейдинг, торговые роботы
Здравствуйте. Ведь переменные терминала сохраняются при перезагрузке терминала? Вот я запускаю советника, в OnInit создаю переменную и всё ок, перезапускаю терминал и Alert мне сообщает что переменная не найдена и он создаёт её заново
Код пожалуйста для воспроизведения.
Код пожалуйста для воспроизведения.
Специально написал минимальный код для проверки. Дважды проверяю алертом
#property copyright "Copyright 2020, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict string gvname; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- gvname="val_"+Symbol(); Alert (GlobalVariableCheck(gvname)); if(GlobalVariableCheck(gvname)==false) { if(GlobalVariableTemp(gvname)==true) GlobalVariableSet(gvname,0); } Alert (GlobalVariableCheck(gvname)); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- } //+------------------------------------------------------------------+
Специально написал минимальный код для проверки. Дважды проверяю алертом
Справка GlobalVariableTemp
Примечание
Временные глобальные переменные существуют только во время работы клиентского терминала, после закрытия терминала они автоматически уничтожаются. При выполнении операции GlobalVariablesFlush() временные глобальные переменные на диск не записываются.
После создания временной глобальной переменной доступ к ней и ее модификация осуществляется точно так же, как и к обычной глобальной переменной клиентского терминала.
Вам нужна функция
Устанавливает новое значение глобальной переменной |
Если переменная не существует, то система создает новую глобальную переменную.
Справка GlobalVariableTemp
Примечание
Временные глобальные переменные существуют только во время работы клиентского терминала, после закрытия терминала они автоматически уничтожаются. При выполнении операции GlobalVariablesFlush() временные глобальные переменные на диск не записываются.
После создания временной глобальной переменной доступ к ней и ее модификация осуществляется точно так же, как и к обычной глобальной переменной клиентского терминала.
Вам нужна функция
Устанавливает новое значение глобальной переменной |
Если переменная не существует, то система создает новую глобальную переменную.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования