Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 284

 
barabashkakvn:
Порядковый номер в "Обзор рынка" или цену на данный момент?

Порядковый номер в  "Обзор рынка".

Мне понятно как получить строковое описание символа с помощью SymbolInfoString, а как получить номер не могу найти нигде (: 

 
Crucian:

Порядковый номер в  "Обзор рынка".

Сначала

int  SymbolsTotal(
   bool  selected      // true – только символы в MarketWatch
   );

 затем

string  SymbolName(
   int   pos,          // номер в списке
   bool  selected      // true – только символы в MarketWatch
   );

 и как только SymbolName==Ваш символ, вы будете знать его pos.

 
barabashkakvn:

Сначала

 затем

 и как только SymbolName==Ваш символ, вы будете знать его pos.

 Спасибо!  

Но почему-то не работает, роs всегда = 0.  Может чего-то не так делаю, утром разберусь:). 

 
Crucian:

 Спасибо!  

Но почему-то не работает, роs всегда = 0.  Может чего-то не так делаю, утром разберусь:). 

В SymbolName вы передаёте pos и проверяете на выходе параметр strung.
 
Crucian:

 Спасибо!  

Но почему-то не работает, роs всегда = 0.  Может чего-то не так делаю, утром разберусь:). 

//+------------------------------------------------------------------+
   int PositionsSymbolInList(string sy) {
      for(int i=0; i<SymbolsTotal(false); i++) {
         string symbol_name=SymbolName(i,false);
         if(sy==symbol_name) return i;
         }
      return -1;
   }
//+------------------------------------------------------------------+
 
Crucian:

 Спасибо!  

Но почему-то не работает, роs всегда = 0.  Может чего-то не так делаю, утром разберусь:). 

//+------------------------------------------------------------------+
int IndexSymbolInMarketWatch(string sy)
  {
   for(int i=SymbolsTotal(true)-1; i>=0; i--)
     {
      if(SymbolName(i,true)==sy)
         return (i);
     }
   return (-1);
  }
//+------------------------------------------------------------------+
 
artmedia70:

 Спасибо ваш код работает, а вот код paladin800 почемуто нет (.

Но, нет никакой последовательности в номерах. Например EUR=21 , GBP=28, CHF=36, JPY=40, EUR/JPY=16. Так должно быть?

 
Crucian:

 Спасибо ваш код работает, а вот код paladin800 почемуто нет (.

Но, нет никакой последовательности в номерах. Например EUR=21 , GBP=28, CHF=36, JPY=40, EUR/JPY=16. Так должно быть?

SymbolsTotal(false)

Это поиск в списке доступных символов, если же true, то только выбранных в Обзоре рынка.

В каком порядке они расположены в списке доступных символов - те индексы и возвращаются. Тогда как, если брать из списка в MarketWatch (если true), то индексы зависят от сортировки символов (их можно перетаскивать мышкой) в Обзоре рынка, что не всегда удобно - есть зависимость от "шаловливых ручек юзера".

 

Eще вопросик.

При компиляции MetaEditor стал выдавать предупреждение:

return value of 'OrderSend' should be checked Bollinger_Bands_strategy_4.mq5 690 7
(возвращаемое значение " OrderSend " должны быть проверены)

Я проверяю результат после отсылки запроса:

           OrderSend(mrequest,mresult);
            if(mresult.retcode==10009 || mresult.retcode==10008)
              { 
             
               Print("Set pending order SellStop"  );
               ModificationPosition=0;
            }else
              {
               Print(ResultRetcodeDescription(mresult.retcode));
               return;
              }

Или этого недостаточно?   Чего хочет  MetaEditor?  

 
Crucian:

Eще вопросик.

При компиляции MetaEditor стал выдавать предупреждение:

return value of 'OrderSend' should be checked Bollinger_Bands_strategy_4.mq5 690 7
(возвращаемое значение " OrderSend " должны быть проверены)

Я проверяю результат после отсылки запроса:

Или этого недостаточно?   Чего хочет  MetaEditor?  

if(OrderSend(...))

либо

bool res=OrderSend(...);

Не, ошибся. Сплю уже. Эт я по привычке из своих функций из классов... Хотя это для mql4, как в пятёрке - хз... :)

int ticket=OrderSend()
Причина обращения: