[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 148

 
Roger:
Ne vous inquiétez pas, il en renvoie autant que nécessaire, il faut juste que vous vouliez le voir.

en effet)))

Print("ma red = ",MA_M_0) ; // 4 signes (1.4533)

Print("ma red = ",DoubleToStr(MA_M_0,5)) ; // 5 chiffres (1.45332)

Je m'excuse, c'était peut-être une question idiote).

Mais pourquoi ?

 
Il y a longtemps, lorsque MT4 n'existait pas encore et que le trading automatisé en était à ses débuts, la norme pour les prix était de 4 décimales. C'est pourquoi ils n'ont pas pris la peine de le faire.
 
J'ai compris... C'est donc le problème avec "Print", je pensais que c'était une variable)))
 
DhP:
Un autre moyen facile d'éviter ces problèmes :
Qu'est-ce qui se trouve à l'origine dans le prevtime ?
 

Supposons qu'il existeun ordre d' achat stop ouvert qui est assez éloigné du prix actuel. Nous devons modifier légèrement son prix d'ouverture.

- Existe-t-il une distance minimale pour un nouveau point d'ouverture du même ordre, par rapport à la valeur actuelle de OrderOpenPrice(), en dessous de laquelle un nouveau prix d'ouverture ne peut être fixé ?

Merci !

 
chief2000:

Supposons qu'il existe un ordre d'achat stop ouvert qui est assez éloigné du prix actuel. Nous devons modifier légèrement son prix d'ouverture.

- Existe-t-il une distance minimale pour un nouveau point d'ouverture du même ordre, par rapport à la valeur actuelle de OrderOpenPrice(), en dessous de laquelle un nouveau prix d'ouverture ne peut être fixé ?

Merci !

StopLevel - à cette distance et plus près du prix, l'ordre ne peut être fixé.

FreezeLevel - si un ordre est déjà en place et que le prix est à cette distance ou plus proche, vous ne pouvez pas supprimer ou modifier l'ordre (si votre société de courtage l'utilise).

 
artmedia70:

StopLevel - à cette distance et plus près du prix, vous ne pouvez pas passer d'ordre.

FreezeLevel - si un ordre a déjà été passé et que le prix a évolué à cette distance ou plus près, nous ne pouvons pas le supprimer ou le modifier (si votre société de courtage l'utilise).

Ce n'est pas exactement ce que je demandais. Ce que je voulais dire, c'est que j'ai un ordre d'achat-STOP et que je veux décaler son OrderOpenPrice() de la distance minimale possible (et ce prix est assez éloigné du Ask).

- Par exemple, puis-je déplacer OrderOpenPrice() de 1 pip ? I.e.

Новый_OrderOpenPrice = OrderOpenPrice() + Point

Je pose la question, car j'ai vu des erreurs étranges, mais j'ai augmenté la distance et les erreurs ont disparu.

(Je pourrais écrire un code séparé et le vérifier, mais je ne m'y suis pas encore intéressé).

 

Lors de la comparaison de deux variables de type double, on obtient parfois un résultat incorrect. Cela est probablement dû au fait que l'une des variables peut être légèrement plus grande ou plus petite que l'autre (par exemple, de 10 chiffres). L'utilisation de la fonction NormalizeDouble n'est pas utile dans la plupart des cas. Certaines personnes conseillent de soustraire une variable d'une autre, mais dans ce cas, comment construire le plus correctement possible une expression if(a>=b), en soustrayant une variable d'une autre ? Ou peut-être y a-t-il un autre moyen ?

 
Elenn:

Lors de la comparaison de deux variables de type double, on obtient parfois un résultat incorrect. Cela est probablement dû au fait que l'une des variables peut être légèrement plus grande ou plus petite que l'autre (par exemple, de 10 chiffres). L'utilisation de la fonction NormalizeDouble n'est pas utile dans la plupart des cas. Certaines personnes conseillent de soustraire une variable d'une autre, mais dans ce cas, comment construire le plus correctement possible une expression if(a>=b), en soustrayant une variable d'une autre ? Ou peut-être y a-t-il un autre moyen ?

Avez-vous vraiment besoin d'une telle précision ? - Au dixième d'un chiffre.

Si vous voulez comparer en utilisant la soustraction, vous pouvez comparer avec 0 :

if((a-b)>0) { // ===>>> a>b

Ou vous pouvez multiplier par 1 000 000 et ensuite comparer :)

 
chief2000:

Avez-vous vraiment besoin d'une telle précision ? - Jusqu'au dixième chiffre.

Si vous voulez comparer en utilisant la soustraction, vous pouvez comparer avec 0 :

if((a-b)>0) { // ===>>> a>b

Ou vous pouvez multiplier par 1.000.000 et ensuite comparer :)

J'utilise toujours un certain +/-epsilon=Point*0,01 lorsque je compare les prix.

Multiplier par 1.000.000 ne fera rien. Croyez-moi.