Скачать MetaTrader 5

Советники: GlobalVariable

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Занеси ветку в избранное. Отслеживай изменения еще быстрее!
Automated-Trading
Админ
99093
Automated-Trading 2015.09.22 14:00 

GlobalVariable:

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

Автор: Karputov Vladimir

spbkit
34
spbkit 2015.09.24 15:29  
Automated-Trading:

GlobalVariable:

Автор: Karputov Vladimir 

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

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

Aleksandr Glebov
642
Aleksandr Glebov 2016.01.15 19:14  

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

Vladimir Karputov
Модератор
45559
Vladimir Karputov 2016.01.15 19:16  
Aleksandr Glebov:

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

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

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

 

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

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

Aleksandr Glebov
642
Aleksandr Glebov 2016.01.18 12:57  
Karputov Vladimir:

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

 

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

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

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

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

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