Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 52

 
Gracias.
 
Dimka-novitsek:

¡¡¡Gracias!!! Muy comprensible.

Y aquí... No sé, me da vergüenza sólo preguntar, pero aun así, estoy traduciendo el EA. ¿Es eso una completa mierda? ¿Sólo quitar la cuerda?

La variable text_color se declara como tipo color, es un tipo sin signo, su valor nunca puede ser menor que cero.

Ese es su principal error.

 
Urain:

La variable text_color se declara como tipo color, es un tipo sin signo, su valor nunca puede ser menor que cero.

Ese es su principal error.

Sí, yo no escribí eso, lo traduje de EmQuele 4, así que estoy confundido en cuanto a lo que es. Creo que el color puede ser comparado con el número...

Y ahora, por favor, dígame qué es. ¿Cómo se produce este error, a partir de qué, dónde mirar en el código?? 2012.10.25 16:29:32 Completamente eliminada la impresión. (EURUSD,M1) no puede cargar el indicador 'Media Móvil' [4002]

 
¡¡¡Me he pasado una hora buscando un lugar en el EA que mencione a MA!!! No puedo recordar... Y. Ahí está. ¿Qué buscar en él? ¿Cómo se puede detectar este error en particular?
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);} 
                  
                  
 
 
Voy a ejecutar el robot de nuevo para ver en qué orden aparece el error... Es decir, ATR no parece cometer un error, sólo MA
 
 
¿Puede ser más específico sobre qué línea está mal? ¿Estoy buscando en el lugar equivocado?
 
Se ha añadido una huella.
double CalculateStrengthPairsTF(string a_symbol, ENUM_TIMEFRAMES a_timeframe) {

   Print("a_symbol  " , a_symbol ,"  a_timeframe ", a_timeframe );
¡¡¡Las impresiones no dieron nada que entender!!! Qué hacer?????What?????
 
¡¡¡¡Hay unos 1000 lugares en el EA donde se llama a la función, y sinceramente no entiendo cómo puede ser al menos aproximadamente cómo se produce ese error!!!! ¡¡¡Qué buscar y cómo buscar!!! ¡Estoy confundido!
 
Dimka-novitsek: ¡¡¡Qué ver y cómo ver!!! ¡Estoy confundido!
¿Has probado a mirar la descripción del error impreso, Dimon Vladimirovich?
Razón de la queja: