Ошибки, баги, вопросы - страница 3038

 
Andrey Dik:

костыльное решение - держать БД в одной папке, а в папки агентов подсунуть ссылки на папку с БД

предлагал давно ещё реализовать в МТ штатную возможность выбирать путь к папкам с исходниками, историческими базами.

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

Неужто оно?! В справке по МТ5 ничего не нашёл об этой вкладке настроек, когда появилась? - категорически затрудняюсь себе ответить.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

Andrey Dik, 2021.05.30 19:58

костыльное решение - держать БД в одной папке, а в папки агентов подсунуть ссылки на папку с БД

предлагал давно ещё реализовать в МТ штатную возможность выбирать путь к папкам с исходниками, историческими базами.

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


 
Nikolai Semko:

ну для того чтобы выстрелить себе в ногу - существует и так бесчисленное множество вариантов. 
Как раз, если установить max_bars = Unlimited, то потребление памяти резко возрастает. 
Вот пример теминал с  max_bars = 5000

а теперь меняем  max_bars = Unlimited и перегружаем терминал.

При тех же открытых окнах потребление памяти увеличилось на более чем Гб. В моем случае в 11 раз !!!!
Нормальный такой некостыль ))
Можете проверить сами. 
max_bars = Unlimited - это очень жесткая роскошь.

если теперь разговор о потреблении памяти, то помнится пару месяцев назад @fxsaber бился с такой же проблемой, но при загрузке тиков - после освобождения массивов с тиками, терминал не освобождает память, а хранит (секунд 10? ) эти тики в качестве кэша

высока вероятность, что и Ваша просьба будет иметь аналогичную проблему - потребление памяти не уменьшится, а наоборот увеличится ( в пике )

 
Anton:

Это обеспечивает терминал.

Да, именно так.

Спасибо за ответ!

Было бы очень удобно иметь оператор/функцию в языке MQL5, которая проверяет окончание расчета всех индикаторов, и если индикаторы рассчитаны, то выдает true, иначе это приходится делать своей функцией, проверяя каждый буфер индикатора. Это очень актуально для советника, работающего с мульти ТФ индикаторами. И, данная особенность задержки расчета не позволяет корректно использовать режим OHLC, так как на первом да и втором тике не все индикаторы рассчитываются, что критично.

 
Nikolai Semko:
маленький хинт - можно закрыть все графики кроме нужного, тогда потребление будет примерно на уровне того, как если бы ваш костыль реализовали.
 
Andrei Trukhanovich:
маленький хинт - можно закрыть все графики кроме нужного, тогда потребление будет примерно на уровне того, как если бы ваш костыль реализовали.

старперская логика

На VPS у меня так и есть, но рабочем компе уж извините. Не хочу быть ничем ограничен.
 
Igor Makanu:

если теперь разговор о потреблении памяти, то помнится пару месяцев назад @fxsaber бился с такой же проблемой, но при загрузке тиков - после освобождения массивов с тиками, терминал не освобождает память, а хранит (секунд 10? ) эти тики в качестве кэша

высока вероятность, что и Ваша просьба будет иметь аналогичную проблему - потребление памяти не уменьшится, а наоборот увеличится ( в пике )

не понимаю почему.
Я знаю как пользоваться функцией ArrayFree.
Тем более я буду изпользовать функцию, о которой прошу, только лишь раз. Но при этом мне не нужно влючать Unlimited.
Вся история по одному инструменту умещается где-то в 80-100 Мб (и в ОЗУ и на диске). Сейчас на диске это где-то 500 Мб.  
Включил терминал - загрузил массив структур с файла в память и работаешь спокойно. Никаких пиков нет.
Я бы использовал штатную структуру данных. Хрен с тем, что места много есть. Но мне нужно время для High и Low.
Тики я и так использую на полную катушку в формировании моей структуры данных, но они не имеют всей глубины истории и имеют, как правило рассогласования с минутными барами. То тики есть, баров нет, то бары есть - тиков нет.


 
Nikolai Semko:

ну для того чтобы выстрелить себе в ногу - существует и так бесчисленное множество вариантов. 
Как раз, если установить max_bars = Unlimited, то потребление памяти резко возрастает. 
Вот пример теминал с  max_bars = 5000

а теперь меняем  max_bars = Unlimited и перегружаем терминал.

При тех же открытых окнах потребление памяти увеличилось на более чем Гб. В моем случае в 11 раз !!!!
Нормальный такой некостыль ))
Можете проверить сами. 
max_bars = Unlimited - это очень жесткая роскошь.

Если бы моя просьба была бы удовлетворена, то можно ни когда не использовать max_bars = Unlimited.
И кроме экономии памяти в ОЗУ, также очень сильно бы уменьшилась эта папка, которая у меня сейчас около 31 Гб. Думаю где-то в раз 5. И было бы 6Гб вместо 30Гб

Так ты предлагаешь всем сделать невыключаемый Unlimited!

Если у одной программы есть доступ ко всем барам, то он есть у всех.

Почему графики должны показывать тысячу баров, если индикатору доступно миллион?


Другой вопрос — открыть доступ к формату hcc и к папке с историческими файлами. Но там тоже не все просто — кэши, экономный сброс, проверка на корректность, что-то еще..

 

2940

был код индикатора: всё замечательно работало и на чарте и в тестере.

создал новую версию индикатора с внесёнными изменениями: на чарте работает нормально а в тестере нет (совершенно ничего не рисует, хотя в окне данных буферы отображаются и они пустые).

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

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

 
Nikolai Semko:

Я бы использовал штатную структуру данных. Хрен с тем, что места много есть. Но мне нужно время для High и Low.
Тики я и так использую на полную катушку в формировании моей структуры данных, но они не имеют всей глубины истории и имеют, как правило рассогласования с минутными барами. То тики есть, баров нет, то бары есть - тиков нет.

Были бы тики за 20 лет, использовал бы их? Можно я не буду интересоваться — зачем? )

Ну ок, можно настраивать супер-умную само-адаптирующуюся стратегию, и из интереса прогнать ее разок на 20-тилетней тиковой истории. Из интереса. Разок.

Но не для работы, не в виде штатной возможности.


А если рассинхрон, почему веришь барам? Это вообще нонсенс.

 
Andrey Khatimlianskii:

Так ты предлагаешь всем сделать невыключаемый Unlimited!

Если у одной программы есть доступ ко всем барам, то он есть у всех.

Почему графики должны показывать тысячу баров, если индикатору доступно миллион?


Другой вопрос — открыть доступ к формату hcc и к папке с историческими файлами. Но там тоже не все просто — кэши, экономный сброс, проверка на корректность, что-то еще..

не надо открывать доступ к формату hcc и к папке с историческими файлами. Во-первых на это MQ никогда не пойдет, во-вторых в этом нет необходимости. Просто получить массив M1 с этих файлов будет достаточно. 

В том то и дело, что я хочу получить возможность никогда не включать Unlimited. Т.к. такое включение начинает качать данные по всем инструментам. Но мне не нужно по всем, а только по одному в данный момент времени. Зачем мне перегружать систему закачками дополнительных ненужных сотен Мб исторических данных, причем безконтрольный.