Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1464

 

Здравствуйте, подскажите пожалуйста как получить значения тика ask,bid.

Нюанс, У меня интегрирована в систему крипто биржа.

Проблема в том что в обзоре рынка и на самом графике котировки отражаются правильно, но при запросе через функции :

   MqlTick last_tick;
   SymbolInfoTick(Symbol(),last_tick);
   ask=SymbolInfoDouble(Symbol(),SYMBOL_ASK);
   bid=SymbolInfoDouble(Symbol(),SYMBOL_BID);
   Comment(": Bid = ",bid," Ask = ",ask," tick Time ",TimeToString(last_tick.time,TIME_SECONDS),
           "\n"," Ls_bid ",last_tick.bid," Ls_ask ",last_tick.ask);

Котировки перестают отражаться правильно.  Вообще засада!!!!!!!!!!


Какими еще способами можно получить значения? 

Спецы прошу не проходите мимо!!! Треть жизни разрабатываю робота, на горизонте виднеется финиш , а тут такая жесть!!!

 
Михаил, в обзоре рынка стоит одно время, в журнале другое. Так должно быть? Что-то не въеду...
 
Aleksei Stepanenko:
Михаил, в обзоре рынка стоит одно время, в журнале другое. Так должно быть? Что-то не въеду...

Вот и я не въеду , почему так!

Есть ли возможность запросить котировки иначе?

 
pribludilsa:
(MQL5) Привет. ПОмогите пожалуйста собрать в цикле информацию об открытых позициях. Я не могу сопоставить никак индекс открытой позиции и номер элемента массива. Не могу сконструировать код никак правильно. Вот мне нужно получить тип, объем, и цену, предположим, я создаю массивы заранее. Делаю цикл, выбираю в нем позицию по тикету, а дальше как? А и еще просьба, я пока учусь без ооп, можно без ооп пример, пж.

А в этом вопросе ООП никак не поможет. Для полного ответа не хватает информации. Позиции по разным инструментам? Надо выбрать только по одному? Сделайте дополнительный счётчик и если позиция «наша» то увеличиваем размер массива, пишем в последний элемент массива и увеличиваем счётчик до следующей «нашей» позиции.

 
Добрый день подскажите возможно ли вызывать функцию, если у меня есть только ее имя типа string и аргументы. В общем есть ли возомжно вызвать функцию по имени?
 
Евгений Косухин:
Добрый день подскажите возможно ли вызывать функцию, если у меня есть только ее имя типа string и аргументы. В общем есть ли возомжно вызвать функцию по имени?
Э, самого ответа пока не нашел, но временно пока просто видимо буду писать if (name == 'iMA') { iMA(...) } 
И в таком духе, впринцыпе это работает
 
Добрый день! Подскажите пожалуйста для чего перед ChartGetInteger в круглых скобках стоит (int)
   int bars=(int)ChartGetInteger(0,CHART_VISIBLE_BARS); 
 
Dzmitry Zaitsau:
Добрый день! Подскажите пожалуйста для чего перед ChartGetInteger в круглых скобках стоит (int)
   int bars=(int)ChartGetInteger(0,CHART_VISIBLE_BARS); 

Для того чтобы явно привести значение к нужному типу.

long  ChartGetInteger(
   long  chart_id,          // идентификатор графика
   int   prop_id,           // идентификатор свойства
   int   sub_window=0       // номер подокна, если требуется
   );
функция возвращает тип long, а надо тип int.
 
Евгений Косухин:
Э, самого ответа пока не нашел, но временно пока просто видимо буду писать if (name == 'iMA') { iMA(...) } 
И в таком духе, впринцыпе это работает

а что мешает сразу вызвать МА, без имени "МА"?

 
Alexey Viktorov:

А в этом вопросе ООП никак не поможет. Для полного ответа не хватает информации. Позиции по разным инструментам? Надо выбрать только по одному? Сделайте дополнительный счётчик и если позиция «наша» то увеличиваем размер массива, пишем в последний элемент массива и увеличиваем счётчик до следующей «нашей» позиции.

Спасибо.

Причина обращения: