Apprendre et écrire ensemble en MQL5 - page 37

 
Dimka-novitsek:
Merci ! Le prix actuel de l'offre et de la demande est égal à zéro. Billet à prix réduit . Commande de billets. Bien, il y a papa.
Alors, c'est quoi le retcode ? Ça veut dire quoi ?
 

Merci ! !! Je vais regarder le retcode !

MERCI !!!! Je l'ai eu ! Nulle part sans toi.

 

Bonjour.

J'ai rencontré ce problème, que je ne comprends pas du tout. Pouvez-vous expliquer pourquoi, dans ce cas, NormalizeDouble() ne fonctionne pas toujours ?

   for ( x = .... ) {
      close = tf_rates[x].close;
      close = NormalizeDouble(close, 4 );
   }

J'ajoute le prix et d'autres donnéesau fichier pour la période actuelle. Environ 10% de toutes les entrées sont des chaînes de caractères comme :

1971.01.07,00:00,0.5368000000000001,0.5368000000000001,0.5368000000000001,0.5368000000000001,1

Le résultat est indépendant de l'ordre de normalisation, je remplace 1, 2, 3, 4, 5, Chiffres - tous les mêmes. Où est le problème ?

Документация по MQL5: Файловые операции / FileWrite
Документация по MQL5: Файловые операции / FileWrite
  • www.mql5.com
Файловые операции / FileWrite - Документация по MQL5
 
wtvirtual:

Bonjour.

J'ai rencontré ce problème, que je ne comprends pas du tout. Pouvez-vous expliquer pourquoi, dans ce cas, NormalizeDouble() ne fonctionne pas toujours ?

J'ajoute le prix et d'autres donnéesau fichier pour la période actuelle. Environ 10% de toutes les entrées sont des chaînes de caractères comme :

1971.01.07,00:00,0.5368000000000001,0.5368000000000001,0.5368000000000001,0.5368000000000001,1

Le résultat est indépendant de l'ordre de normalisation, je remplace 1, 2, 3, 4, 5, Chiffres - tous les mêmes. Où est le problème ?

Il n'y a pas d'embuscade. Voici à quoi ressemblent certaines valeurs normalisées. Voir la section du manuel de référence concernant cette fonction.
 
Yedelkin:
Il n'y a pas d'embuscade. Voici à quoi ressemblent certaines valeurs normalisées. Voir la section du manuel de référence concernant cette fonction.
Dans le manuel de référence, il y a une note concernant uniquement la sortie avec Print. Supposons que non seulement cette fonction, mais aussi toutes les autres, se "normalisent". Alors, comment devons-nous afficher cette valeur en tant que prix dans un ordre en attente?
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
wtvirtual:
Dans le manuel, il y a une remarque sur la sortie avec Print.

Alors quelle fonction utilisez-vous pour sortir ces valeurs normalisées ? :) - Ah, je l'ai. Lecture d'un fichier. Dans l'exemple du manuel de référence, la fonction Print() imprime simplement le nombre "tel quel".

wtvirtual:
Supposons que non seulement cette fonction, mais aussi toutes les autres se "normalisent". Et comment envoyer ensuite une telle valeur sous forme de prix à un ordre en attente?

Et c'est exactement comme cela qu'il faut le présenter. Qu'est-ce qui est requis pour la commande ? - Prix normalisés. Donc on les normalise et on passe. Et ce n'est pas notre problème de savoir à quoi ressemblent ces prix normalisés lorsqu'ils sont imprimés).

De plus, si vous affichez "les prix pour la période actuelle", cela signifie que ces mêmes prix avec un grand nombre de décimales sont acceptables comme prix normalisés sur le serveur. ...C'est en quelque sorte ma conclusion, mais je ne trouve aucun contre-argument.

 
wtvirtual:

Bonjour.

J'ai rencontré ce problème, que je ne comprends pas du tout. Pouvez-vous expliquer pourquoi, dans ce cas, NormalizeDouble() ne fonctionne pas toujours ?

J'ajoute le prix et d'autres donnéesau fichier pour la période actuelle. Environ 10% de toutes les entrées sont des chaînes de caractères comme :

1971.01.07,00:00,0.5368000000000001,0.5368000000000001,0.5368000000000001,0.5368000000000001,1

Le résultat est indépendant de l'ordre de normalisation, je remplace 1, 2, 3, 4, 5, Chiffres - tous les mêmes. Où est le problème ?

Vous pouvez l'expliquer de la façon suivante : essayez d'écrire le nombre 1/3 sous forme décimale - cela ne marchera pas (pas assez de papier, de colle et de vie).
Tôt ou tard, vous accepterez une petite imprécision et arrondirez la valeur.
La même chose se produit avec les nombres réels écrits sous forme binaire (tels que présentés par l'ordinateur).
S'il n'est pas possible de représenter le nombre avec une mantisse de 52 bits (par exemple 0,53680), il y a une "légère" imprécision...
 

Bonjour, pourriez-vous me dire comment déclarer correctement une variable en tant que type ? Voici un exemple de convention de dénomination de fonction.

string OrderType() {
chaîne de caractères Si=" ;
POSITION_TYPE Type ; bool Bull=false ;
Bull =PositionGetInteger(POSITION_TYPE,Type) ;
if ( Bull ) {
if ( Type==POSITION_TYPE_BUY) Si="OP_BUY" ;
if ( Type==POSITION_TYPE_SELL) Si="OP_SELL" ;
retourner (Si) ; }

ORDER_TYPE ORType ;
Bull =OrderGetInteger(ORDER_TYPE,ORType) ;
if ( Bull ) {
if ( Type==ORDER_TYPE_BUY_LIMIT ) Si = OP_BUY_LIMIT ;
if ( Type==ORDER_TYPE_SELL_LIMIT) Si="OP_SELL_LIMIT" ;
if ( Type==ORDER_TYPE_BUY_STOP) Si="OP_BUY_STOP" ;
if ( Type==ORDER_TYPE_SELL_STOP) Si="OP_SELL_STOP" ;
retourner (Si) ; }

}

Il y a peut-être quelque chose qui ne va pas, par exemple, je n'ai pas essayé d'obtenir les valeurs des fonctions PositionGetInteger et OrderGetInteger de cette façon.

 
Dimka-novitsek:

Bonjour, pourriez-vous me dire comment déclarer correctement une variable comme type ? Voici un exemple de superposition de fonctions.

Il y a peut-être quelque chose qui ne va pas du tout, par exemple, je n'ai pas essayé d'obtenir les valeurs des fonctions PositionGetInteger et OrderGetInteger de cette façon.

De quelle variable parle-t-on ?
 
POSITION_TYPE Type Oh mon ordinateur ralentit, il m'a fallu presque 40 secondes pour le mettre !
Raison: