спасибо, как я написал в первом посте, символ EURUSD есть в списке (для выбранного в тестере EURGBP Bid выдается):
и если сделать EURUSD текущим, то Bid тоже возвращается:
2009.01.04 02:27:40 2008.12.02 18:30 MACD Sample EURUSD,M15: symbol: EURUSD, len:6, bid:1.2709
2009.01.04 02:27:40 2008.12.02 18:30 MACD Sample EURUSD,M15: symbol: EURUSD, len:6, bid:1.2709
получается, что MarketInfo() иногда не работает для нетекущего символа ?
Привет! Прошу прощения за возможно глупый вопрос. Но я не могу заставить MarketInfo() вернуть Bid для валюты, которая не является текущей для советника.
Например, в тестере для текущей пары EURGBP MarketInfo() возвращает bid 0 для пары EURUSD (MT4 build 220, брокер FXDD, EURUSD есть в списке валют)
проверял следующим кодом:
получается результат:
2009.01.04 01:24:13 2008.01.02 11:00 MACD Sample EURGBP,M15: symbol: EURUSD, len:6, bid:0
2009.01.04 01:24:13 2008.01.02 11:00 MACD Sample EURGBP,M15: symbol: EURGBP, len:6, bid:0.7389
Непонятно, что я делаю не так.
Заранее спасибо!
MarketInfo очень не надежная функция ... сервер брокера часто ее игнорирует, особенно вовремя новостей... Bid можно узнать через iClose... С Askом сложнее, нужно знать спред... Без Маркетинфо здесь не обойтись...
MarketInfo очень не надежная функция ... сервер брокера часто ее игнорирует, особенно вовремя новостей... Bid можно узнать через iClose... С Askом сложнее, нужно знать спред... Без Маркетинфо здесь не обойтись...
kharko, большое спасибо, через iClose() все работает!
(странно, как мультивалютные советники работают через MarketInfo(), если эта функция так ненадежна)
kharko, большое спасибо, через iClose() все работает!
(странно, как мультивалютные советники работают через MarketInfo(), если эта функция так ненадежна)
Вот так и работают)))) никак не работают. Было как-то в советнике который должен был открывать одновременно 2 сделки по 2 инструментам. Нужно было только одновременное открытие. Маркет инфо возвращал, что все нормально, торговля разрешена, можно открывать. А сделка только по 1 паер открывлась, по второй отлуп. Если руками попробовать открыть по ней, то выдавался отказ с формулировкой - торговля запрещена по инструменту. Да бывает что и более тривиальные вещи не работают.
Для загрузки истории по другому инструменту нужно к нему обратиться, например считать цену или время. После этого (после загрузки истории) можно использовать и МаркетИнфо(). Но это относится только к тестеру или оптимизатору. При работе на демо или реале такой проблемы нет.
Но при этом нельзя забывать, что тиковая история по другим инструментам не моделируется. Поэтому на нулевом баре известна только цена открытия.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Привет! Прошу прощения за возможно глупый вопрос. Но я не могу заставить MarketInfo() вернуть Bid для валюты, которая не является текущей для советника.
Например, в тестере для текущей пары EURGBP MarketInfo() возвращает bid 0 для пары EURUSD (MT4 build 220, EURUSD есть в списке валют)
проверял следующим кодом:
получается результат:
Непонятно, что я делаю не так.
Заранее спасибо!