Обсуждение статьи "Virtual Order Manager для управления ордерами в позициях терминала MetaTrader 5" - страница 5

 
Alain Verleyen:
Эта библиотека уже практически устарела, так как MT5 предоставляет счет хеджирования. Вы все еще можете использовать ее на неттинговом счете, но действительно ли она того стоит.

Моя ea - это расширяющаяся сетка, работающая на одном символе, поэтому мне нужно отслеживать каждую сделку или уровень сетки отдельно, чтобы знать, где открывать следующий уровень. В MT4 я делал это, просматривая список открытых сделок и используя их для расчета позиции, где мне нужно открыть следующую сделку в сетке. В MT5 я обнаружил, что он сбрасывает все сделки в одну большую позицию, что полностью убивает этот метод.Например, я не могу открыть две сделки на покупку в MT5, потому что он объединяет их в одну позицию. Как я могу рассчитать, где будет шестой уровень сетки на покупку, если я не знаю, где находятся уровни с первого по пятый? Надеюсь, вы понимаете, о чем я. Эта библиотека была единственным способом, который я нашел, чтобы обойти эту проблему. В MT4 я также использую уникальные магические номера на каждой сделке, чтобы идентифицировать каждый уровень сетки. В MT5 я обнаружил, что тоже не могу установить уникальные магические номера, поэтому собираюсь хранить их на диске. Если есть лучший способ управления уровнями сетки в MT5, я буду рад узнать.

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

Положительным моментом является то, что я узнал, как исправить ошибки в библиотеке VOM, так что, надеюсь, это кому-нибудь поможет. Используя версию 2 библиотеки, вам нужно изменить строку 855 файла virtualordermanager.mqh с :

MtRequest.type_filling=ORDER_FILLING_FOK;

на

MtRequest.type_filling=SYMBOL_FILLING_FOK;

после чего он будет открывать сделки правильно и без ошибок.

 
kenshin71:

Моя ea представляет собой расширяющуюся сетку, работающую на одном символе, поэтому мне нужно отслеживать каждую сделку или уровень сетки по отдельности, чтобы знать, где открывать следующий уровень. В MT4 я делал это, просматривая список открытых сделок и используя их для расчета позиции, в которой мне нужно открыть следующую сделку в сетке. В MT5 я обнаружил, что он сбрасывает все сделки в одну большую позицию, что полностью убивает этот метод.Например, я не могу открыть две сделки на покупку в MT5, потому что он объединяет их в одну позицию. Как я могу рассчитать, где будет шестой уровень сетки на покупку, если я не знаю, где находятся уровни с первого по пятый? Надеюсь, вы понимаете, о чем я. Эта библиотека была единственным способом, который я нашел, чтобы обойти эту проблему. В MT4 я также использую уникальные магические номера на каждой сделке, чтобы идентифицировать каждый уровень сетки. В MT5 я обнаружил, что тоже не могу установить уникальные магические номера, поэтому собираюсь хранить их на диске. Если есть лучший способ управления уровнями сетки в MT5, я буду рад узнать.

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

Положительным моментом является то, что я узнал, как исправить ошибки в библиотеке VOM, так что, надеюсь, это кому-нибудь поможет. Используя версию 2 библиотеки, вам нужно изменить строку 855 в файле virtualordermanager.mqh с :

на

тогда он будет открывать сделки правильно и без ошибок.

Поэтому я и сказал вам, что сейчас есть хеджирующий счет, который вы должны использовать, так как вы торгуете на Forex, очевидно. Счет, который вы описываете, является неттинговым счетом.
 
Спасибо, Ален. Теперь я понял, что вы имеете в виду. Прошу прощения, что не обратил внимания на то, что вы сказали о хеджировании. Я сходил с ума, пытаясь заставить этот VOM работать, а также все остальные изменения, необходимые для работы моей ea под MT5. Думаю, я возьму паузу и вернусь, когда высплюсь.Я думаю, что мне нужно будет написать версию еа для MT5 с нуля. До сих пор я пытался сделать версию, которая работает в MT4 и MT5, используя условную компиляцию, но эта идея не работает так чисто, как мне хотелось бы. Еще раз спасибо, что указали мне правильное направление.
 
Alain Verleyen:
Эта библиотека уже практически устарела, так как MT5 предоставляет счет хеджирования. Она все еще может понадобиться на неттинговом счете, но действительно ли она того стоит.

Да уж ) такое часто встречается при разработке ПО

 
kenshin71:
Спасибо, Ален. Теперь я понял, что вы имеете в виду. Прошу прощения, что не обратил внимания на то, что вы сказали о хеджировании. Я сходил с ума, пытаясь заставить этот VOM работать, а также все остальные изменения, необходимые для работы моей ea под MT5. Думаю, я возьму паузу и вернусь, когда высплюсь.Я думаю, что мне нужно будет написать версию еа для MT5 с нуля. До сих пор я пытался сделать версию, которая работает под MT4 и MT5, используя условную компиляцию, но эта идея не работает так чисто, как мне хотелось бы. Еще раз спасибо, что указали мне правильное направление.
Вам удалось заставить это работать? Я хотел бы продолжить с того места, на котором вы остановились, если можно поделиться исправлениями, которые вам пришлось сделать. К сожалению, мне нужно использовать неттинг счет MT5 и нужно использовать VOM для виртуального хеджирования.