Новая фишка, если в цикле:
Вместо: tick_value = SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE); Заменить: tick_value = SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE); // неправильно -1.#IND tick_value = SymbolInfoDouble(symbol, SYMBOL_BID); // Bid цена - правильно tick_value = SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE); // теперь и Tick Value правильно
И так на каждой итерации. Причем второй раз показывает правильно только в режиме отладки. Если скомпилировать, то оба раза ошибки выдает.
В сервис-деск чтоли ?
попробуй 2-й вариант функции:
bool SymbolInfoDouble( string name, // символ ENUM_SYMBOL_INFO_DOUBLE prop_id, // идентификатор свойства double& double_var // сюда примем значение свойства );
попробуй 2-й вариант функции:
С перегруженой функцией та же картина. Полный привет... это по два раза нужно функцию вызывать чтобы до терминала дошло чего хотят от него ))
Искусственный интеллект...
Что самое парадоксальное. У меня 5 терминалов - версия и билд у всех одинаковый, на 3-х ошибок нет, на двух есть.
Дополню по второму варианту.
Возвращает TRUE, то есть успешно выполнена, GetLastError дает 0 - ошибок нет, но значение х.з. какое "-1.#IND"
tick_value = MarketInfo(symbol, MODE_TICKVALUE);
Дает то же самое. походу лажа какая-то внутри терминала при доступе к TICK_VALUE...
Да, где-то я уже это проходил, но вроде не в OnInit, хотя не припомню.
А где пробуете в тестере или на обычном чарте? Синхронизацию для каждого символа перед его использованием не пробовали?
Приветствую всех.
Вот столкнулся с проблемой. Перед работой робота вызывается штатная инициализация, то есть проблемный код работает под управлением OnInit()
Код следующий (прописан в отдельной функции, параметров у функции нет, вызывается в OnInit):
Что за ... интересная вещь?
До этого цикла вызывал специально (прямо из OnInit):
Кто-нибудь встречался еще с таким хамством со стороны функции? )))
Причем, если код перекинуть в OnInit прямо, то выдает ожидаемый результат, а не такую чушь. Но мне-то нужно оформить как функцию.
Цель подзадачи очень простая - получить размер 1 пипса в валюте депозита. Для каждой пары.
Забыл добавить - терминал 4. На 5-м не проверял.
Проверил на двух терминалах MetaTrader 4 build 765 (MetaQuotes Software Corp.) - на двух системах: Windows 8.1 64-разрядная и Windows 8.1 32-разрядная. Вызов отдельной функции из OnInit(). Возвращаемые значения корректные.
P.S. Проверял на двух разных торговых серверах. Так-же результат корректный.
Да, где-то я уже это проходил, но вроде не в OnInit, хотя не припомню.
А где пробуете в тестере или на обычном чарте? Синхронизацию для каждого символа перед его использованием не пробовали?
Да RefreshRates давал, но без толку...
Проверил на двух терминалах MetaTrader 4 build 765 (MetaQuotes Software Corp.) - на двух системах: Windows 8.1 64-разрядная и Windows 8.1 32-разрядная. Вызов отдельной функции из OnInit(). Возвращаемые значения корректные.
P.S. Проверял на двух разных торговых серверах. Так-же результат корректный.
Подготовлю пример и видео наверное... запускаю на 5-ти терминалах, на 3-х терминалах работает норм, на 2-х такие баги. Брокер один, билды терминалов одинаковые, операционка одна, все идентично.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Приветствую всех.
Вот столкнулся с проблемой. Перед работой робота вызывается штатная инициализация, то есть проблемный код работает под управлением OnInit()
Код следующий (прописан в отдельной функции, параметров у функции нет, вызывается в OnInit):
Что за ... интересная вещь?
До этого цикла вызывал специально (прямо из OnInit):
Кто-нибудь встречался еще с таким хамством со стороны функции? )))
Причем, если код перекинуть в OnInit прямо, то выдает ожидаемый результат, а не такую чушь. Но мне-то нужно оформить как функцию.
Цель подзадачи очень простая - получить размер 1 пипса в валюте депозита. Для каждой пары.
Забыл добавить - терминал 4. На 5-м не проверял.