Apprendre et écrire ensemble en MQL5 - page 41

 
Dimka-novitsek: Cela signifie-t-il que la plateforme ne prend pas en charge cette paire? 2012.09.21 16:23:17 Impossible de créer un handle d'indicateur iMA pour la paire CADJPY/PERIOD_D1, code d'erreur 4302.
Vous devez vérifier pourquoi une erreur s'est produite. Le code d'erreur n'indique pas la raison exacte pour laquelle le symbole n'est pas sélectionné - que le programmeur n'ait pas fourni la connexion du symbole requis, ou que le symbole ne soit pas pris en charge par le fournisseur de devis spécifique.
 
Yedelkin:
Vous devez vérifier pourquoi l'erreur s'est produite. Après tout, le code d'erreur ne dit pas pour quelle raison le symbole n'est pas sélectionné - si le programmeur n'a pas fourni une connexion au symbole correct, ou si le symbole n'est vraiment pas pris en charge par un fournisseur de devis particulier.

Merci ! !! C'est ça ! J'ai pensé à quelque chose comme ça depuis le début,

Oh, ils nous interrompent.

mais comment ? Oui, j'agis comme si de l'aide...

 
Dimka-novitsek mais comment ? Oui, j'agis en tant qu'aide...
Il n'y a pas de code tout fait, mais voici une idée : SymbolsTotal() donne le nombre total de tous les symboles. Il reste à rechercher parmi ces symboles et à savoir si le symbole recherché est présent parmi eux. Sinon, imprimez-le, et si c'est le cas, vérifiez si le symbole souhaité est sélectionné dans Market Watch. Si ce n'est pas le cas, branchez-la.
 
MERCI ! !!
 
Y a-t-il un moyen de simuler des tics pour le week-end ?
 
Super ! !! Merci ! !! Wow, je n'avais pas pensé à ça moi-même, vraiment... Dites-moi, je ne comprends pas où les empreintes sont écrites dans le testeur, ou si elles sont écrites. Je ne les vois pas dans le carnet de bord du testeur !
 
Dimka-novitsek: Dites-moi, je ne sais pas où les empreintes sont écrites dans le testeur, ou si elles le sont. Je ne les vois pas dans le carnet de bord du testeur !
Cliquez avec le bouton droit de la souris sur l'onglet et vous verrez apparaître des options
 
Merci ! !! Maintenant...
 

Bonsoir ! Vers un vieux sujet

J'utilise la fonction SymbolsTotal() pour découvrir qu'il y a 101 symboles (ouf !!!) .

Et le plus important - quelque chose comme ce symbole est stupide ne reconnaît pas. Ici.

SYMBOLE INCONNU D'INDICATEUR D'ERREUR
4801
Symbole inconnu

Mais si vous avez besoin, ici, regardez les plis si vous pouvez et avez besoin

/////////////////////////////////////////////////////////////////////

double CalculateStrengthPairsTF(string a_symbol, ENUM_TIMEFRAMES a_timeframe) {

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

    int DIGITS_ = SymbolInfoInteger(a_symbol,SYMBOL_DIGITS);
   //---
    MqlTick last_tick;
   if(SymbolInfoTick(a_symbol,last_tick));
   double BID_ = last_tick.bid;
   BID_ = NormalizeDouble( BID_, DIGITS_);
  // Print("a_symbol");Print(a_symbol); Print("a_timeframe");Print(a_timeframe); Print( "Period_");Print( Period_); ResetLastError();
    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();} 
                  
                  
  int Total= SymbolsTotal(true);Print("Total");Print(Total);                 
  int Dotal= SymbolsTotal(false);Print("Dotal");Print(Dotal);        
   
   
   CopyBuffer(MA_handle,0,0,100,MA);
   //--- задаём порядок индексации массива MA[] как в MQL4
   ArraySetAsSeries(MA,true);  
   double iMA_ = NormalizeDouble(MA[0], DIGITS_);
           
   ATR_handle=iATR(a_symbol,periodd(a_timeframe),Period_   );
   CopyBuffer(ATR_handle,0,0,100,ATR);
   ArraySetAsSeries(ATR,true);
   double iATR_ = NormalizeDouble(ATR[0], 4);
   double for_ret = 0;
   if (iATR_ > 0.0) {
      for_ret = 100.0 * (MathAbs(BID_ - iMA_) / iATR_);
      if (BID_ < iMA_) for_ret = -1.0 * for_ret;
   }
   return (for_ret);
}



///////////////////////////////////////////////////////////////////////////////

 
Dimka-novitsek: J'utilise SymbolsTotal() pour découvrir qu'il y a 101 caractères au total (wow !!!) .

Plus important encore, il ne reconnaît pas le symbole. Ici.

SYMBOLE INCONNU D'INDICATEUR D'ERREUR
4801
Symbole inconnu

Il n'y a pas non plus de symbole CADJPY dans mon terminal. Voyez-le de cette façon : Cntrl+M, clic droit, option "Symboles...".
Raison: