Обсуждение статьи "Библиотека для простого и быстрого создания программ для MetaTrader (Часть X): Совместимость с MQL4 - События открытия позиции и активации отложенных ордеров"
В MT4 есть баг удаляющий всё, включая HIDDEN объекты (чего имхо быть не должно) нажатием клавиши ← Backspace
Т. о. зажав ← Backspace можно легко удалить весь ваш интерфейс.
В общем в вашем MT4 коде не хватает реакции на удаление элементов управления для их воссоздания.
В MT4 есть баг удаляющий всё, включая HIDDEN объекты (чего имхо быть не должно) нажатием клавиши ← Backspace
Т. о. зажав ← Backspace можно легко удалить весь ваш интерфейс.
В общем в вашем MT4 коде не хватает реакции на удаление элементов управления для их воссоздания.
Trade.mqh делали рабочим для MT4.

- www.mql5.com
#ifdef __MQL5__ #define __MQL5_NEW__ #else // __MQL5__ #define __MQL4_NEW__ #endif // __MQL5__в самом начале библы. И все условия переделать на New-вариант. Тогда будет возможность запустить в MT5 mt4-вариант библиотеки, а в MT4 - mt5-вариант библиотеки.
Предлагаю сделать в самом начале библы. И все условия переделать на New-вариант. Тогда будет возможность запустить в MT5 mt4-вариант библиотеки, а в MT4 - mt5-вариант библиотеки.
Так вариант-то библиотеки и так один
Хотелось бы, чтобы можно было MT4-логику библиотеки запустить в MT5.
Хотелось бы, чтобы можно было MT4-логику библиотеки запустить в MT5.
Не понял предложения по причине, что логика одинакова для обеих платформ. Реализация чуть различается.
Перед Вашей библиотекой подключаю MT4Orders. И хочу, чтобы в Вашей библиотеке был задействован MT4-вариант.
Есть два варианта решения этого
- Делаю замену __MQLX__ во всех исходниках Вашей библиотеки. Т.е. меняю саму библу, пусть и полуавтоматом.
- Вы создаете макросы, как показал выше. Тогда для включения MT4-логики в MT5 не требуется менять ничего в Вашей библиотеке.
Думаю, Вам самим будет интересно сравнить Вашу библиотеку исключительно в MT5, но в двух режимах логики.
ЗЫ Еще хочу иметь возможность запускать Вашу библиотеку в Virtual. Для этого нужно иметь доступ к MT4-style части библы.
Перед Вашей библиотекой подключаю MT4Orders. И хочу, чтобы в Вашей библиотеке был задействован MT4-вариант.
Есть два варианта решения этого
- Делаю замену __MQLX__ во всех исходниках Вашей библиотеки. Т.е. меняю саму библу, пусть и полуавтоматом.
- Вы создаете макросы, как показал выше. Тогда для включения MT4-логики в MT5 не требуется менять ничего в Вашей библиотеке.
Думаю, Вам самим будет интересно сравнить Вашу библиотеку исключительно в MT5, но в двух режимах логики.
ЗЫ Еще хочу иметь возможность запускать Вашу библиотеку в Virtual. Для этого нужно иметь доступ к MT4-style части библы.
Можно сиё обсудить. Но в личке. А пока библиотека будет развиваться в том же ключе - одна логика для обеих платформ. Библиотека задумывалась как самостоятельная единица - одна на обе платформы. С одной и той же логикой, не противоречащей ни MQL4-style, ни MQL5-style - всё общее.
ЗЫ. Так и не понял, что имеется в виду под MQL4-style частью библиотеки. Там нет разделения же. Покажите место в библиотеке, о котором говорится.
Можно сиё обсудить. Но в личке. А пока библиотека будет развиваться в том же ключе - одна логика для обеих платформ. Библиотека задумывалась как самостоятельная единица - одна на обе платформы. С одной и той же логикой, не противоречащей ни MQL4-style, ни MQL5-style - всё общее.
В ЛС отправил вариант Вашей библиотеки, которая работает в MT5 через Вами прописанную MT4-style-логику.
ЗЫ. Так и не понял, что имеется в виду под MQL4-style частью библиотеки. Там нет разделения же. Покажите место в библиотеке, о котором говорится.
Дело в том, что у кроссплатформенных библиотек вероятность работоспособности MQL4-style-части библиотеки гораздо выше, чем MQL5-style. Поэтому при использовании кроссплафторменных библиотек предпочитаю использовать в MT5 их MQL4-style-логику. Так надежней гораздо в MT5 получается.
Думаю, что в MT5 Ваша MQL5-style логика потребует еще долгого выявления багов, а MQL4-style если и будет иметь баги, то минимальное количество и не критические.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья Библиотека для простого и быстрого создания программ для MetaTrader (Часть X): Совместимость с MQL4 - События открытия позиции и активации отложенных ордеров:
В предыдущих статьях мы начали создавать большую кроссплатформенную библиотеку, целью которой является упростить написания программ для платформы MetaTrader 5 и MetaTrader 4. В девятой части начали дорабатывать классы библиотеки для работы в MQL4. В данной статье продолжим доработку библиотеки с целью полной её совместимости с MQL4.
Тестирование
Проверим внесённые изменения. Скомпилируем советник TestDoEasyPart10.mq4, запустим его в тестере, откроем-закроем позиции, установим отложенные ордера и дождёмся активации одного из них, а также проверим выставление стоп-уровней и работу тралов (модификация позиций и отложенных ордеров). Все события, которые библиотека уже "видит" для MQL4, будут отображены в журнале тестера:
Если внимательно понаблюдать за журналом тестера, то видно, что закрытие позиций библиотека ещё не видит. Но при срабатывании отложенного ордера BuyLimit #3 в журнале видим запись о том, что активирован отложенный ордер [BuyLimit #3], породив позицию Buy #3 — события активации отложенных ордеров теперь библиотека видит, и к тому же знает от какого ордера произошла позиция. Так же можно заметить незначительное упущение в функции модификации — цвет значка модифицированного трейлингом отложенного ордера BuyStop #1 меняется на красный. Но все события модификации ордеров и позиций библиотека видит.
Автор: Artyom Trishkin