![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ускорение в десятки раз в случаях массового параллельного доступа.
Для остальных случаев только апгрейд процессора, памяти и операционки.
В ЛС сравнительные логи с одной и той же машины.
Речь идет об одноразовом вызове CopyTicks. Делается для того, чтобы на реале сделать по этим тикам виртуальный бэктест в OnInit, а дальше уже продолжать его реал-тайм, скармливая только свежие тики.
Как компромисс, предлагаю после CopyTicks, вызванных в OnInit, сразу освобождать память в Терминале. Тогда можно не вводить функцию принудительного охлаждения CopyTicks.
Сейчас Sleep-вариант охлаждения - очень костыльный. Но выше показал, как этот костыль экономит память.
Сейчас получается так, что 20 советников даже на медленном VPS пашут быстро. Но их старт - серьезная проблема.
Вы же сами не так давно стресс-тесты гоняли и по факту требовали мгновенной выдачи глубоких тиков на каждом тике.
То есть, и вы и 100% других разработчиков применяли и будут применять ожидающие полного кеша стратегии запросов. С каждым разом все более затратных и лобовых экспертов пишут.
Поэтому мы не будем отменять кеши ни в коем случае, а будем рекомендовать ставить 16-32 гб памяти и забыть о проблемах и задержках.
Поведение и экономия на VPS (уложиться в 512 мб-1 гб) нас не волнует вообще.
Вы же сами не так давно стресс-тесты гоняли и по факту требовали мгновенной выдачи глубоких тиков на каждом тике.
То есть, и вы и 100% других разработчиков применяли и будут применять ожидающие полного кеша стратегии запросов. С каждым разом все более затратных и лобовых экспертов пишут.
Поэтому мы не будем отменять кеши ни в коем случае, а будем рекомендовать ставить 16-32 гб памяти и забыть о проблемах и задержках.
Поведение и экономия на VPS (уложиться в 512 мб-1 гб) нас не волнует вообще.
Выше дополнил свой пост кодом. Речь идет про OnInit, а не что-то другое. Горячий CopyTicks очень даже нужен, но не в OnInit.
Как компромисс, предлагаю после CopyTicks, вызванных в OnInit, сразу освобождать память в Терминале.
Ни в коем случае!
А если я наоборот поднимаю кэш в ОнИнит, чтобы потом работать с ним без задержек?
Лучше ввести функцию выгрузки кэша терминала.
Она нужна не только для тиков, но и для тайм-серий и индикаторов (скринер по 5К инструментов и 5 ТФ попробуйте написать).
@Renat?
Ни в коем случае!
А если я наоборот поднимаю кэш в ОнИнит, чтобы потом работать с ним без задержек?
Тиковый кеш живет всего 10 секунд.
Скринер тиковой истории в виде скрипта (единственная прога, работающая в Терминале) съедает до 6 Гб, если брать котиры за пять месяцев.
Чем быстрее машина и интернет, тем больше загрузка по памяти. Т.е. за 10 секунд накапливается внутренних кешей Терминала на несколько символов.
Другого способа узнать, что появился новый тик во время работы OnTick, не придумал.
Три варианта.
Через бары новый тик лучше не определять.
Результат (inAmount = 15).
Длительность рассинхрона может доходить до минуты. Где-то косяк.
Похоже, причина тормозов SymbolInfoTick в параллельном обращении.
Результат (inAmount = 15).
> 100 ms на выполнение SymbolInfoTick. Понятно, что код самострел. Но он показывает причину, почему проскакивают тормоза на обычных советниках.