
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Это GBPAUD H4 3.12.2018 целый день! И в этот раз я не пропустил до конца.
Может ли функция печати терять некоторые отчеты, когда у нее слишком много отчетов для печати?
Я думаю, другая проблема может быть связана с тем, что тики этих 3 инструментов выходят в разные миллисекунды, поэтому, когда мы используем функцию start/OnTick на GBPAUD, она просто выполняет функцию start всякий раз, когда выходит тик GBPAUD. И я предполагаю, что в вашем коде может быть сказано, что нужно вернуть цены всех этих 3 пар, когда ни одна из них не равна 0. Если это так, то функция возвращает цены, когда все цены ask/bid всех инструментов выходят в одно и то же время.
Данные выглядят нормально...
Вы правы насчет функции печати... Я тоже вижу много пропущенных строк в своем тестировании. Но когда я печатаю все в файл, ничего не пропущено.
Вот немного информации о коде: время каждого тика GBPAUD будет использоваться для получения последних тиков других пар (до того же времени), поэтому функция всегда будет что-то возвращать, не ноль.
Я решил поместить функцию в класс, что должно быть аккуратнее. См. прикрепленный файл. Поместите его в папку expert вместе с советником. Не стесняйтесь модифицировать его.
Следующий пример показывает один из вариантов использования (выделенные линии очень важны):
Итак, ключом на самом деле является только эта строка:ticksInfo.getTick(<SYMBOL String>,<MqlTick Struct>). Если она возвращает false, вам придется проверить журнал на наличие сообщения об ошибке.
Данные выглядят нормально...
Вы правы насчет функции печати... Я тоже вижу много пропущенных строк в своем тестировании. Но когда я печатаю все в файл, ничего не пропущено.
Вот немного информации о коде: время каждого тика GBPAUD будет использоваться для получения последних тиков других пар (до того же времени), поэтому функция всегда будет что-то возвращать, не ноль.
Я решил поместить функцию в класс, что должно быть аккуратнее. См. прикрепленный файл. Поместите его в папку expert, вместе с советником. Не стесняйтесь модифицировать его.
Следующий пример показывает один из способов использования (выделенные линии очень важны):
Итак, ключом на самом деле является только эта строка:ticksInfo.getTick(<SYMBOL String>,<MqlTick Struct>). Если она возвращает false, вам придется проверить журнал на наличие сообщения об ошибке.
Спасибо за помощь,
Я скопировал все эти строки во все нужные места. Но поскольку я не понимаю код, пожалуйста, подскажите, как поместить Ask и Bid второй пары в Ask2,Bid2 и то же самое для третьей пары.
Вот моя глобальная область:
И Эта часть возвращает 2 ошибки при компиляции. Что мне с ними делать?
'SecondPair' - требуется константное выражение MyEA!.mq4
'ThirdPair' - требуется постоянное выражение MyEA!.mq4
Спасибо за помощь,
Я скопировал все эти строки во все нужные области. Но поскольку я не понимаю код, пожалуйста, подскажите мне, как поместить Ask и Bid второй пары в Ask2,Bid2 и то же самое для третьей пары.
Вот моя глобальная область:
И Эта часть возвращает 2 ошибки при компиляции. Что мне с ними делать?
'SecondPair' - требуется константное выражение MyEA!.mq4
'ThirdPair' - требуется постоянное выражение MyEA!.mq4
Тогда объявите свои otherPairs так же, как и allPairs. И в OnInit сделайте следующее:
А чтобы присвоить значения Ask2, Bid2, Ask3, Bid3, сделайте это в OnTick:
Затем объявите свои otherPairs так же, как и allPairs. И в OnInit сделайте следующее:
А чтобы присвоить значения Ask2, Bid2, Ask3, Bid3, сделайте это в OnTick:
Опять выдает 00 :(
Моя глобальная область:
OnInit:
OnDeinit:
OnTick:
Journal:
2019.05.14 17:37:14.686 2018.01.03 23:36:58 MyEA! GBPAUD,H4: Ошибка GBPCAD
2019.05.14 17:37:14.686 2018.01.03 23:36:58 MyEA! GBPAUD,H4: Ошибка GBPUSD
2019.05.14 17:37:14.686 2018.01.03 23:36:58 MyEA! GBPAUD,H4: GBPAUD тик номер 221179, в 2018.01.03 23:36:58 000 Ask = 1.72479 Bid = 1.72459
2019.05.14 17:37:14.686 2018.01.03 23:36:58 MyEA! GBPAUD,H4: === Сейчас обрабатывается тик 221179
Где я ошибаюсь?
Извиняюсь за свой нулевой уровень мастерства :D
Он снова выдает мне 00 :(
Моя глобальная область:
OnInit:
OnDeinit:
OnTick:
Где я ошибаюсь?
Прошу прощения за мой нулевой уровень мастерства :D
Прошу прощения за мой нулевой уровень мастерства :D
OnInit - 3 новые строки должны идти перед всем.
Я так и сделал. Но очень странно: таймер для этих двух дополнительных пар не работает...
Я сделал это. Но очень странно: таймер для этих двух дополнительных пар не работает...
История загрузки в MQL4 советнике - MQL4 и MetaTrader 4 - Форум по программированию на MQL4
Исправлено
Функция, на которую дана ссылка, открывает скрытый график для данного символа/TF (если он еще не открыт), обновляя историю, и временно помещает символ в Market Watch (если его там еще нет), чтобы SymbolInfoDouble(symbol, SYMBOL_BID ) или MarketInfo(symbol, MODE_BID ) также не вернули ноль при первом вызове.
История загрузки в MQL4 советнике - MQL4 и MetaTrader 4 - Форум по программированию на MQL4
Исправлено
Функция, на которую дана ссылка, открывает скрытый график для данного символа/TF (если он еще не открыт), обновляя историю, и временно помещает символ в Market Watch (если его там еще нет), чтобы SymbolInfoDouble(symbol, SYMBOL_BID ) или MarketInfo(symbol, MODE_BID ) также не вернули ноль при первом вызове.
Вы правы. Но не стоит беспокоиться, потому что единственное, что мы делаем в OnInit, это инициализируем массивы для хранения имен символов и подготавливаем некоторые дескрипторы файлов для чтения наших собственных файлов данных. Что касается цен спроса и предложения (т.е. "тиковых" данных), мы обращаемся к ним только в OnTick, и в основном из наших собственных файлов данных, поскольку тестер стратегий MT4 всегда возвращает нули при запросе таких данных других символов (обратите внимание, что это поведение отличается от получения данных OHLC, с которыми люди более знакомы).