MT5 крякнул - страница 3

 
Vladimir:
В настройках графиков того же брокера поставил минимум точек (5000), стали работать одновременно 12 советников.

Так я и по истории лазию, тренируюсь. В том числе по минутной. 5000 мало. Например в 2017-м году сишка тестила дневной уровень. Я хочу посмотреть, как это выглядело на минутках, но 5000 минут давно прошло. Как вариант поставить 5000, и включать анлим только когда тренируюсь.
Но терминал снова наглухо завис

 

Господа из поддержки, это уже не смешно. 8 графиков, 7 обычные контракты, из них все дневные, и только один минутный. Еще один сплайс дневной. При перезагрузке терминала почти глухое виселово, еле шевелится мышка. И длится это неприлично долго. Миллион баров в окне. Что с терминалом? Как поправить?
ЗЫ. Хотел накидать скриптик, чтобы он менял количество бар в окне в зависимости от тф. Но свойство CHART_VISIBLE_BARS рид-онли))). Чувствую себя заложником ситуации, на которую не могу повлиять. Индикаторы, как мы выяснили тоже не причем. 


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

Господа из поддержки, это уже не смешно. 8 графиков, 7 обычные контракты, из них все дневные, и только один минутный. Еще один сплайс дневной. При перезагрузке терминала почти глухое виселово, еле шевелится мышка. И длится это неприлично долго. Миллион баров в окне. Что с терминалом? Как поправить?
ЗЫ. Хотел накидать скриптик, чтобы он менял количество бар в окне в зависимости от тф. Но свойство CHART_VISIBLE_BARS рид-онли))). Чувствую себя заложником ситуации, на которую не могу повлиять. Индикаторы, как мы выяснили тоже не причем. 


Разберитесь со своими советниками - они нещадно грузят систему.

 
vponed:

Господа из поддержки, это уже не смешно. 8 графиков, 7 обычные контракты, из них все дневные, и только один минутный. Еще один сплайс дневной. При перезагрузке терминала почти глухое виселово, еле шевелится мышка. И длится это неприлично долго. Миллион баров в окне. Что с терминалом? Как поправить?

86 графиков, похоже, разных символов. Для каждого нужно перелопатить большую M1-историю в D1 и вывести.

Делается это параллельно: чтение, распаковка и конвертация 86 файлов.

Наверное, такое не происходит бесследно.

 
Все, решил проблему. Индикатор при инициализации пытался получить рыночные данные. Ничего особенного в этом не вижу, но причина тормозов была именно в этом. Кажется логичным, что сначала подгружаются рыночные данные, а потом уже врубаются индикаторы, но в МТ5 это не так. Сначала врубается индикатор, пытается получить рыночные данные и завешивает их получение. Перенес блок-виновник из онинит в конец онкалькулейт, тормоза прекратились.
Открыто 9 сплайсов, анлим баров, минутка. Со всеми нужными индикаторами. Отъел 12% проца. Нормально.
ЗЫ. Вроде я виноват, но все же это ни фига не логично, пытаться подгрузить индикатор не имея самих данных, на которых он строится.
 
fxsaber:

86 графиков, похоже, разных символов. Для каждого нужно перелопатить большую M1-историю в D1 и вывести.

Делается это параллельно: чтение, распаковка и конвертация 86 файлов.

Наверное, такое не происходит бесследно.

Загружено было ровно столько графиков, сколько я написал. Что странный диспетчер имеет ввиду под "графиками" я не знаю. Но явно не то, что мы. В каждом графике был открыт volumes и мой индикатор с лентами. с тремя. даже если считать каждую линию за график, все равно получится меньше.
Да все, я решил проблему. Выше отписал, в чем дело.

 
vponed:
Все, решил проблему. Индикатор при инициализации пытался получить рыночные данные. Ничего особенного в этом не вижу, но причина тормозов была именно в этом. Кажется логичным, что сначала подгружаются рыночные данные, а потом уже врубаются индикаторы, но в МТ5 это не так. Сначала врубается индикатор, пытается получить рыночные данные и завешивает их получение. Перенес блок-виновник из онинит в конец онкалькулейт, тормоза прекратились.
Открыто 9 сплайсов, анлим баров, минутка. Со всеми нужными индикаторами. Отъел 12% проца. Нормально.
ЗЫ. Вроде я виноват, но все же это ни фига не логично, пытаться подгрузить индикатор не имея самих данных, на которых он строится.

Для тез кто в упор не видит и не читает документацию: оставляете один график и на него навешиваете любой стандартный индикатор. В самом индикаторе в блоке OnCalcalculate (в самом начале) ставите принт:

PrintFormat("prev_calculated %d, rates_total %d",prev_calculated,rates_total);

Далее закрываете терминал, удаляете все бары, тики. Запускаете терминал - у Вас ситуация "терминал девственно чист". Смотрите во вкладку "Эксперты".

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


Эксперимент №2: создаёте эксперт в котором создаёте хендл этого индикатора. И на каждом тике выводите принт

PrintFormat("BarsCalculated %d",BarsCalculated(handle));


И индикатор и эксперт навесить на график и далее привести терминал в девственный вид, как описано выше.

Запуск платформы - Для продвинутых пользователей - Справка по MetaTrader 5
Запуск платформы - Для продвинутых пользователей - Справка по MetaTrader 5
  • www.metatrader5.com
По завершении установки в меню "Пуск" создается группа программ торговой платформы, а на рабочем столе дополнительно помещается ярлык...
 
Vladimir Karputov:

Для тез кто в упор не видит и не читает документацию: оставляете один график и на него навешиваете любой стандартный индикатор. В самом индикаторе в блоке OnCalcalculate (в самом начале) ставите принт:

Далее закрываете терминал, удаляете все бары, тики. Запускаете терминал - у Вас ситуация "терминал девственно чист". Смотрите во вкладку "Эксперты".

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


Эксперимент №2: создаёте эксперт в котором создаёте хендл этого индикатора. И на каждом тике выводите принт


И индикатор и эксперт навесить на график и далее привести терминал в девственный вид, как описано выше.

Это ж не я)
Я все время читаю документацию. Просто она очень большая, и я ее читаю не всю. Вдобавок, не всегда понятно, какое именно место из нее надо читать.
Например то, о чем вы пишете, мне в документации не попадалось. Открыл справку по OnInit и CopyRealVolume, там нигде не написано, что вторая может угробить день торговли, при запуске из онинит, а в первой просто нельзя получать рыночные данные. Кстати, большое спасибо вам за помощь и всем неравнодушным тоже.

 
vponed:

Это ж не я)
Я все время читаю документацию. Просто она очень большая, и я ее читаю не всю. Вдобавок, не всегда понятно, какое именно место из нее надо читать.
Например то, о чем вы пишете, мне в документации не попадалось. Открыл справку по OnInit и CopyRealVolume, там нигде не написано, что вторая может угробить день торговли, при запуске из онинит, а в первой просто нельзя получать рыночные данные. Кстати, большое спасибо вам за помощь и всем неравнодушным тоже.

OnInit - Для инициализации. Для инициализации переменных. И да, OnInit не для получения рыночных данных.

Все-таки здорово, что сделали терминальный диспетчер задач.
Документация по MQL5: Основы языка / Переменные / Инициализация переменных
Документация по MQL5: Основы языка / Переменные / Инициализация переменных
  • www.mql5.com
Инициализация переменных - Переменные - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vladimir Karputov:

OnInit - Для инициализации. Для инициализации переменных. И да, OnInit не для получения рыночных данных.

Все-таки здорово, что сделали терминальный диспетчер задач.

OnInit для инициализации программы, а не переменных. По крайней мере так написано в документации. И опять же, там не написано, что он не для получения рыночных данных.

Диспетчер задач это очень хорошо, согласен. Но он требует серьезной доработки.

ИМХО документации нужно что-то вроде вики. или хотя бы комментарии программистов. Сразу бы там отписал про свою ситуацию, чтобы другим неповадно было.