Скачать MetaTrader 5

Глобальная переменная

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Продавай продукты через Маркет и отслеживай статистику продаж
protr
358
protr 2015.10.31 08:23 

Помогите разобраться. 

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

После чего при последующих запусках терминала использовать ее.

Как в нужный момент по моей команде при следующем запуске (когда нужно присвоить новое значение) сделать это.

Спасибо. 

Vasyl Nosal
18543
Vasyl Nosal 2015.10.31 08:27  

Тебе нужна надглобальная.

GlobalVariableSet

Igor Konyashin
3110
Igor Konyashin 2015.10.31 08:49  

*

Документация по MQL5: Глобальные переменные терминала
Документация по MQL5: Глобальные переменные терминала
  • www.mql5.com
Глобальные переменные терминала - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Alexey Volchanskiy
16671
Alexey Volchanskiy 2015.10.31 11:10  
Vasyl Nosal:

Тебе нужна надглобальная.

GlobalVariableSet

Надглобальная? :))) Еще одна замена неудачному названию "Глобальные переменные". Назвали бы "Переменные терминала", а то путаница.
Sergey Eremin
4362
Sergey Eremin 2015.10.31 13:26  

Вообще, это называется "глобальные переменные терминала" :)

Если не забывать третье слово, то путаницы меньше.

Кто не верит - зайдите таки в документацию (Igor Konyashin (i_logic) выше дал ссылку).

Документация по MQL5: Глобальные переменные терминала
Документация по MQL5: Глобальные переменные терминала
  • www.mql5.com
Глобальные переменные терминала - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
protr
358
protr 2015.10.31 14:57  

Можно некоторые разъяснения... а то не пойму. 

Припустим мой советник при запуске запоминает Point_ как глобальную переменную Start_Point. Но ведь она будет обновляться на каждом тике. И как после этого применить новое значение (когда будет нужно) не переписывая код изменением имени переменной.

А в  GlobalVariableSet нужна на перед объявлять string Start_Point; или можно GlobalVariableSet(string Start_Point, Point_);

Спасибо.  

void OnTick()
  {
      F_Point();
      double b = F_Point() + 4*Point;
      Print ("F_Point() ",F_Point(),"b ",b);
  }
  
double F_Point(){
string Start_Point;

double Point_ = NormalizeDouble((Ask+Bid)/2,5);
GlobalVariableSet(Start_Point, Point_);


return(GlobalVariableGet(Start_Point));
}
Alexey Volchanskiy
16671
Alexey Volchanskiy 2015.10.31 15:54  
protr:

Можно некоторые разъяснения... а то не пойму. 

Припустим мой советник при запуске запоминает Point_ как глобальную переменную Start_Point. Но ведь она будет обновляться на каждом тике. И как после этого применить новое значение (когда будет нужно) не переписывая код изменением имени переменной.

А в  GlobalVariableSet нужна на перед объявлять string Start_Point; или можно GlobalVariableSet(string Start_Point, Point_);

Спасибо.  

Имя переменной Start_Point не задано - пустая строка.
protr
358
protr 2015.10.31 15:59  
Alexey Volchanskiy:
Имя переменной Start_Point не задано - пустая строка.

А так не пойдет?

GlobalVariableSet(string Start_Point = "Start_Point", Point_); 

protr
358
protr 2015.10.31 16:00  
будет ли она перезаписываться на каждом тике?
Alexey Viktorov
6806
Alexey Viktorov 2015.10.31 16:59  
Alexey Volchanskiy:
Надглобальная? :))) Еще одна замена неудачному названию "Глобальные переменные". Назвали бы "Переменные терминала", а то путаница.
Я, для себя, делю их на глобальные переменные (GV) и переменные глобального уровня. Но, видимо не всем это приемлемо. Иначе MQ давно-бы уже что-то исправили.
forexman77
2118
forexman77 2015.10.31 19:57  
Мне как-то подсказали: записать данные в файл.
123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий