Отладка советника на истории с визуализацией

 

Приветствую!

Подскажите плиз. я несколько недопонимаю.

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

Возможна ли отладка советника на истории? Т.е. жму F5 и потом пошагово гоню советника, а он берет данные из истории, например с того момента где я ему укажу. 

И в это время, еще хотелось бы наблюдать на графике, открыл он позицию или нет, как это можно было видеть в тестере MT4.

Возможно ли это сейчас или нет? А то я вообще не понимаю смысл отладчика, если он не умеет работать на истории.

Если я не прав, ткните плиз куда нить почитать про это..

Спасибо 

 
St0nE:

Приветствую!


Здравствуйте!

Отладки на истории нет, визуализации тоже нет.

 
mrProF:

Здравствуйте!

Отладки на истории нет, визуализации тоже нет.

Пипец, я в шоке.... :-( А если у меня советник на H1 работает?

 Смысл тогда отладчика?

Ну хотя бы тогда в качестве пожелания разработчикам:

 

В настройках отладчика указываем дату с которой тестируем, валюту, перио и метод тестирования, например ОХЛС, или для H1 - ОХЛС М15 

нажимаем F5, запускается график с данными до даты указанной в отладчике.

при прохождении пошагово полного цикла советника, присылаются следующие значения бид-аск в соответствии с настройками в отладчике.

на графике отображается движение цены и закрытие-открытие ордеров, как в МТ4.

 

Сейчас я просто реально, не понимаю смысл отладчика...

Спасибо.. 

 

 

 

 

 
St0nE:

Пипец, я в шоке.... :-( А если у меня советник на H1 работает?

 Смысл тогда отладчика?

Ну хотя бы тогда в качестве пожелания разработчикам:

 

В настройках отладчика указываем дату с которой тестируем, валюту, перио и метод тестирования, например ОХЛС, или для H1 - ОХЛС М15 

нажимаем F5, запускается график с данными до даты указанной в отладчике.

при прохождении пошагово полного цикла советника, присылаются следующие значения бид-аск в соответствии с настройками в отладчике.

на графике отображается движение цены и закрытие-открытие ордеров, как в МТ4.

 

Сейчас я просто реально, не понимаю смысл отладчика...

Спасибо.. 

 

 

 

 

Отладчик нужен для проверки последовательности работы логики программы, для тестирования на истории есть тестер. то что в тестере нет пока режима визуализации это конечно обидно, но все мы очень надеемся что он скоро появиться.
 
sergey1294:
Отладчик нужен для проверки последовательности работы логики программы, для тестирования на истории есть тестер. то что в тестере нет пока режима визуализации это конечно обидно, но все мы очень надеемся что он скоро появиться.

Ну я бы сказал, что это утверждение слишком обобщенное..

Возьмем конкретный пример.

У меня советник работает исключительно только с ценой и все... Ни одного индикатора я не использую.

Допустим я запустил советник и он нашел необходимые мне значения цены, расчитал цель на основании определенных условий...

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

Как мне это сейчас реализовать, я даже представить себе не могу. В этом плане МТ4 гораздо лучше, потому что там есть визуализация и я накидав на экран значения переменных, я мог хоть как то отслеживать отработку алгоритма,

в МТ5 это не возможно в принципе, потому как: 

1.) Визуализации нет вообще  

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

И как мне здесь отлаживать программу? 

 
St0nE:

Ну я бы сказал, что это утверждение слишком обобщенное..

Возьмем конкретный пример.

У меня советник работает исключительно только с ценой и все... Ни одного индикатора я не использую.

Допустим я запустил советник и он нашел необходимые мне значения цены, расчитал цель на основании определенных условий...

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

Как мне это сейчас реализовать, я даже представить себе не могу. В этом плане МТ4 гораздо лучше, потому что там есть визуализация и я накидав на экран значения переменных, я мог хоть как то отслеживать отработку алгоритма,

в МТ5 это не возможно в принципе, потому как: 

1.) Визуализации нет вообще  

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

И как мне здесь отлаживать программу? 

На данный момент могу посоветовать использовать операторы Print, Printf или Alert
 
sergey1294:
На данный момент могу посоветовать использовать операторы Print, Printf или Alert
У оператора printf есть проблемы с синхронностью. До недавнего времени, он действовал более менее синхронно с алгоритмом, но страшно его тормозил по неведомой причине. Когда об этом упомянули - тормоза пропали, но исчезла и синхронность. Например в теле программы рисования есть операторы printf. Что происходит: сначала появляется индикатор, а потом уже идет печать, хотя она в теле алгоритма. Но справедливо будет сказать, что так происходит не всегда. Часто синхронность есть.
 
-Alexey-:
У оператора printf есть проблемы с синхронностью. До недавнего времени, он действовал более менее синхронно с алгоритмом, но страшно его тормозил по неведомой причине. Когда об этом упомянули - тормоза пропали, но исчезла и синхронность. Например в теле программы рисования есть операторы printf. Что происходит: сначала появляется индикатор, а потом уже идет печать, хотя она в теле алгоритма. Но српведливо будет сказать, что так происходит не всегда. Часто синхронность есть.
Это по моему и с Print - ом.. Мне понадобилось вывести много информации для проверки(своеобразная отладка) в лог, но синхронность или еще что, но то что выводиться явно недостаточно для проверки.  Есть какие нибудь выходы из этой ситуации? Как правильнее сделать?
 
aharata:
Это по моему и с Print - ом.. Мне понадобилось вывести много информации для проверки(своеобразная отладка) в лог, но синхронность или еще что, но то что выводиться явно недостаточно для проверки.  Есть какие нибудь выходы из этой ситуации? Как правильнее сделать?
Опишите сутуацию поподробнее, если это возможно. Что надо вывести? Чего недостаточно?
 

Видимо, речь идет о том, что при массовой рас-Print-овке часть сообщений теряется, а вывод производится с задержкой.

Это сделано специально, чтоб не тормозить выполнение программы.


Выход 1 - смотреть полнную информацию в лог-файле.

Выход 2 - использовать подход, предложенный в статье Поиск ошибок и ведение лога

 

Спасибо за ответы. Да, речь шла о массовой принтовке и как раз смотрю все в лог файлах - все равно там не вижу полной картины. Ситуация простая, скопировал исторические данные - пятиминутные бары - затем в поисках ошибки стал искать неувязки - в коде без всяких условий написал примерно в таком виде:

Print("Начало проверки");

...

int copied=CopyRates(_Symbol,PERIOD_M1,quotings[p].time,5,m);

Print("---------------------");
for(int i=0;i<ArrayRange(m,0);i++) Print("минутный бар в 5-тиминутном: ",m[i].open," ",m[i].high," ",m[i].low," ",m[i].close," ",m[i].time," ",m[i].tick_volume);        
Print("---------------------");


В логах много чего не хватает, например самого первого принта. Ставил и sleep ы и синхронизацию смотрел и подкачку истории...

Сейчас намерен воспользоваться "выходом 2" - в файл буду сам отправлять.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Периоды графиков
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Периоды графиков
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Периоды графиков - Документация по MQL5
Причина обращения: