Пожалуйста, подскажите как обновить котировки в МТ5? В МТ4 было RefreshRates().
В документации МТ5 тоже есть RefreshRates(), но в примечании написано:
"Символ должен быть предварительно выбран методом Name."
Пробовал по всякому. В компиляторе ошибка: "'RefreshRates' - undeclared identifier"
Покажите как. Лучше по проще.
Требуемая функция находится в .....MQL5\Include\Trade\SymbolInfo.mqh
Просто добавьте в начало программы строку:
#include <Trade\SymbolInfo.mqh>
Пожалуйста, подскажите как обновить котировки в МТ5? В МТ4 было RefreshRates().
В документации МТ5 тоже есть RefreshRates(), но в примечании написано:
"Символ должен быть предварительно выбран методом Name."
Пробовал по всякому. В компиляторе ошибка: "'RefreshRates' - undeclared identifier"
Покажите как. Лучше по проще.
В MQL5 котировки обновляются получением последних данных. В документации полноценный пример имеется.
Не надо подключать никакие библиотеки. Только запутаетесь. А в библиотеке
//+------------------------------------------------------------------+ //| Refresh cached data | //+------------------------------------------------------------------+ bool CSymbolInfo::RefreshRates(void) { return(SymbolInfoTick(m_name,m_tick)); }
- www.mql5.com
В MQL5 котировки обновляются получением последних данных. В документации полноценный пример имеется.
Не надо подключать никакие библиотеки. Только запутаетесь. А в библиотеке
Добрый день, Алексей. Что-то Вы опять стараетесь запутать. Приведите пример использования RefreshRates() без подключения библиотеки. Вы мое предложение отвергли, а где Ваше более простое?
Какое может быть другое предложение если есть ссылка на документацию и пример из СБ?
Это вы предлагаете запутаться в библиотеке вместо непосредственного получения результата.
Что возвращает метод RefreshRates из библиотеки??? True или false. И чтобы получить цену надо опять обращаться к библиотеке. Но ведь гораздо проще объявив структуру
//--- объявим массив с типом структуры MqlTick MqlTick tick[];
и написав всего одну строку
SymbolInfoTick(_Symbol, tick);
дальше получить любое поле структуры.
struct MqlTick { datetime time; // Время последнего обновления цен double bid; // Текущая цена Bid double ask; // Текущая цена Ask double last; // Текущая цена последней сделки (Last) ulong volume; // Объем для текущей цены Last long time_msc; // Время последнего обновления цен в миллисекундах uint flags; // Флаги тиков double volume_real; // Объем для текущей цены Last c повышенной точностью };
Какое может быть другое предложение если есть ссылка на документацию и пример из СД?
Это вы предлагаете запутаться в библиотеке вместо непосредственного получения результата.
Что возвращает метод RefreshRates из библиотеки??? True или false. И чтобы получить цену надо опять обращаться к библиотеке. Но ведь гораздо проще объявив структуру
и написав всего одну строку
дальше получить любое поле структуры.
Алексей! Вы опять увлеклись. Автор ветки спрашивает лишь, как обновить котировки. И сообщает, что на функцию RefreshRates() транслятор ругается. Строка #include решает проблемы. Всего одна строка, а Вы написали более десятка...
Константин, где вы видите более десятка строк? Читайте документацию.
Проблема не в функции RefreshRates(). Проблема в получении свежих цен по инструменту. Вы хотите сказать «какой вопрос, такой и ответ» то да, вы правы. Только вспомните mql4 и скажите как мы получали последние цены по инструменту??? Просто из предопределённых переменных Ask и Bid (если я совсем не забыл mql4) может не совсем правильно написал. Но эти предопределённые переменные получали новые значения после RefreshRates(), а в mql5 просто надо получить свежие цены и всё… Никаких обновлений котировок… Потому и вписали в СБ метод RefreshRates() для особо одарённых, которые не в состоянии понять что как работает, им надо RefreshRates() и всё… Достань и положь.
И вот ещё что: Строка #include не решает проблему. Автор ветки вряд-ли понимает, что привязка к СБ влечёт за собой не только отсутствие ошибки при применении метода RefreshRates(), но и дальнейшую зависимость от этой СБ.
зачем городить структуру, если по факту почти все используют Trade для отправки ордеров, и она сама все делает
Её городить не надо, достаточно объявить. И ключевое слово «почти». Я тоже использовал СБ когда писал на заказ, но все проверки предпочитаю делать напрямую функциями MQL5.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Пожалуйста, подскажите как обновить котировки в МТ5? В МТ4 было RefreshRates().
В документации МТ5 тоже есть RefreshRates(), но в примечании написано:
"Символ должен быть предварительно выбран методом Name."
Пробовал по всякому. В компиляторе ошибка: "'RefreshRates' - undeclared identifier"
Покажите как. Лучше по проще.