mt5 тестер - рисует жизнь даже краше чем она есть!

Время летит… и недавно я вдруг осознал что mt5 доступен уже почти как 10 лет… за которые по идее можно при должной компетенции уже 10 раз спилить хоть напильником все косяки и отполировать всё до блеска. А в технической компетенции метаков у меня есть некоторая уверенность, основанная на качестве работы mt4… ОСОБЕННО после ознакомления с альтернативными платформами для торговли [на бирже]. Решил попробовать, как оно для роботорговли.

Чтобы не размазывать по древу, сразу результатирую: Впечатления смешанные.

ЕСТЬ ПОЗИТИВ
Два несомненных плюса — надежность платформы (относительтная конкурентов) и детальный низкоуровненый API с помощью которого, если очень-очень-очень сильно захотеть, можно реализовать почти все свои фантазии. Особым плюсом считаю то что разрабы(насколько я могу судить) не «опустились» до использования .Net.

НО НА САМОМ ДЕЛЕ...
Вооот…  Собственно, специально решил упомянуть в начале позитивные моменты, чтобы мой пост не смотрелся тупым высером брыжжущего желчью... начать хочется всё с того же API. Итак,

Про API
да, API получился функциональный, но… после mt4… как бы передать общее впечатление… Представьте что вы пишете на C, и тут приходит [обстоятельство непреодолимой силы] и говорит, что отныне мы переходим на ASM. почему? потому что ассемблер быстрее выполняется и у него гораздо больше возможностей которыми при желании может воспользоваться особо-изощеренный ум. Да и это не просто не просто ассемблер, а с ООП! Что? Если у тебя ум неособо-изощеренный и тебе больше нравится C, значит ты и не программист вовсе, а просто притворялся! Но выход очевиден — пойди и просто найди программиста! Тысячи их, настоящих программистов вдоль и поперек знающих наш ASM c объектами! Что? показать хотя бы одного? Ну вон же они везде в интернетах пишут...
На замечание о том что документация на новый ASM весьма херова (перечисляет все инструкции, типа ADD складывает, MULT умножает… но лишь изредка и невпопад упоминает о упоминает о том что эти инструкции могут выставлять у процессора каки-то флаги, влияющие на его дальнейшую работу) приводят гиганский список статей различных самоделкиных, которые наткнувшись на ту или иную недокументированную особенность работы ASM описывают свой боевой опыт. ЗАЕБИСЬ!

забавно, что усложнение API и исчезновение многих приятных ништяков(типа отдельно-живущих mt4-ордеров) нам объясняют тем, что теперь у нас настоящий биржевой терминал. но это… — ДВАЖДЫ пиздежь!
Во-первых, потому что реальный учет позиций это одно, а их представление в терминале это совсем другое! Пусть клиент, если хочет, считает что у него открыта «захеджированная нулевая позиция» из двух разнонаправленных ордеров. Это же не помешает на клиринге клиринге понять, что реально позиции у клиента нет! Так нет же… сделали всем назло, — один инструмент — одна позиция… Самое смешное, что не прошло и 10 лет как с гордостью выпустили костыли, позволяющие иметь для каждого меджика свою позицию… но ТОЛЬКО ДЛЯ ФОРЕКСА!!! ХА-Ха-ХА!

Во-вторых, из-за того как реализованы лимитные ордера. Думаю, на любой бирже понятие лимитного ордера свято и не рушимо. Ты выставляешь ордер на биржу, и висит там, пока не найдутся контрагенты пожелавшие исполнить его по цене НЕ ХУЖЕ заявленной. В MT5 у ордера можно задать tp. казалось бы, ТП и ТП… но хрен вы где в документации сыщете как он работает. а работает он так — при поялвении в тикере цены указанной в tp ордера, генерируется закрывающий позицию market-ордер. Сюрприз, ребята!

Еще меня в API взволновало, что при помощи API я не могу просто выбрать ордер и работать с ним. Есть отдельные, почти дублирующиеся наборы функций для работы с ордерами исполенными и ордерами текущими. забавно, что при этом нет способа по идентификатору ордера сразу понять, какими функциями с ним работать. нужно ПОПРОБОВАТЬ работать сначала одними функциями, проверить, не привело ли это к ошибке, и если привело попробовать работать другими. П****Ц.

Ну, о слабой документированности я уже упоминал… причем… вроде все функции задокументированны, но многих деталей которые хотелось бы знать не хватает.  Подозреваю, сказалось то, что писалась и правилась документация изначально для работы на форексе))

РАБОТА ТЕРМИНАЛА
за несколько месяцев работы в открытии заметил всего пару косяков в работе терминала. что в целом считаю весьма достойно.
1. в майские праздники, когда были увеличены залоги по фьючам, у моей совы возникала ошибка при выставлении лимитного ордера. якобы ордер был слишком большой. и это при том что непосредственно перед выставлением ордера я запрашивал для счета максимальный размер ордера, который можно на нем выставить по инструменту, и ограничивал размер ордера сверху этим числом.
2. в день или за день до экспирации я не мог ручками передвинуть лимитник по экрану. возникала ошибка. я подозреваю при ручном передвижении ордера генерируется вызов API в окторый передается время экспирации ордера — типа 19.00 сегодняшнего дня. учитывая что фьюч к тому времени уже эксперировался, система такой вызов переварить не могла.

ТЕСТЕР!!!
теперь собственно о том, что спровоцировало данный пост.
ребята, ну так нельзя. Я тут пару раз натыкался на реплики из народа о том что что тестер то в mt5 херовый, что в нем нет спреда и еще чего-то нет, чего есть в mt4… а метаки в ответ в грудь себя бьют, что он весь такой заебатый-призаебатый, с поддержкой распределенного тестирования, тики в нем есть и и т.д. и т.п...
Я до недавних пор не имел возможности тестер этот погонять, по причине того, что чтобы там написать простенькую сову(простенькую на mt4), мне нужно было написать просто дохера всякой вспомогательной лабуды!!! Да, ее можно написать! API позволяет! Но писать нужно дофига! и отлаживать нужно тоже долго, чтоб понять что и как у вас на самом деле там работает, и сделать нормальный аналог с человеческим лицом, работающий как нужно. кхм...

Собственно тестер mt5. Он рисует жизнь краше, чем она есть. Такого западла я от него просто не ожидал.
Все знают что в mt4 есть тестерные граали, основанные на особенностях алгоритма интерполяции тиков по бару. При этом тесты алгоритмов, работающих на открытии баров считаются весьма надежными.
В общем, я переписал под mt5 сову, открытие и закрытие в которой происходит лимитниками, выставляемым на открытии нового бара. Протестировал на нефти(ранее на ней не тестил) по открытиям баров и офигел — сова пёрла в гору как сумасшедшая. при тестировании по OHLC 1m баров она тоже перла но уже не так резво. при тестировании по тикам пёрла еще менее резво. в результате оказалось, что в тестере выставленный лимитник исполняется не по цене лимитника, а по цене, ЛУЧШЕ заявленной. то есть видать в тестере лимитники исполняются по форексному — при появлении тика прошибающего лимитник, ордер вбрасывается по рынку и исполняется по цене этого тика.

ИТОГО
Иными словами, в тестере лимитники исполняются по цене лучше заданной. а в реале TP исполняются по маркету, то есть по цене хуже заявленной.
не думаю что это сделано специально, с целью заманивая на рынок и последующего слива невинных душ, увидавших в тестере экспоненциальной рост какойнить совы, но по факту...
Если mt4 давал брокеру(ДЦ) решать — работать с клиентом честно, либо наебывать его...
То биржевой mt5 брокеру такой возможности уже не дает — зато оснащен массой новых возможностей для наёба неосторожных людей этим… как его… модное слово…  биржей комьюнити!))

с уважением)

A PHP Error was encountered

Severity: Notice

Message: Undefined offset: 2

Filename: main/v_footer.php

Line Number: 25

Backtrace:

File: /home/infoption.ru/www/infoption.ru/application/views/main/v_footer.php
Line: 25
Function: _error_handler

File: /home/infoption.ru/www/infoption.ru/application/controllers/Base.php
Line: 38
Function: view

File: /home/infoption.ru/www/infoption.ru/application/controllers/Blog.php
Line: 229
Function: render_single

File: /home/infoption.ru/www/infoption.ru/index.php
Line: 300
Function: require_once