Новая версия платформы MetaTrader 5 build 2007: Экономический календарь, MQL5-программы в виде сервисов - страница 67

 
Edgar:

Build 2007. Один терминал MT5 и 3 шт MT4 установлены на коммерческом VPS. Память занята на 94%

Реальные счета. Эксперты запустились без ошибок. В логах терминала несколько сообщений типа:

2019.05.11 10:25:20.442 MemoryException 31703040 bytes not available, 0 heapmin result

Раньше не обращал внимания, почти не ходил в лог терминала (только в лог экспертов). Что это? Будут эксперты работать правильно в понедельник, или непредсказуемо?

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

Память выделяется не только явно в советнике (например, при ArrayResize), но и самим терминалом (на объекты, объявленные глобально, на тайм-серии, которые советник или используемые индикаторы запрашивают). И вот на что-то не хватает.

Проверка есть, но обработка примитивная — принт в журнал.

Советник разве не выгружается при этом? Поищите такие же записи в старых логах на всякий случай.

 
Andrey Khatimlianskii:

Память выделяется не только явно в советнике (например, при ArrayResize), но и самим терминалом (на объекты, объявленные глобально, на тайм-серии, которые советник или используемые индикаторы запрашивают). И вот на что-то не хватает.

Проверка есть, но обработка примитивная — принт в журнал.

Советник разве не выгружается при этом? Поищите такие же записи в старых логах на всякий случай.

Вы правы, надо было смотреть старые журналы. Голова болит весь день, не соображал.

Эти сообщения были и при прошлой перезагрузке терминала во вторник, 7 мая. Ранее - никогда. Всю неделю терминал с  7ю экспертами работал нормально, несмотря на сообщения. Терминал не обновлялся давно, код экспертов подвергался не более чем косметическим коррекциям, VPS работал с начала аренды без замечаний, несмотря на самую дешëвую и слабую конфигурацию.

Я успокоился более-менее. Но хотелось бы более информативной диагностики сбоев.

 
Edgar:

Вы правы, надо было смотреть старые журналы. Голова болит весь день, не соображал.

Эти сообщения были и при прошлой перезагрузке терминала во вторник, 7 мая. Ранее - никогда. Всю неделю терминал с  7ю экспертами работал нормально, несмотря на сообщения. Терминал не обновлялся давно, код экспертов подвергался не более чем косметическим коррекциям, VPS работал с начала аренды без замечаний, несмотря на самую дешëвую и слабую конфигурацию.

Я успокоился более-менее. Но хотелось бы более информативной диагностики сбоев.

В любом случае, вы работаете на грани. В любой момент может что-то случиться.

Обновили бы конфигурацию..

 
Andrey Khatimlianskii:

В любом случае, вы работаете на грани. В любой момент может что-то случиться.

Обновили бы конфигурацию..

Это да, на грани. Но отчасти это и эксперимент. Объëм заказываемой услуги должен соответствовать необходимости. Вот и выясняю необходимый объëм. Добавлю пожалуй ещë 1 Гб памяти для 4 своих терминалов с 28 экспертами. Процессор-то занят на 20%. Хотя другие предпочитают сразу заказывать услугу с запасом. Я у предыдущего хостера платил с $8 до $50, повышая ТП, ибо процессор очень часто был на 100%.

Думаю, тема закрыта, уже оффтопик.
 
Aleksey Vyazmikin:

При оптимизации просадка в процентах, не?

Поэтому уточните либо как считаете, либо с каким из четырех вариантов это значение сходится (предполагаю, что с STAT_EQUITY_DD_RELATIVE).

Там есть показатель Balance Drawdown Maximal в отчете оптимизации где просадка в % и в деньгах. использую его значение.

Значение PL беру на конец оптимизации
 
Andrey Azatskiy:

Там есть показатель Balance Drawdown Maximal в отчете оптимизации где просадка в % и в деньгах. использую его значение.

Значение PL беру на конец оптимизации

Ну так правильно, а надо брать максимальную просадку в деньгах, а не в процентах с эквивалентом в денегах.

 
Предложение, добавить новый тип буфера (ENUM_INDEXBUFFER_TYPE), для стиля ARROW, по аналогии с типом буфера INDICATOR_COLOR_INDEX, буфер с номером символа (Wingdings), где будет храниться номер символа.
 
SEM:
Предложение, добавить новый тип буфера (ENUM_INDEXBUFFER_TYPE), для стиля ARROW, по аналогии с типом буфера INDICATOR_COLOR_INDEX, буфер с номером символа (Wingdings), где будет храниться номер символа.

Предлагал подобное несколько лет назад. Отклонили.

 
Реально сюжетный движок надо переписать. С mt4 хорошо работает, потому что нужен только буфер на участок. Но в MT5 это хаос. Логичным является использование иерархии. Каждый график инкапсулирует свои буферы, избегая проблем с индексными ссылками. Когда вы удаляете один участок для добавления другого с другим числом буферов, все становится беспорядком
 
Aleksey Vyazmikin:

Ну так правильно, а надо брать максимальную просадку в деньгах, а не в процентах с эквивалентом в денегах.

Ну так это оно же и то же. Это просадка которая считается по кривой PL.
К примеру торговля закончилась с результатом 100 р. Но в момент когда PL был равен 30 р., у нас была просадка до 20 р. - это была максимальная просадка за всю историю и равняется она 10 р. .

Я беру 100 р. как профит и 10 р. как просадку. По подобному алгоритму я высчитываю просадку и она сходится с показателем Balance Drawdown Maximal. Не знаю какую просадку Вы еще брать можете...

Если брать просадку как максимальную убыточную сделку - то это не верно.