![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Господа прогеры...
Тебе бы и не знать про это, на мт4 ?
Сам же пользуешься предопределёнными Ask Bid ?
В мт5 для всей структуры MqlTick их почему то нет.
Вызвать функцию, заполнить структуру, и только потом получить значение.
Или сразу получить значение, есть разница?
Или это не в мою сторону?
Хоть бы обозначил кому писал ))
Предопределённые переменные, для текущего тика, наверно было бы лучше.
Разработчики ранее уже поясняли, что есть принципиальное ограничение на прямой доступ
и в общем случае t1 не равно t2. Более того значения полей внутри самих как t1 так и t2 могут в итоге относится вообще к разным тикам
Разработчики ранее уже поясняли, что есть принципиальное ограничение на прямой доступ
и в общем случае t1 не равно t2. Более того значения полей внутри самих как t1 так и t2 могут относится вообще к разным тикам, при том что там связанные поля (должны относится к одному тику)
Брр, какое принципиальное ограничение?
Структура в вашем примере тут лишняя, её не нужно заполнять.
Из сокета пришло значение, записали в переменную _Ask, _Bid и т.д. по структуре.
_Ask != _Ask по вашему?
Ограничение возникает если заполнять структуру, что занимает какое то время.
Не нужно её заполнять, а отдавать напрямую _Ask, _Bid и т.д.
Брр, какое принципиальное ограничение?
Структура в вашем примере тут лишняя, её не нужно заполнять.
Можно и без структуры переписать. В общем случае ask1 не равен ask2
Можно и без структуры переписать. В общем случае ask1 не равен ask2
Т.е. это запросы в не синхронную среду, и ответ получается по текущему состоянию среды? А ОнТик ловит текущий тик и отрабатывает советник всего лишь, но при этом запросы по структуре тика при отработке советника могут получить ответы от следующих тиков?
Можно и без структуры переписать. В общем случае ask1 не равен ask2
Так не нужно 100500 диджитс использовать, где вещественное число последней цифрой отличается 0.0000000000000000000001
Для каждой переменной свой диджитс, для цен double максимум 8.
Выпустили бету 2652, из важного:
22% - отлично.
SymbolInfoTick - на домашней машине на глаз заметил, что не алертит. Однако, сделал в Журнале фильтр по этим алертам и увидел, что их стало гораздо больше, чем за тот же период сутки назад выдал 2650.
Отправил оба лога в ЛС.
Т.е. это запросы в не синхронную среду, и ответ получается по текущему состоянию среды? А ОнТик ловит текущий тик и отрабатывает советник всего лишь, но при этом запросы по структуре тика при отработке советника могут получить ответы от следующих тиков?
Да.
Для массовой работы с тиками ставьте больше памяти.
4 гб (цена 20 евро) - это никуда не годится в 2020 году, если речь идет об аналитике и исследованиях.
Речь идет об одноразовом вызове CopyTicks. Делается для того, чтобы на реале сделать по этим тикам виртуальный бэктест в OnInit, а дальше уже продолжать его реал-тайм, скармливая только свежие тики.
Как компромисс, предлагаю после CopyTicks, вызванных в OnInit, сразу освобождать память в Терминале. Тогда можно не вводить функцию принудительного охлаждения CopyTicks.
Сейчас Sleep-вариант охлаждения - очень костыльный. Но выше показал, как этот костыль экономит память.
Сейчас получается так, что 20 советников даже на медленном VPS пашут быстро. Но их старт - серьезная проблема.
Вот советник, показывающий проблему.
Результат.
22% - отлично.
SymbolInfoTick - на домашней машине на глаз заметил, что не алертит. Однако, сделал в Журнале фильтр по этим алертам и увидел, что их стало гораздо больше, чем за тот же период сутки назад выдал 2650.
Отправил оба лога в ЛС.
Ускорение в десятки раз в случаях массового параллельного доступа.
Для остальных случаев только апгрейд процессора, памяти и операционки.