Если вы самостоятельно анализируете историю котировок с нашей MOEX (загружая данные в формате .csv из QUIK или откуда-нибудь их скачивая), то наверняка сталкивались с ситуациями различных ошибок и пропусков в данных, на поиск и обработку которых тратится много времени.
Поэтому решил я написать себе пару простеньких python скриптов, которые бы автоматически проверяли данные на пропуски и ошибки. Дальше, как обычно, все пошло по классике:
— У нас было 2 пакета ..., 75 таблеток ..., 5 упаковок ..., пол-солонки… и целое множество… всех сортов и расцветок, а также текила, ром, ящик пива, пинта… и… Не то что бы это был необходимый запас для поездки. Но если начал собирать ..., становится трудно остановиться.
Что получилось в итоге:
cleaner.py
В новой версии мы добавили команды балансовых операций, которые позволят трейдерам пополнять и выводить средства с торгового счета прямо из терминала. Интеграция платежных систем в MetaTrader 5 предоставляет трейдерам возможность управлять денежными средствами в один клик, не покидая клиентский терминал.
Также мы полностью обновили отчет по торговой истории счета. В нем появилось несколько разделов с множеством показателей: графики по торговым результатам, распределения сделок по инструментам, прибыльности, общая статистика и многое другое. Теперь вам будет еще проще и удобнее анализировать результаты торговли.
Помимо этого мы добавили поддержку AVX/AVX2/AVX512-инструкций в компилятор MQL5 и в сам клиентский терминал. Теперь разработчики торговых роботов могут собирать программы с учетом расширенных возможностей современных процессоров, что ускорит векторные вычисления и математические операции.
Также, начиная с билда 3930, сам клиентский терминал MetaTrader 5 будет устанавливаться и обновляться под архитектуру процессора, на который он устанавливается.
Важное объявление о дальнейшей жизни Open Source проекта Os Engine. https://github.com/AlexWan/OsEngine
C 1 сентября 2023 года проект перешёл на коммерческую лицензию. До этого лицензия была Apache 2, т.е. полностью разрешительная. Делается это строго из необходимости защиты растущего проекта от международных посягательств.
Рис. 1. А это наш новый логотип.
Для физических лиц всё остаётся, как и было. Пользуйтесь дорогие товарищи всё в порядке. Тестируйте, торгуйте и зарабатывайте. Пишите заказы друг для друга. Защищайте дипломные работы на основе проекта Os Engine. Создавайте и продавайте обучения по Os Engine. Будьте счастливы!
Коммерческим организациям больше навсегда проект себе взять не выйдет на баланс. Исходный код никому кроме «Ван Технологии» не принадлежит. Нужно будет ежегодно платить Fee и исходный код будет передаваться во временное пользование.
Последнюю версию кода под лицензией Apache 2 я специально релизнул в проекте на ГитХабе (https://github.
Сегодня:
Работа с биржевым стаканом через getQuoteLevel2
Особенность нумерации в стакане заявок терминала квик
Работа через функцию обратного вызова OnQuote
Примеры работы со стаканом из скрипта
Сравнение реализации одного алгоритма через разные функции
Из таблицы текущих торгов мы можем получать большой перечень данных, в т.ч. по лучшим ценам спроса и предложения, из которых желающие получат спрэд по выбранному инструменту. Однако иногда нужно заглянуть именно в биржевой стакан. Это, например, пригодится нам далее при выставлении заявок.
Работать с биржевым стаканом можно через getQuoteLevel2 и функцию обратного вызова OnQuote.
Функция getQuoteLevel2 возвращает 2 массива котировок (bid и offer) и 2 значения: количество бидов в стакане (bid_count) и количество офферов (offer_count). Чтобы нам не было скучно разработчики терминала решили последних 2 параметра передавать в виде строки, поэтому при работе их нужно перевести в числа (через tonumber).
Массивы bid и offer содержат цены (price) и количество (quantity) по каждому уровню заявок стакана. Их также нужно будет предварительно перевести в число.