Блог им. dip
Несмотря на то, что некоторые меня знают как человека рекламирующего и рекомендующего MT5 для фортс, в очередной раз накипело. Хочется собрать отзывы в кучу и попытаться обратить внимание метаквотсов на них. Главное, в погоне за светлым будущим — сохранить конструктивность :)
Просьба позвать Метаквотсов в ветку и вывести на главную, не плюсиков ради, а результата для.
Главная оговорка: я думаю, что главным врагом [алго] трейдинга на московской бирже является сама биржа, с ее конскими комиссиями, нестабильностью и штрафами за неэффективные транзакции :) Если не заленюсь — напишу про это отдельный пост.
Начну с не алго. Скажу сразу, руками торгую очень мало, и на UI мне почти все-равно, но с MT5 есть «общетрейдерские проблемы», которые важны не только для алго, но и для вполне себе ручных трейдеров:
1) На сколько мне известно всего 2 брокера предлагают MT5. Это лучше чем 0, но далеко до идеала. В частности есть брокеры предлагающие интересные анлимы и плечи, но у них нет MT5 :)
2) У тех у кого есть MT5 нет ЕБС(простигосподя!) — единый брокерский счет недоступен даже за деньги! Есть системы для торговли на акциях, но их использовать не выгодно — морозятся деньги на разных счетах. Про облигации молчу.
3) Опционы. Дайте уже в самом тупом виде!!! Мне не нужна ваша улыбка и ваши греки. Дайте заявки ставить. Shut up and take my money! ©
(и не надо говорить что ими не будут торговать! Вам пишут люди торгующие тысячами контрактов в день, а вы плюете на своих крупнейших пользователей говоря, что это не будет использоваться.)
4) Окно постановки ордера(которое не стакан) — просто мат один! Не видно, что ставишь и куда. Впопыхах закрывая позиции несколько раз перепутывал сторону\инструмент, цена берется почти с потолка, объем левый. Короче почти не пользую, но это боль.
5) Failover(как этократко по-русски? :)) подключения к серверу работает в одну сторону :) Был подключен к ближайшему. Что-то случилось, соединение оборвалось. Терминал идет на второй. Все хорошо. Но назад не вернется, даже если первый сервак ожил. Разница в пинге между первым и вторым в 2 раза! Пусть вернется на ближайший сервер без моих действий.
Алго. Самое важное
6) Вы не можете изменить объем в активной заявке. Цену можно модифицировать, но не объем. Это за гранью добра и зла.
7) Функция OrderSend() уже много релизов назад перестала быть синхронной, но все еще декларируется такой. Нужна максимум для обратной совместимости, но конечно важнее добавить албанский язык, чем обновить документацию.
8) Тестер стратегий — это боль и беда.
а) Конечно, уже 100 лет нужна возможность экспорта внешних данных. Главное — ну не сложно же сделать, не притворяйтесь!
б) Режим проверки якобы на реальных тиках подтягивает историю похожую на правду, но тики расходятся со всеми другими известными источниками. Лучше чем было, но много времени ушло, что бы понять что там не правда, и как итог — этому опять нельзя доверять.
в) Ну посмотрите уже что ли у мультичарта и других, статистику-то просто наколбасить красивую
г) много еще
9) Доступность «почти» с++ — это в сто раз лучше чем у всех остальных, но каждый раз это почти больно ограничивает. Шаблоны — обрезаны, ссылки-указатели перемешаны в кучу, тупо нет элипсиса из старого доброго С(как написать логгер который будет выключаться в одном месте, а не везде через if ?).
10) нет стандартной библиотеки. никакой :) Выведены редкие обрубки из WinAPI, CRT. Ассоциативный контейнер? Хэштейбл? Дайте людям STL и не парьте мозг, у вас все-равно там лежит Visual Studio 2013 в комплекте.
11) Если не дадите STL(а вы не дадите, с указателями и шаблонами намучаетесь), дайте хотя бы доступ к WinAPI. Я не хочу использовать глобальные переменные без синхронизации для общения между системами.
12) Сделайте уже MT 6 и оставьте там просто dll с вашим интерфейсом которую я могу загрузить в свой процесс и получить пункты 9-11 без вашей помощи. Плюс уйдет ненужный алготрейдерам UI который только тормозит все без толку. Потом, глядишь, будете продавать не виртуальные машины, а возможность положить мой процесс на ваш сервер за разумную денежку(а не по цене Плазы :) )
13. «Спасибо» вам большое за то что HistorySelect() может блокировать исполнение на десятки миллисекунд, и об этом нигде не написано. Это конечно стимулирует писать по-нормальному, но это ж чистая подстава :)
14) Старые грешки в виде неработающих стоп лоссов из-за пустого мейджика вспоминать не буду — деньги потеряны, но мы все еще с вами со своими костылями :)
Добавляйте еще пункты, только конструктивно, пожалуйста. Авось что-то услышат.
Скорее всего вы путаете обновления стакана и отрисовку чартов, где чарт рисуется исключительно по ценам ластов.
Очень много людей не обращает на этой внимания, считая отсутствие отображения на чарте бурного(но без реальных сделок) движения в стакане, за тормоза чарта.
сам как то на СЛ жаловался им об этом (и сразу же не я один), а стали разбираться, действительно так. Так что вы тут зря так огрызаетесь в этом моменте.
На сей день пожелания все те же.
1. стакан с прокруткой, которого нет, по причине того, что якобы полоса прокрутки испортит внешний вид (дизайн). этого я понять не смог
2. почему нет возможности в визуальном тестере ставить на паузу и работать с графиком, добавить индикатор, сменить цвет и так далее?
3. разрывы позиций в клиринг это идиотизм полнейший, нигде такого не видел. это накладывает сложности при анализе торговли, серийности, средней или самой убыточной\прибыльной сделке и так далее, потому что позиции разрываются и части живут своей жизнью
4. разметка графиков — шкала вертикальная и горизонтальная — тоже уникальное явление, которого в таком виде больше нет нигде, и ее никто не собирается править, и хотя бы добавить галочку «классическая шкала» или что-то в этом роде для тех, кому она не нравится, а это скорей всего большинство
5. введите ограничение на логирование в гигабайтах, потому что если у робота или индикатора ошибка и ты не заметил, он намолотит логов с одной и той же ошибкой на 20 Гб пока ты его не отключишь и не кончится место на жестком диске
6. про единый счет и опционы уже сказали, но это видимо касается еще и двух брокеров в том числе, было бы интересно послушать их в этом обсуждении. а то для торговли акциями и опционами придется активировать отдельный субсчет по каким-то непонятным причинам
Это не самая лучшая реклама терминалу МТ5, так много заявляющему о себе, будучи при этом вообще новичком на бирже. Вот правьте хотя бы это перечисленное, и то, что выше, и люди потянутся.
Поэтому и ушел на Квик.
Но если такое счастье случится, объединение площадок, то подумаю вернуться:)
Не дай бог пересмотреть интерфейс, это будет преступление по мнению разработчиков. В метатрейдере почти во всех аспектах боль и беда. Что уж тут. Разработчики mt очень любят свой mql5 и если кто-то не хочет разделять их мнение — пусть горит в аду. Поэтому тут не будет каких либо изменений.
Проблема заключается в том, что нет указателей на функции и их нельзя передавать в API функции. Ответ от разработчиков — ради безопасности, а то вдруг будут вирусы писать.
Хотя в mql5 реализованы интерфейсы, а у них поди есть какая-то виртуальная таблица методов. Вот ее можно попробовать проанализировать и вызывать на прямую из своей собственной dll. Юзай квик с lua api — получаешь доступ ко любым библиотекам и без танцев с бубном. Но квик тормозит в маркет дельты. Другой вариант пиши коннектор в свою собственную программу и забудь об mql5 — это самый эффективный вариант.
Это никогда не сделают, иначе полетит весь mql5, маркет роботов и много чего еще. А самое главное, ты перестанешь писать на mql5, а это для компании хуже атомной войны. Поэтому ты должен писать на mql5, или умереть. Потому что у метатрейдера нет реальных преимуществ перед квиком в плане алготрейдинга и торговли. Поэтому большинство используют сторонние средства, типа TSLab или StockSharp
1) Будет больше брокеров, уже в процессе запуска
2) Единый счет доделываем. Спасибо российской бирже за 20 лет технического ужаса.
3) Сделаем со временем
4) Вообще бездоказательно.
Тем более, что есть целый набор методов торговли:
— окно торгового ордера
— окно торговли в один клик
— торговля из стакана
— торговля с чарта
— торговля в окне открытых позиций
5) У нас отличная система контроля и восстановления связи.
Переключения точек по качеству анализируются терминалом автоматически каждые 3 часа с переключением на лучшую точку, если она кардинально лучше текущей.
Нельзя постоянно скакать между серверами, основываясь только лишь на значении пинга. Мы учитываем несколько показателей качества и пинг не все решает. Качество точки — это не пинг.
6) Да. Чтобы изменить объем, нужно снять и поставить ордер.
Возможно, расширим функционал.
7) OrderSend — синхронная функция. Не нужно придумывать.
8) Про тестер — это не боль и не беда, а один из самых совершенных и детальных тестеров торговых стратегий в мире.
Кастомные символы уже в работе, их данные тоже можно будет импортировать.
Сравните тики и докажите, что они не реальные. Наоборот, они реальные, доступны по запросу на всю глубину (десятки миллионов тиков) и бесплатны.
Что именно вам не нравится в статистике тестера?
9) MQL5 в первую очередь прикладной защищенный язык, нацеленный на максимальную безопасность и работающий в своей песочнице.
Шаблоны в ней достойные, а ссылки ограничены в обязательном порядке ради безопасности и полного контроля.
10) Стандартная библиотека есть: https://www.mql5.com/ru/docs/standardlibrary
В ней сейчас почти 10 мегабайт исходного кода и она расширяется.
11) Никто доступ к WinAPI не закрывал: https://www.mql5.com/ru/docs/basis/preprosessor/import
Все многообразие DLL подключается легко, достаточно сделать drag'n'drop dll файла из дерева навигатора в окно кода и автоматически распознаются и построятся прототипы функций из библиотеки.
12) Это объясняет все ваши претензии. Ради этого пункта вы и писали текст.
Не нужен вам терминал. А вот миллионам трейдеров по миру нужен и они его выбирают за удобство, простоту и мощность.
13) Ничего удивительного, если приходится поднимать глубокую историю счета.
И писать об этом в документации не нужно. Вы же программист и должны понимать про поднятие кеша.
14) Список ошибок достижений есть тут: https://www.metatrader5.com/ru/releasenotes
MetaQuotes Software,
Спасибо за ответ.
5) 3 часа для фейловера — за гранью добра и зла тоже.
6) И это адд!
7) Хамить не надо, надо знать апдейты по своему продукту. Заходите в вашу ссылку релизноутс и читайте апдейт по MetaTrader 5 build 1375: в момент окончания функции у меня есть orderticket и никакой гарантии что на бирже что-то произошло или не произошло(как раньше). В момент окончания функции OrderSendAsync у меня есть request_id и так же никаких гарантий(и да я по нему потом достану orderticket и так же в этот момент не буду знать что в действительности с ордером на бирже). По факту это одинаковое поведение.
8) Сравнивал, сравните и вы. Обращение от пользователя у вас есть. по Ри и Нефти на моех разница есть, причем даже OHLC в итоге отличается, построенный на этих и настоящих тиках.
9) Про элипсис ничего не сказали :) У вас там есть все что бы выстрелить себе в ногу, как во всех любимых мной языках. Не надо меня ограничивать. пожалуйста :)
10) Это слезы одни, и я написал почему. Ни стандартных структур данных, ни алгоритмов.
11) спасибо, почитаю
12) Правильно, гоните от себя профессионалов :) Проницательность вам изменила. Текст написан из-за невозможности изменить объем в работающем ордере. Это беда, и главное просто реализовать и биржа соусем неуиноуная, как рафик :)
13) Запрос за пол часа. Мой рекорд 40+ миллисекунд. Локально в этот момент история сделок доступна. Зуб даю у вас там дефект.
Я после этого пункта дружбу с MT5 как с алго-платформой прекратил))
Но как платформа для ручной торговли с низким порогом входа MT5 хороша, чё уж), по крайней мере на фоне квика))
Это же система для понятно кого делалась. Она кривая бай дезигн с самого низа. И нечто ее уже не выправит.
dip, ну смотря какие предложения нужны. если просто графики порисовать то вот gnuplot например, если кастомизация обработки данных, пайтон или более продвинутый вообще мега проект Root ЦЕРН'овский (https://root.cern.ch) очень интересный со 100% С++.
А по метак вопрос у них по прежнему свечи по bid/ask строятся и можно узнать трейд/ордер id биржевой а не фейк какой то внутренний?
Из Квика (SmartCom, NiAPI, Plaza и тд) любы данные можно достать и любые транзакции отправить что вообще бесценно! Один раз поупражняться нужно это да. Но для человека знающего STL...;)
А так у вас классический вендор лок и вам годами приходится объяснять что id заявки сервера вам нафиг не нужно без биржевого номера заявки и тд.
Изя Квикович, под плазу у меня было решение, вытеснили меня, пока что :) Причем биржа сама первая :) Но краткий ответ тут — урезание костов.
Из квика данные — нет спасибо. Тормоза и надежность на грани фантастики
SmartCom — смысл? Сколько я его не смотрел, все не понимаю зачем он нужен? Кроме того, что он помогает людям знающим только шарп
NiAPI — и что с ним делать? почитал — какая-то кустарно-платная штука. В чем преимущества ?
По мне так квик вполне норм. SmartCom для тех кто в АЙтиИнвесте. NiApi для сидящих на Нетинвесторе. NiAPI уникален тем что можно все доступные данные получать с полным контролем процесса и прямым подключением к серверу без прокладки в виде терминала. Не знаю как уж они сейчас живы ли ) В плазе есть данные которых обычно в терминалах просто нет.