Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1016

 
Oleh Fedorov:

Bonjour.

Personne n'a rien à dire sur le poste de Bilder ?

Peut-être serait-il judicieux de le mettre dans un nouveau fil de discussion, afin que plus de personnes le voient ? Si c'est le cas, demandez aux modérateurs de l'afficher... Ou en créer un vous-même ?

Oui, créez un sujet séparé. Essayez simplement de choisir la bonne section du forum dans laquelle créer le sujet.

 

Un conseil, s'il vous plaît, élémentaire. Les tableaux.

Je suis en train d'étudier et je ne comprends pas.

double tick[2,2];

void OnTick()
  {
  tick[1,1] = Ask;
  tick[1,2] = NormalizeDouble(tick[1,1]*100*_Point,_Digits);
  OrderSend(Symbol(),OP_BUYSTOP,0.01,tick[1,2],3,0,0,"bs2",0,0,clrBlue); 
}

Je n'obtiens pas d'erreurs pendant la compilation, mais lorsque je l'exécute dans le terminal, il me donne une erreur critique.

Pourquoi lorsque le commentaire de la valeurtick[1,1] est imprimé, il arrondit le nombre à 4 décimales.

Pourquoi est-il non seulement incapable de calculer correctement la valeur dutick[1,2] mais refuse également de copier les données de la celluletick[1,1] (tick[1,2]=tick[1,1] ;).

Et enfin, pourquoi, lors de la création d'un ordre, si au lieu de la valeur du prix je cite une cellule du tableau où ce prix est stockétick[1,2], il considère cette variable comme 2 valeurs à la fois. (il y a un saut de valeur de glissement dans les indices)

 
Gilmor:

Un conseil, s'il vous plaît, élémentaire. Les tableaux.

Je suis en train d'étudier et je ne comprends pas.

Je n'obtiens pas d'erreurs pendant la compilation, mais j'obtiens une erreur critique lorsque je l'exécute dans le terminal.

Pourquoi lorsque le commentaire de la valeurtick[1,1] est imprimé, il arrondit le nombre à 4 décimales.

Pourquoi est-il non seulement incapable de calculer correctement la valeur dutick[1,2] mais refuse également de copier les données de la celluletick[1,1] (tick[1,2]=tick[1,1] ;).

Et enfin, pourquoi, lors de la création d'un ordre, si au lieu de la valeur du prix je cite une cellule du tableau où ce prix est stockétick[1,2], il considère cette variable comme 2 valeurs à la fois. (il y a un saut de valeur de glissement dans les indices)

Car dans les paramètres de la fonction OrderSend, comme dans toutes les autres fonctions, la virgule joue un rôle. Dès qu'une virgule apparaît dans le texte, elle est traitée comme un séparateur pour les valeurs entrantes. Faire tic-tac [1] [2]

 
Alexey Viktorov:

Car dans les paramètres de la fonction OrderSend, comme dans toutes les autres fonctions, la virgule joue un rôle. Dès qu'une virgule apparaît dans le texte, elle est traitée comme un séparateur pour les valeurs entrantes. Faire tic-tac [1] [2]

Merci. Peut-être pouvez-vous répondre aux autres questions aussi ? :)
 
Gilmor:
Merci. Peut-être pouvez-vous aussi répondre à d'autres questions ? :)

Pouvez-vous répondre à la question viande(2.55=367.12)

 
Alexey Viktorov:

Pouvez-vous répondre à la question viande(2.55=367.12)

Je l'ai.

double tick[2,2];

void OnTick()
  {
  tick[1,1] = Ask;
  tick[1,2] = NormalizeDouble(tick[1,1]*100*_Point,_Digits);
  }
double tick[2,2];

Création d'un tableau de 2 cellules de la ligne supérieure et de 2 cellules de la ligne inférieure.

void OnTick()
  {
  tick[1,1] = Ask;
 Comment (tick[1,1])

Résultat. Le prix sur le graphique est de 0.84478, mais le commentaire en haut de page indique 0.8448 ? ??? Pourquoi a-t-il arrondi à 4 décimales ?

double tick[2,2];

void OnTick()
  {
  tick[1,1] = Ask;
  tick[1,2] = tick[1,1];
  }

En suivant la logique de l'écriture dans une cellule, je copie les données de la cellule 1 du tableau, dans la cellule 2 du même tableau. Le résultat est une erreur critique.

Pourquoi ?

double tick[2,2];

void OnTick()
  {
  tick[1,1] = Ask;
  tick[1,2] = NormalizeDouble(tick[1,1]*100*_Point,_Digits);
  }

Nous voulons ajouter à la cellule 2 du tableau la valeur du prix futur de l'ordre en attente. En d'autres termes, nous voulons ajouter 100 points au prix Ask et spécifier ensuite cette cellule du tableau dans le paramètre de prix lors de la passation de l'ordre. Mais en exécutant cette commande, nous obtenons à nouveau la même erreur.


Pourquoi ?

 
Gilmor:

En suivant la logique de l'écriture dans une cellule, je copie les données de la cellule 1 du tableau, à la cellule 2 du même tableau. Le résultat est une erreur critique.

Pourquoi ?

parce que vous ne comprenez pas ce que sont les tableaux, si vous avez lu l'aide, et que ça n'a pas marché, allons "sur nos doigts".

c'est une déclaration de tableau

double tick[2,2];

qui indique au compilateur de réserver "4 cellules de mémoire" --> 2x2

et l'accès à l'élément le plus bas a l'index 0, c'est-à-dire que dans votre cas, le tableautick[2,2], aura seulement ces éléments de tableau

tick[0,0]tick[0,1]

tick[1,0]tick[1,1]

il y a 4 éléments dans le tableau, n'est-ce pas ? .... mais l'indice le plus jeune du tableau a le numéro 0, et non comme vous le voudriez (ou comme vous vous y êtes habitué pendant le calcul verbal) du numéro 1


et, par conséquent, l'élément le plus ancien du tableau aura le nombre : taille du tableau moins 1.

si vous avez dépassé les dimensions du tableau, vous obtiendrez une erreur critique d'exécution - votre capture d'écran, c'est-à-dire que pour le tableautick[2,2], il n'existe pas d'élément de tableau avec le numérotick[2,2].

 

Au moins, j'admets être un débutant :)

Merci.

Eh bien, le truc "sur vos doigts" est une habitude. "Sur vos doigts", c'est plus facile à comprendre. Et si je l'expliquais à quelqu'un qui est un zéro absolu dans cette langue, je devrais utiliser mes orteils pour le clarifier =))

 
Gilmor:

Au moins, j'admets être un débutant :)

Merci.

Eh bien, le truc "sur vos doigts" est une habitude. "Sur tes doigts", c'est plus facile à comprendre. Et si je l'expliquais à quelqu'un qui est un zéro dans cette langue, je devrais utiliser mes orteils pour le clarifier =))

Un débutant n'est pas une honte, plus la branche est thématique - pour les débutants, et c'est l'un des rares forums où vous pouvez obtenir une réponse rapide à votre question ;)

En outre, lisez le début de l'aidehttps://docs.mql4.com/ru/basis/variables.

 
Igor Makanu:

ce n'est pas une honte pour un débutant, d'autant plus que c'est l'un des rares forums où vous pouvez obtenir une réponse rapide à votre question ;)

et pour couronner le tout, lisez le début de l'aidehttps://docs.mql4.com/ru/basis/variables.

Merci.
Raison: