Обсуждение статьи "Разнонаправленная торговля и хеджирование позиций в MetaTrader 5 с помощью панели HedgeTerminal, часть 1"

 

Опубликована статья Разнонаправленная торговля и хеджирование позиций в MetaTrader 5 с помощью панели HedgeTerminal, часть 1:

Статья описывает новый подход в вопросах хеджирования позиций и ставит точку в спорах между пользователями платформ MetaTrader 4 и MetaTrader 5 в этом вопросе. На примере простых схем и диаграмм, общедоступным языком рассказывается об алгоритмах, которые делают такое хеджирование надежным. Статья посвящена описанию новой панели - HedgeTerminal, которая, по сути, является полноценным торговым терминалом внутри самого терминала MetaTrader 5. С ее помощью, благодаря предлагаемой виртуализации торговли, можно управлять своими торговыми позициями так, как это принято в MetaTrader 4.

В последние полтора года компанией MetaQuotes была проведена масштабная работа по объединению торговых платформ MetaTrader 4 и MetaTrader 5 в единую трейдерскую экосистему. Теперь для обеих платформ существует общий рынок программных решений - Маркет, предлагающий различные программные решения от сторонних разработчиков. Компиляторы для обеих платформ также были объединены. Теперь обе платформы имеют единый компилятор на базе MQL5 и единый язык программирования - MQL, с разным набором функций в зависимости от используемой платформы. Все общедоступные исходные коды, размещенные в базе кодов Code Base, также подверглись ревизии, а некоторые их них были скорректированы для совместимости с новым компилятором.

Однако такое глобальное объединение платформ оставило в стороне объединение их торговых частей. По-прежнему, несмотря на большую часть отныне общего торгового окружения, торговые модели MetaTrader 4 и MetaTrader 5 остались принципиально несовместимыми. MetaTrader 4 предлагает индивидуальное управление торговыми позициями через систему "ордеров", - специальных программных сущностей, делающих разнонаправленную торговлю в этом терминале простой и удобной. MetaTrader 5 ориентирован на биржевую работу, где основным представлением обязательств трейдера является его совокупная нетто-позиция, а ордера в нем являются тем, чем по сути и должны являться - приказами на покупку или продажу финансового инструмента.

Разница между торговым представлением этих платформ вызывала немало горячих споров и обсуждений. Однако споры так и остались спорами. К сожалению, за годы с момента первого релиза MetaTrader 5 так и не было продемонстрировано ни одного рабочего решения, которое доказывало бы фактом своего существование возможность представления обязательств трейдеров в виде независимых разнонаправленных позиций как в MetaTrader 4. Безусловно, на эту тему было опубликовано немало статей, где предлагались те или иные решения. Но к сожалению, эти решения были и остаются недостаточно гибкими, чтобы их можно было использовать с удобством и на более-менее массовом уровне. К тому же, ни одно из этих решений не подходит для торговли на бирже, где существует масса нюансов, которые нужно учитывать.

Эта статья должна поставить точку в спорах между любителями пятой и четвертой версий платформы MetaTrader и наконец дать универсальное решение в виде подробных спецификаций и конкретного программного решения, которое эти спецификации реализует. В этой статье речь пойдет о визуальной панели и библиотеки виртуализации HedgeTerminal, с помощью которых становиться возможным представлять свои обязательства в виде разнонаправленных позиций как в MetaTrader 4. При этом модель, заложенная в HedgeTerminal учитывает специфику биржевого исполнения торговых приказов. А значит, он с успехом может применяться как на внебиржевом рынке FOREX, так и на централизованных биржевых площадках, например, при торговле деривативами в срочной секции Московской биржи.

В целом, представление биржевой цены сложней, но при этом содержит множество существенных деталей, невидимых при торговле на форекс и в самом терминале MetaTrader 4.

Есть и другие ситуации, когда расширенное представление торгового окружения в MetaTrader 5 требует дополнительных усилий при анализе этой информации. В связи с этим возникают резонные вопросы:

Можно ли сделать торговый процесс в MetaTrader 5 таким же простым и понятным как в MetaTrader 4, и при этом иметь удобный доступ ко всем необходимым торговыми подробностям? Можно ли торговать на бирже с помощью MetaTrader 5 также просто и разнонаправленно как это происходит в MetaTrader 4? - Ответ на эти вопросы утвердительный: "да, можно"!

Чтобы понять, почему это возможно, обратимся к условной схеме возможностей терминалов MetaTrader 4 и MetaTrader 5:

Рис. 1. Возможности MetaTrader 4 и MetaTrader 5

Рис. 1. Возможности MetaTrader 4 и MetaTrader 5

Автор: Vasiliy Sokolov

 

Предыдущий оратор [псевдоэксперт] забыл написать (впрочем как всегда), что это его имхо, которое имеет далёкое отношение к реальности... Вспоминается классика "а судьи кто?".

Василий, молодец! Думаю, что это чтиво так чтиво... в лучшем смысле

 
Статью еще не читал, хотя ждал, т.к. знаю, о чем в ней пойдет речь.

С диаграммой Эйлера—Венна, что выше представлена, не могу почему-то согласиться.

С одной стороны разработчики всегда приводили нетто-MT5, как рыночное преимущество перед кухонным MT4. И теперь Василий предлагает силами MQL из нетто-MT5 сделать франкенштейна-MT5, наплевав на Мнение разработчиков, что ТС с разнонаправленными позициями - несусветная глупость.

Эдакий подстрекатель демократическихрыночных ценностей этот Василий! Всех вытаскивают из петли, показывают, как надо, а он изворачивается и обратно за петлю агитирует.

Буду читать, мало ли, действиетльно, веревка пригодится.

А если серьезно, то я не знаю ни одной биржевой платформы, где есть недорогой, простой и готовый инструментарий виртуализации. И работа Василия, по-моему, стоит особняком, как доступный и единственный действующий велосипед. Поэтому MT5, пожалуй, единственная биржевая платформа, которая в пункте "виртуализация" может теперь поставить пусть и платный (символически), но все же плюсик.

ЗЫ Диаграммка очень сомнительная, однако,... пояснить бы не помешало автору, что он имел в виду, когда ее рисовал.
 

Обилие картинок с предположительно английским текстом -- это нечто -- прекрасный образчик выпендрёжного отношения к потенциальным читателям.

Так и надо было написать -- в первых строчках к статье, или в первом комментарии к статье -- мол, статья написана не для всех. Тем более, что в сервисе "Статьи" уже такие прецеденты есть, когда автор с полным самоосознанием, прямо и с "уважением" к читателям пишет: "для [таких-то] эта статья не по силам. Ориентир не на них" [..]

Понимаю, что автором предоставлена супер-ценная информация (без которой при развитом МТ4 можно и обойтись, да, и вообще можно обойтись и без МТ4) и, мол, желающий её получить должен попыхтеть над словарями. Но надо же хоть чуть-чуть свою соображалку включать: как обильную текстовку с картинок в он-лайн переводчик загнать?

p.s. По тематике статьи безотносительно к данной поли-язычной статье -- тематика заслуживает внимания. 

 
abolk:

По поводу картинок с английским текстом:

Ну во-первых, большая часть скриншотов - это скриншоты самой панели. Она, по умолчанию, естественно локализована под английский язык, т.к. она представлена на международном ресурсе, где не все знают русский. К тому же это требование AppStore: все скриншоты должны быть сделаны на английском, интерфейс должен быть тоже английским. Я не мог в статье описывать локализованную версию HT, т.к. она отличалась бы от версии по умолчанию и вводила бы многих пользователей в недоумение.

Во-вторых,  раз половина скриншотов должна быть на английском, то и вторая половина - тоже должна быть на английском. Иначе нарушался бы общий стиль и получился бы еще больший языковой винегрет.

В-третьих, вторая половина скриншотов - это простые схемы. Многие из них включают слова типа "Order" или "Magic". - Это настолько устоявшиеся понятия, что их перевод, напротив, был бы не желателен.

В-четвертых, каждая иллюстрация подробно описана в тексте. Скорее рисунок служит дополнением к описанию, а не наоборот. Поэтому понять смысл рисунка можно и без понимания текста в нем. Рисунки сделаны скорее совсем для начинающих пользователей. Люди более-менее понимающие проблематику поймут материал и без единого рисунка.

В-пятых, предполагается эти схемы на английском использовать в т.ч. и для общения с иностранцами. Например, мне недавно пришлось австралийцу объяснять схему установки HT, рисунок #12 очень сильно помог и снял все вопросы за раз. 

Особняком стоит рисунок №12. Это действительно сложный рисунок. Думаю действительно необходимо представить его локализованную версию.

Ну и наконец, для тех, кому приятнее видеть свой родной язык, вместо английского, в HT есть возможность локализации. Можно поменять название колонок на аналогичные русские слова (см. раздел 2.10 Изменение внешнего вида таблиц HedgeTerminal)

 
C-4:

В романе Л.Н.Толстого "Война и мир", кстати, в романе с мировой известностью -- есть много текстовки на французском языке. Для таких случаев есть комментарии, в которых предоставлен полный перевод оригинального текста на язык публикации.

Это просто правило хорошего тона.

Кстати, ресурс mql5.com -- международный -- но создатели ресурса не позволили себе устроить поли-язычную мешанину. Вы выберите на ресурсе язык "Английский" и попадёте именно на английскую ветку форума и не на какую другую.

Что касается меня, то увидев обилие предположительно английского текста без перевода -- я решил Вашу статью не читать вообще -- хотя, тематика статьи мне не безынтересна. Но Вы же не единственный автор подобных исследований. Верно?

 

zaskok:

... 

С одной стороны разработчики всегда приводили нетто-MT5, как рыночное преимущество перед кухонным MT4. И теперь Василий предлагает силами MQL из нетто-MT5 сделать франкенштейна-MT5, наплевав на Мнение разработчиков, что ТС с разнонаправленными позициями - несусветная глупость.
...

Никогда такие утверждения разработчики не приводили. Просто нетто-представление - это стандарт де-факто в биржевой индустрии. 

zaskok:
...
А если серьезно, то я не знаю ни одной биржевой платформы, где есть недорогой, простой и готовый инструментарий виртуализации. И работа Василия, по-моему, стоит особняком, как доступный и единственный действующий велосипед. Поэтому MT5, пожалуй, единственная биржевая платформа, которая в пункте "виртуализация" может теперь поставить пусть и платный (символически), но все же плюсик.
...

Знаю как минимум три платформы, где виртуализация встроена по-умолчанию. Например терминал ducascopy. Еще есть биржевой WealthLab и такая же биржевая, но не публичная супер-HFT платформа TradeWorkShop. Иными словами, разнонаправленная торговля не является только  прерогативой МТ4. Разнонаправленная торговля возможна и в биржевом окружении, а значит она возможна и в MetaTrader 5. Отсюда и ответ на Ваш вопрос:

zaskok:
ЗЫ Диаграммка очень сомнительная, однако,... пояснить бы не помешало автору, что он имел в виду, когда ее рисовал.

Нетто-представление не накладывает ограничений на разнонаправленную торговлю, т.к. по определению из рисунка 1 следует что нетто-представление на внешнем контуре возможностей.

З.Ы. Диаграмка кстати не моя, а была в свое время нарисована и запощена Ренатом, а я лишь интегрировал ее в общий контекст описываемого материала. 

 
C-4:

Никогда такие утверждения разработчики не приводили. Просто нетто-представление - это стандарт де-факто в биржевой индустрии.

Посмотрел профиль - не новичек Вы. Зачем лукавите. Раньше не задумывался, что грязь на разнонаправленные позиции из разработчиков лил и льет только Ренат, а остальные - молчали и продалжают молчать.Не высказываются на эту тему совсем. Руководитель же лез всегда довольно жестко на амбразуру, не забывая про маузер в виде бана... Вы, наверное, запамятовали.

Знаю как минимум три платформы, где виртуализация встроена по-умолчанию. Например терминал ducascopy.

Это не биржевой терминал. На FOREX - да, полно совеременных конкурентов MT, которые поддерживают виртуализацию штатно, включая API.

Еще есть биржевой WealthLab и такая же биржевая, но не публичная супер-HFT платформа TradeWorkShop. Иными словами, разнонаправленная торговля не является только  прерогативой МТ4.

Не знал про возможности виртуализации велса. Спасибо!

Разнонаправленная торговля возможна и в биржевом окружении, а значит она возможна и в MetaTrader 5. Отсюда и ответ на Ваш вопрос:

Разнонаправленная торговля - это всегда элемент виртуализации. FOREX - это тоже неттинг. И MT4 имеет свой механизм виртуализации не из-за особенностей FOREX. Вон сколько бриджей понаписано MT4 <-> FOREX FIX API Netto.

Нетто-представление не накладывает ограничений на разнонаправленную торговлю, т.к. по определению из рисунка 1 следует что нетто-представление на внешнем контуре возможностей.

З.Ы. Диаграмка кстати не моя, а была в свое время нарисована и запощена Ренатом, а я лишь интегрировал ее в общий контекст описываемого материала. 

Виртуализация реализовывается на MT5, но и нетто реализовывается на MT4. Так почему же нетто-множество возможностей содержит MT4? MT4 такая же нетто-платформа, как и MT5. Верно и обратное утверждение: MT5 имеет механизм виртуализации, как и MT4. Поэтому множества диграммы должны либо совпадать, либо пересекаться. Но никак не содержать в себе кого-то полностью.

 

По статье - не прочитал и 10% пока. Но возникло желание увидеть советник Moving Averages, написанный на HT API. После чего сделать замеры производительности в тестере оригинала и его HT-тезки. И чтобы сделок, ордеров и позиций были тысячи. Т.е. хочется понять скоростные издержки виртуализации. Можете таким поделиться? 

 
Не понятно, зачем все так усложнять, у хеджированой торговли, принципы просты. Во время выкупай пункты, и не забывай про расширение мыльного пузыря.
 
zaskok:

Посмотрел профиль - не новичек Вы. Зачем лукавите. Раньше не задумывался, что грязь на разнонаправленные позиции из разработчиков лил и льет только Ренат, а остальные - молчали и продалжают молчать.Не высказываются на эту тему совсем. Руководитель же лез всегда довольно жестко на амбразуру, не забывая про маузер в виде бана... Вы, наверное, запамятовали.

Я не лукавлю, просто Вы ссылаетесь неточно. Разговоры действительно были. Но не в том плане что нетто - это true, а разнонаправленная торговля это плохо. Были утверждения что портфели стратегий - это от лукавого, и на самом деле нужна лишь одна стратегия на одном счете. Я это мнение не разделяю. Более того, есть серьезные работы доказывающие эффективность портфелей. Основная конечно работа Марковица.

zaskok:

Разнонаправленная торговля - это всегда элемент виртуализации. FOREX - это тоже неттинг. И MT4 имеет свой механизм виртуализации не из-за особенностей FOREX. Вон сколько бриджей понаписано MT4 <-> FOREX FIX API Netto.

 Да именно. Разнонаправленная торговля это всегда виртуализация и у меня об этом мелеком написано во второй части статьи. По сути разница только в том, происходит ли виртуализация на уровне сервера или на уровне пользователя. 

zaskok:

Виртуализация реализовывается на MT5, но и нетто реализовывается на MT4. Так почему же нетто-множество возможностей содержит MT4? MT4 такая же нетто-платформа, как и MT5. Верно и обратное утверждение: MT5 имеет механизм виртуализации, как и MT4. Поэтому диграммы должны либо совпадать, либо пересекаться. Но никак не содержать в себе кого-то полностью. 

О.к. признаю: неттинг и виртуализация - это равнозначные понятия. Я не разработчик МТ5. Мне не нужно доказывать, что 5 версия лучше 4. Мне достаточно тождества между неттингом и тем, что есть в MetaTrader 4.

Я утверждаю, что неттинг не накладывает ограничений на виртуализацию и при развитом пользовательском языке программирования возможна надежная и гарантированная* виртуализация на стороне пользователя, без привлечения серверной части.

*Важная ремарка, я не могу гарантировать отсутствие программных багов в HT, которые потенциально могут нарушить целостность представления. В любом случае, эти баги при обнаружении будут исправлены, а содержание ошибок в HT со временем будет сведено к нулю.

zaskok:

Виртуализация реализовывается на MT5, но и нетто реализовывается на MT4. Так почему же нетто-множество возможностей содержит MT4? MT4 такая же нетто-платформа, как и MT5. Верно и обратное утверждение: MT5 имеет механизм виртуализации, как и MT4. Поэтому диграммы должны либо совпадать, либо пересекаться. Но никак не содержать в себе кого-то полностью.

Да не заморачивайтесь Вы над этими диаграммами. Просто считайте что есть несколько фишек в МТ5, которых нет и не будет в МТ4. Например, в МТ5 есть российский фондовый рынок, в МТ4 этого нет.
 
zaskok:

По статье - не прочитал и 10% пока. Но возникло желание увидеть советник Moving Averages, написанный на HT API. После чего сделать замеры производительности в тестере оригинала и его HT-тезки. И чтобы сделок, ордеров и позиций были тысячи. Т.е. хочется понять скоростные издержки виртуализации. Можете таким поделиться? 

Да, есть такой советник. Но его реализация была признана не совсем удачной, т.к. делалась на скорую руку, и использовала ООП (для новичков это не тру). 

Серьезный тест на производительность не производился, но большой разницы быть не должно. Основными ресурсоемкими операциями являются: файловые операции чтения-записи (пресловутый локальный контур) и ретроспективная торговля с развертыванием позиций в памяти. При тестировании удалось полностью избавиться от локального контура (а значит и файловых операций), т.к. в режиме теста используется монопольный режим. Запускается один эксперт, для которого создается торговое окружение, обмениваться с другими экземплярами не требуется.

Развертывание в папяти также не требуется, т.к. при запуске эксперта тестовый счет пустой: нет ни сделок ни ордеров.

При тестировании один ордер порождает одна сделка (т.е. наоборот, но это неважно). Это тоже существенное ускорение, т.к. "ордерная арифметика" существенно упрощается. Также в этом случае, ордер ищется один раз. Т.е. операция поиска, (которая между нами O(log2(n)), производится единожды.

В общем прикрепляю эксперт HedgeMA. Смотрите, тестируйте, изучайте. Но по хорошему, что бы сравнивать скорости, надо модифицировать эксперт таким образом, что бы один и тот же код мог работать как с HT так и в нетто-окружении МТ5.

З.Ы. Дождитесь второй части. Там как раз про API. Есть нюансы, их нужно знать прежде чем исследовать производительность.

Файлы:
Причина обращения: