Почему пропадают глобальные переменные? - страница 2

 
Leonids Drics #:

Пара уточнений. Речь идет о глобальных переменных клиентского терминала,  доступ к которым осуществляется при помощи функций GlobalVariable...(). Также, из Справки: "Глобальные переменные существуют в клиентском терминале 4 недели с момента последнего обращения, после этого автоматически уничтожаются. Обращением к глобальной переменной считается не только установка нового значения, но и чтение значения глобальной переменной."

Тестером стратегий не пользуюсь, окно тестера закрыто. Торговля на клиентском терминале из редактора на реальных данных, а не из ex5, чтобы можно было в любой момент программу остановить и посмотреть, что там происходит. Следов жизнедеятельности программы в папках тестера нет, все следы только в папках терминала. Т.е. очевидно, что торговля НЕ в песочнице.

Первый раз заметил так. Запускал неоднократно, никаких претензий к глобальным не было.  2-3 дня (гораздо меньше 4 недель) программу не трогал. Вернулся - глобальных нет. На форум за помощью обратился, когда такое случилось во второй раз

Сегодня запускал, выгружал, пока глобальные не пропали.

Любой отладчик - песочница. Деталей не знаю, это - к разработчикам. 

Я не знаком с архитектурой МТ5, но сам разделил бы файлы, хранящие GV терминала, работающего в реальном времени (Real, Demo) и файлы, работающие на истории (тестер, отладчик). 

Любой отладчик - песочница. Всегда. 

 
Алексей Тарабанов #:

Авиационная привычка. "Последний вылет" - звучит грустно, поэтому принято говорить "крайний". 

Последний вчера, последний сегодня сильно отличаются от последнего в жизни. Это профессиональный идиотизм, но каждый дрмочит как хочет. Если уж сочинили себе такую примету, то использовать это слово во всех случаях совсем не обязательно.

 
Alexey Viktorov #:

Последний вчера, последний сегодня сильно отличаются от последнего в жизни. Это профессиональный идиотизм, но каждый дрмочит как хочет. Если уж сочинили себе такую примету, то использовать это слово во всех случаях совсем не обязательно.

Да кругом одни лётчики, да космонавты

 
Artyom Trishkin #:

Да кругом одни лётчики, да космонавты

А ведь это идёт хз с каких времён… Я в детстве не задумывался об этом, да и не знал откуда это и что означает. Но всегда спрашивали «кто крайний…» в очереди. А когда начал понимать откуда так строится вопрос, я стал спрашивать «за кем я буду…» 

 
Алексей Тарабанов #:

Любой отладчик - песочница. Деталей не знаю, это - к разработчикам. 

Я не знаком с архитектурой МТ5, но сам разделил бы файлы, хранящие GV терминала, работающего в реальном времени (Real, Demo) и файлы, работающие на истории (тестер, отладчик). 

Любой отладчик - песочница. Всегда. 

А что разработчики здесь не водятся? И о каком отладчике разговор? Отлаживаю торговлей. Детали я понимаю так: MetaEditor может работать и как компилятор, и как интерпретатор. При компиляции  код программы mq5 переводится в машинный код целиком (формат ex5) для исполнения  ex5 в пакетном режиме. А интерпретатор исполняет код программы построчно. Прочел строку - исполнил. Один и тот же код программы mq5  исполняется в одной и той же среде, на одном и том же торговом счете. Запускай компилированный из mq5 машинный код ex5 или или интерпретируй mq5 в машинный код построчно. Нет никакой разницы. 

 
Leonids Drics #:

Что надо сделать, чтобы глобальные не пропадали? Как увидеть, в какой момент они пропадают?

Для всех запускаемых EX5 в исходнике переопределить (макросом) GlobalVariable-функции, чтобы с их вызовом шла распечатка запуска.

Тогда в случае несанкционированного удаления со стороны EX5 сможете по логам найти виновного.

 
fxsaber #:

Для всех запускаемых EX5 в исходнике переопределить (макросом) GlobalVariable-функции, чтобы с их вызовом шла распечатка запуска.

Тогда в случае несанкционированного удаления со стороны EX5 сможете по логам найти виновного.

Контрольные точки - эффективный инструмент, но работает он исключительно внутри программы. 

Работа в тестере, или отладчике подразумевает периодический прогон на реальных (не исторических) данных. 

При этом вполне возможны нежданчики, отслеживать которые возможно через контрольную печать в Init. 


Блин, был же JCL когда-то... 

 
Artyom Trishkin #:

Да кругом одни лётчики, да космонавты

Ну, да. И спецназ, выводящий руководство партии и правительства из-под ядерных завалов. 

 
Алексей Тарабанов #:

Ну, да. И спецназ, выводящий руководство партии и правительства из-под ядерных завалов. 

В последний день Помпеи

 
Алексей Тарабанов #:


Я не знаком с архитектурой МТ5, но сам разделил бы файлы, хранящие GV терминала, работающего в реальном времени (Real, Demo) и файлы, работающие на истории (тестер, отладчик). 

В справке так и написано https://www.metatrader5.com/ru/terminal/help/algotrading/testing_features#globals

Глобальные переменные торговой платформы

При тестировании глобальные переменные торговой платформы также эмулируются, но они никак не связаны с настоящими глобальным переменным платформы, которые можно увидеть в платформе по кнопке F3. Это означает, что все операции с глобальными переменными платформы при тестировании производятся вне самой торговой платформы (в агенте тестирования).


Особенности тестирования - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Идея автоматической торговли привлекательна тем, что торговый робот может без устали работать 24 часа в сутки и семь дней в неделю. Робот не знает...
Причина обращения: