Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 52

 
Obrigado!
 
Dimka-novitsek:

Obrigado!!! Muito compreensível.

E aqui... Não sei, tenho vergonha de apenas perguntar, mas mesmo assim, estou a traduzir a EA. Isso é um monte de tretas? Basta remover o fio?

A variável text_color é declarada como cor de tipo, é um tipo sem assinatura, o seu valor nunca pode ser inferior a zero.

Esse é o seu principal erro.

 
Urain:

A variável text_color é declarada como cor de tipo, é um tipo sem assinatura, o seu valor nunca pode ser inferior a zero.

Esse é o seu principal erro.

Sim, eu não escrevi isso, traduzi-o do EmQuele 4, por isso fiquei confuso sobre o que é. Penso que talvez a cor possa ser comparada com o número.

E agora, por favor, diga-me o que é? Como ocorre este erro, de quê, onde procurar em códigos??? 2012.10.25 16:29:32 Impressão completamente removida. (EURUSD,M1) não pode carregar o indicador "Média móvel" [4002]

 
Passei uma hora à procura de um lugar na EA que menciona MA!!! Não me consigo lembrar... E. Aí está. O que procurar nele? Como é que este erro em particular pode ser detectado?
double CalculateStrengthPairsTF(string a_symbol, ENUM_TIMEFRAMES a_timeframe) {

SymbolSelect(
  a_symbol,       // имя символа
  true      // включить или выключить
   );

    long DIGITS_ = SymbolInfoInteger(a_symbol,SYMBOL_DIGITS);
   //---
    MqlTick last_tick;
   SymbolInfoTick(a_symbol,last_tick);
   double BID_ = last_tick.bid;
   BID_ = NormalizeDouble( BID_, (int)DIGITS_);
  
    MA_handle=iMA(a_symbol,periodd(a_timeframe),Period_,0,method_ma,price_applied);
    //--- заполнение массива MA[] текущими значениями индикатора iMA
   //--- в массив будет записано 100 элементов
   
 //--- если не удалось создать хэндл
   if(MA_handle==INVALID_HANDLE)
     {
      //--- сообщим о неудаче и выведем номер ошибки
     PrintFormat("Не удалось создать хэндл индикатора iMA для пары %s/%s, код ошибки %d",
                 a_symbol,
                  EnumToString(a_timeframe),
                  GetLastError()); ResetLastError();return (0.0);} 
                  
                  
 
   
   CopyBuffer(MA_handle,0,0,100,MA);
   //--- задаём порядок индексации массива MA[] как в MQL4
   ArraySetAsSeries(MA,true);  
   double iMA_ = NormalizeDouble(MA[0], (int)DIGITS_);
           
   ATR_handle=iATR(a_symbol,periodd(a_timeframe),Period_   );
   
    //--- если не удалось создать хэндл
   if( ATR_handle==INVALID_HANDLE)
     {
      //--- сообщим о неудаче и выведем номер ошибки
     PrintFormat("Не удалось создать хэндл индикатора iATR для пары %s/%s, код ошибки %d",
                 a_symbol,
                  EnumToString(a_timeframe),
                  GetLastError()); ResetLastError();return (0.0);} 
                  
                  
 
 
Vou correr novamente o robô para ver em que ordem o erro aparece. Isto é, a ATR não parece cometer um erro, apenas MA
 
 
Pode ser mais específico em que linha está errado? Estou a procurar no sítio errado?
 
Acrescentada uma impressão.
double CalculateStrengthPairsTF(string a_symbol, ENUM_TIMEFRAMES a_timeframe) {

   Print("a_symbol  " , a_symbol ,"  a_timeframe ", a_timeframe );
As impressões não deram nada para entender!!! O que fazer?????O que?????
 
Existem cerca de 1000 lugares na EA onde a função é chamada, e honestamente não entendo o que poderia ser pelo menos aproximadamente como ocorre um erro deste tipo!!!! O que procurar e como procurar!!! Estou confuso!
 
Dimka-novitsek: O que observar e como observar!!! Estou confuso!
Já tentou ver a descrição do erro impresso, Dimon Vladimirovich?