Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 636

 

Ligne de code :

int Dgt=MarketInfo(Symbol(),MODE_DIGITS);

Attention :

perte possible de données due à la conversion de type FinBuy1531.mq4 144 7

Je pense que les types correspondent les uns aux autres. Qu'est-ce qui ne va pas ici ?

 
hurkin:

Ligne de code :

Attention :

perte possible de données due à la conversion de type FinBuy1531.mq4 144 7

Les types correspondent à mon opinion. Qu'est-ce qui ne va pas ici ?

Ne correspond pas, MarketInfo(...) retourne la valeur de typedouble

quelque chose comme ça :

int Dgt=(int)MarketInfo(Symbol(),MODE_DIGITS);
 
r772ra:

Aucune correspondance, MarketInfo(...) retourne une valeur de typedouble.

comme ça :

Un exemple tiré du répertoire :

double vpoint =MarketInfo("EURUSD",MODE_POINT) ;
int vdigits =MarketInfo("EURUSD",MODE_DIGITS) ;
Quelque chose d'autre semble ne pas fonctionner ?

 
Shurkin:

Un exemple tiré du répertoire :

double vpoint =MarketInfo("EURUSD",MODE_POINT) ;
int vdigits =MarketInfo("EURUSD",MODE_DIGITS) ;
Quelque chose d'autre semble ne pas fonctionner ?

Dans le cas de "MODE_DIGITS", "MarketInfo" renvoie une valeur de type "double". Ici, cela ressemble à une erreur d'implémentation de "MarketInfo". Par conséquent, la manière correcte serait :

int Dgt=(int)MarketInfo(Symbol(),MODE_DIGITS);
 

Dernière question !

Il y aOBJ_LABEL. Dans les descriptions d'objets, il y a le texte (pas le nom) et le chiffre, le chiffre change avec les ticks.

Comment faire sortir le numéro ?

 
Top2n:

Dernière question !

Il y a OBJ_LABEL. Dans les descriptions d'objets, il y a le texte (pas le nom) et le chiffre, le chiffre change avec les ticks.

Comment faire sortir le numéro ?

StringFind vous aidera. Et là int StrToInteger ou long StringToInteger
 

Bon après-midi. Veuillez m'aider à résoudre ce problème.

J'ai installé le MT4 646e build. J'ai placé dans le dossier ...\MetaTrader 4 Admiral Markets AS\MQL4\Indicateurs deux fichiers - un fichier avec le code indicateur LC-RSI_Histo3.mq4 et un fichier avec l'indicateur compilé LC-RSI_Histo3.ex4. Je lance l'indicateur - il fonctionne. Cependant, je veux modifier le code source. J'ouvre l'éditeur de code embarqué. Le problème est qu'après toute modification, même cosmétique, du code (par exemple, l'ajout d'un espace) et sa compilation ultérieure, l'indicateur après le démarrage fonctionne de manière incorrecte - toutes ses colonnes affichent la même valeur :

Le fichier .ex4 compilé (joint avec le nom LC-RSI_Histo3_1.ex4) est beaucoup plus lourd que l'original (copié dans le dossier).

Quelle en est la raison ? Comment le corriger ?

Dossiers :
 

Bonjour à tous !

Aidez-moi à résoudre cette erreur : "Pas assez de droits" ou "Pas assez de droits" code #7

Ce qui se passe : Un Expert Advisor sur une paire EURCHFX M1 ne peut pas ouvrir une position, cette erreur apparaît (trouvée dans le journal), mais en même temps, il s'ouvre sans problèmes sur d'autres paires et EURCHF M5. Il s'ouvre à la main sans aucun problème. Chez un autre courtier, cela fonctionne. Quel est le problème ?

Je vous remercie d'avance pour votre aide.

 
AlexeyVik:
StringFind est votre guide. Et ensuite int StrToInteger ou long StringToInteger


Cette fonction renvoie le nombre de positions dans le cadre temporel, et non le nombre lui-même.

int  StringFind(
   string  string_value,        // строка, в которой ищем
   string  match_substring,     // что ищем
   int     start_pos=0          // с какой позиции начинать поиск
   );

Disons que j'ai le numéro du poste, alors comment puis-je obtenir ce poste ?

 
Boeing747:

Quelqu'un a-t-il un morceau de code pour un exemple où les éléments d'un tableau de chaînes de caractères sont groupés par ordre alphabétique ?

Merci d'avance.


   string w[]={"E","c","f","b","j","R","A","H","a","c"}; // массив для экзекуции
   int size=ArraySize(w);
   string abc[]={"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"};
   string ABC[]={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
   int c,e,i;

   for(i=0; i<26; i++)
     {
      for(e=c; e<size; e++)
        {
         if(ABC[i]==w[e])
           {
            w[e]=w[c];
            w[c]=ABC[i];
            c++;
           }
         else
           {
            if(abc[i]==w[e])
              {
               w[e]=w[c];
               w[c]=abc[i];
               c++;
              }
           }


        }
     }
   
   Alert(w[0],w[1],w[2],w[3],w[4],w[5],w[6],w[7],w[8],w[9]);

Un autre exemple pour les tâches appliquées

   string w[]={"EURUSD","USDCHF","BRNQ4","AUDUSD","GOLD","AUDCHF","NZDUSD","USDCAD","SILVER","GBPUSD"}; // массив для экзекуции
   int size=ArraySize(w);
   string f=" ";
   string ABC[]={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
   int c,e,i;

   for(i=0; i<26; i++)
     {
      for(e=c; e<size; e++)
        {
         f=w[e];
         if(ABC[i]==StringSubstr(f,0,1))
           {
            w[e]=w[c];
            w[c]=f;
            c++;
           }
        }
     }

   Alert(w[0],", ",w[1],", ",w[2],", ",w[3],", ",w[4],", ",w[5],", ",w[6],", ",w[7],", ",w[8],", ",w[9]);