Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1266
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Всем доброго времени!
У меня есть вопрос по работе функции ResultDeal() в классе CTrade.
Дело в том, что в Тестере стратегий данная функция возвращает тикет сделки без проблем, а когда бросаешь советник на График она всегда возвращает "ноль", несмотря на то, что функция ResultRetcode() всегда возвращает "TRADE_RETCODE_DONE".
Пример кода:
Лог выполнения в Тестере:
Лог выполнения на Графике:
Что я делаю не так? Как получить тикет сделки в режиме реального времени?
И второй вопрос (менее важный) почему сразу после совершения сделки на Графике функция PositionsTotal() возвращает "ноль"? А с приходом следующего тика показывает достоверные данные. Можно эту информацию получить как то сразу?
Всем доброго времени!
У меня есть вопрос по работе функции ResultDeal() в классе CTrade.
Дело в том, что в Тестере стратегий данная функция возвращает тикет сделки без проблем, а когда бросаешь советник на График она всегда возвращает "ноль", несмотря на то, что функция ResultRetcode() всегда возвращает "TRADE_RETCODE_DONE".
Пример кода:
Лог выполнения в Тестере:
Лог выполнения на Графике:
Что я делаю не так? Как получить тикет сделки в режиме реального времени?
И второй вопрос (менее важный) почему сразу после совершения сделки на Графике функция PositionsTotal() возвращает "ноль"? А с приходом следующего тика показывает достоверные данные. Можно эту информацию получить как то сразу?
Хмм.. Внезапно нужные мне данные в реалтайме возвращает функция ResultOrder() того же класса CTrade, хотя отложенными ордерами я не пользовался...
Вопрос тот же: Что я делаю не так?
Есть вот такой макрос.
Я его использую вот так.
Warning"Warnig сработал. ");
Вопрос: Что нужно поправить в определении макроса, чтобы можно использовать его вот так ?
Warning("Warnig сработал. ");
т.е со скобкой между Warning и "Warnig сработал. " Пытался в определении макроса использовать скобку
но компилятор не разрешает использовать скобку.
Хмм.. Внезапно нужные мне данные в реалтайме возвращает функция ResultOrder() того же класса CTrade, хотя отложенными ордерами я не пользовался...
Вопрос тот же: Что я делаю не так?
Просто разберитесь с системой ордеров МТ5, ордер- сделка- позиция.
ResultOrder - открывающий ордер. Позиция будет с POSITION_IDENTIFIER равным тикету этого ордера.
Все сделки можно будет найти в истории по идентификатору позиции. Не путать с тикетом позиции, он может меняться, а идентификатор постоянен.
з.ы. тестер отличается тем, что там без задержек исполняется ордер и сразу рождается сделка. В реале проходит время и на момент успешного создания ордера сделки еще нет, её нужно отлавливать в OnTrade событияхЕсть вот такой макрос.
Я его использую вот так.
Вопрос: Что нужно поправить в определении макроса, чтобы можно использовать его вот так ?
т.е со скобкой между Warning и "Warnig сработал. " Пытался в определении макроса использовать скобку
но компилятор не разрешает использовать скобку.
вы хотите использовать параметрическую форму, хотя прописали безпараметрическую. надо как то так
Я плохо объяснил. Давайте сначала. Сейчас я использую макрос вот так:
Warning,"Warnig сработал. i=",i);
Вот сам макрос:
В вызове макроса между "Warning," и ");" Произвольное количество параметров произвольных типов. Это все достигается за счет много кратной перезагрузки функции Write.
Вопрос. Что нужно поправить в макросе чтобы его можно было вызывать вот так:
Warning("Warnig сработал. i=",i);
Я плохо объяснил. Давайте сначала. Сейчас я использую макрос вот так:
Вот сам макрос:
В вызове макроса между "Warning," и ");" Произвольное количество параметров произвольных типов. Это все достигается за счет много кратной перезагрузки функции Write.
Вопрос. Что нужно поправить в макросе чтобы его можно было вызывать вот так:
Ответ: также многократно перезагрузить макрос)
Но лучше просто использовать оператор + для строк и все преобразовать в строки, тогда вам не нужна версия функции (и макроса) с кучей параметров
Просто разберитесь с системой ордеров МТ5, ордер- сделка- позиция.
ResultOrder - открывающий ордер. Позиция будет с POSITION_IDENTIFIER равным тикету этого ордера.
Все сделки можно будет найти в истории по идентификатору позиции. Не путать с тикетом позиции, он может меняться, а идентификатор постоянен.
з.ы. тестер отличается тем, что там без задержек исполняется ордер и сразу рождается сделка. В реале проходит время и на момент успешного создания ордера сделки еще нет, её нужно отлавливать в OnTrade событияхЗдравствуйте! как получить доступ к свойствам индикатора из советника. К примеру я хочу изменить цвет линии из советника, зная хендл индикатора. По справке искал, ничего не нашел, может плохо ищу?
Индикатор для этого должен иметь входной параметр цвета. То есть это должен быть пользовательский индикатор.