Советники: GlobalVariable

 

GlobalVariable:

Этот советник демонстрирует пример работы с глобальными переменными. Задача советника: сохранить результат расчетов в глобальную переменную, а при новой инициализации получить значение глобальной переменной.

Автор: Karputov Vladimir

 
Automated-Trading:

GlobalVariable:

Автор: Karputov Vladimir 

получили глобальную переменную, сохранили глобальную переменную, и что? Извини, уважаемый, но я ничего не понял. Зачем вообще сдались эти переменные?
 
spbkit:
получили глобальную переменную, сохранили глобальную переменную, и что? Извини, уважаемый, но я ничего не понял. Зачем вообще сдались эти переменные?

Извиняю Вас. Данный пример возник в ответ на просьбу одного из форумчан: нужен был пример работы с глобальными переменными терминала. Глобальные переменные терминала сохраняют свои значения после перезагрузки терминала и в данном примере показан приём чтения и записи глобальной переменной.

 

Спасибо, полезный код! Только не получилось применить его для МТ4... Вас не затруднит дать совет, как лучше адоптировать данный пример кода для МТ4?

 
Aleksandr Glebov:

Спасибо, полезный код! Только не получилось применить его для МТ4... Вас не затруднит дать совет, как лучше адоптировать данный пример кода для МТ4?

Достаточно поменять расширение файла с *.mq5 на *.mq4. 
 
Не понятный пример... Так и не получилось его применить... И как сохранить две переменные (два уровня цены), не понятно...?
 
Aleksandr Glebov:
Не понятный пример... Так и не получилось его применить... И как сохранить две переменные (два уровня цены), не понятно...?

Покажите, что не получилось, пожалуйста.

 

Aleksandr Glebov:
Не понятный пример... Так и не получилось его применить... И как сохранить две переменные (два уровня цены), не понятно...?

А в каком месте программы Вы хотите сохранять значения: в OnInit(), в OnTick() или в OnDeinit?

 
Karputov Vladimir:

Покажите, что не получилось, пожалуйста.

 

А в каком месте программы Вы хотите сохранять значения: в OnInit(), в OnTick() или в OnDeinit?

Сохраняю значения в OnTick() , а получить пытался с OnInit(), но только не получилось. Заработало только таким образом: сохранил в OnTick() - GlobalVariableSet("ООР", ООР );  и здесь же, в OnTick(), самое первое условие - если ордеров больше 0, то ООР = GlobalVariableGet("ООР"). Переменная ООР, теперь, при перезагрузке, не обнуляется. Но как только ордера открываются в процессе нормальной работы, нужная переменная принимает условия прошлой глобальной переменной... Надо както попытаться получить значения с  OnInit()...?
 
Aleksandr Glebov:
Сохраняю значения в OnTick() , а получить пытался с OnInit(), но только не получилось. Заработало только таким образом: сохранил в OnTick() - GlobalVariableSet("ООР", ООР );  и здесь же, в OnTick(), самое первое условие - если ордеров больше 0, то ООР = GlobalVariableGet("ООР"). Переменная ООР, теперь, при перезагрузке, не обнуляется. Как думаете это правильный вариант написания кода?
А какая цель сохранения цен в глобальных переменных? Что Вы хотите реализовать? Какой алгоритм действия?
 
Karputov Vladimir:
А какая цель сохранения цен в глобальных переменных? Что Вы хотите реализовать? Какой алгоритм действия?
При перезагрузке две переменные обнуляюся и из-за этого при загрузке сов.не правильно работает... Мне нужно научится сохранять эти переменные на такой случай (если ордера есть при загрузке то, использовать данные с глоб.).
 
Aleksandr Glebov:
При перезагрузке две переменные обнуляются и из-за этого при загрузке советник не правильно работает. Мне нужно научится сохранять эти переменные на такой случай (если ордера есть при загрузке то, использовать данные с глоб.).

В OnDeinit() пропишите условие своё условие - нужно или нет перезаписывать свои глобальные переменные.

А вообще ещё раз спрашиваю: "Какой алгоритм действия?" На данный момент куча-мала. Поймите, что пока Вы сами не поймёте что нужно - Вы не сможете это реализовать. Нарисуйте блок-схему - это поможет.

Причина обращения: