Скачать MetaTrader 5

Советники: GlobalVariable

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Automated-Trading
Админ
110869
Automated-Trading  

GlobalVariable:

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

Автор: Karputov Vladimir

spbkit
34
spbkit  
Automated-Trading:

GlobalVariable:

Автор: Karputov Vladimir 

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

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

Aleksandr Glebov
642
Aleksandr Glebov  

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

Vladimir Karputov
Модератор
85754
Vladimir Karputov  
Aleksandr Glebov:

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

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

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

 

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

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

Aleksandr Glebov
642
Aleksandr Glebov  
Karputov Vladimir:

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

 

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

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

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

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

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий