Discussion sur la documentation de MQL4 - page 14

 
Mathemat:
Quoi qu'il en soit, j'espère que le besoin d'un compilateur C a disparu. Fondamentalement, vous pouvez trouver sur le web des distributions DOS très compactes, pesant une douzaine de meg au maximum.

Merci ! Après deux jours de tutoriels en C, j'ai enfin compris quelque chose aux exemples d'Expert Advisors. Je vais essayer d'utiliser MQL4 tout de suite. J'espère recevoir bientôt d'autres articles de Rosha.
 
Dmitrich:
Mathemat:
Eh bien, espérons que le besoin d'un compilateur C a disparu. En principe, vous pouvez trouver sur le web des distributions DOS très compactes, pesant une douzaine de megs au maximum.

Merci ! Après deux jours de tutoriels en C, j'ai enfin compris quelque chose aux exemples d'Expert Advisors. Je vais essayer d'utiliser MQL4 dès maintenant. J'espère que les articles seront également disponibles bientôt.

Ils sont disponibles dès maintenant, mais via un lien temporaire.
 
Rosh:
Dmitrich:
Mathemat:
Eh bien, espérons que le besoin d'un compilateur C a disparu. En fait, vous pouvez trouver sur le web des distributions DOS très compactes, pesant une douzaine de megs au maximum.

Merci ! Après deux jours de tutoriels en C, j'ai commencé à comprendre quelque chose dans les exemples d'Expert Advisors. Je vais essayer d'utiliser MQL4 tout de suite. J'espère que d'autres articles de Rosha seront bientôt disponibles.

Ils sont disponibles dès maintenant, mais via un lien temporaire.

Cher Rosh, merci pour vos articles ! Je me méfie déjà d'écrire quelque chose comme ça sur le forum, pour ne plus offenser personne, mais j'ai lu vos articles si attentivement que j'ai découvert une coquille. Article 3, ligne 2, la phrase "chacun de ces" au lieu de "chacun de ces". Les lettres "x" et "z" se trouvent l'une à côté de l'autre sur le clavier et il m'arrive moi-même de faire des erreurs et de les "rattraper" dans les documents. J'ai relevé votre faute de frappe par habitude.

;)
 
Merci, je vais le corriger si je peux (ça fait un moment :) ).
 
Non, je ne peux pas. Apparemment, l'adresse du système de publication a également changé.
 
Le manuel semble avoir été traité. Mais la documentation ne nous a pas donné de réponse directe.
Et j'ai décidé par hasard de regarder la liste des paramètres de la fonctionOrderSend et je suis immédiatement tombé dessus.

L'explication de la fonction dit : "Vous ne pouvezpas utiliser un prix estimé ou non normalisé."
C'est parfaitement clair et concis.

Quelques lignes plus bas, vous trouverez un exemple avec des prix non normalisés et des prix de règlement :

ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,Bid-25*Point,Ask+25*Point, "Mon ordre #"+counter,16384,0,Green) ;
if(ticket<0)
{
Print("OrderSend failed with error #",GetLastError()) ;
return(0) ;
}
Renat, n'est-ce pas une erreur réelle ?
Et de telles choses sont-elles compatibles avec la notion de "documentation de qualité" ?

C'est pourquoi les utilisateurs intéressés vous demandent d'améliorer la documentation. Ils ne cherchent pas à vous critiquer de manière déraisonnable, ils n'exigent pas l'impossible ou le déraisonnable, et ils ne cherchent certainement pas à offenser qui que ce soit ou l'entreprise dans son ensemble.
 
Cet exemple suppose que les prix Bid et Ask sont reçus du serveur de négociation, ce qui signifie que les prix par défaut sont normalisés aux chiffres après la virgule. En fait, il s'est avéré qu'avant l'apparition de la possibilité de télécharger un historique des minutes profondes à partir du centre d'historique, de nombreux utilisateurs ont préparé eux-mêmes un tel historique à partir de diverses sources et le résultat obtenu lors des tests a donné des erreurs liées à des prix non normalisés (les ordres ne pouvaient tout simplement pas s'ouvrir). C'est pourquoi une telle phrase est apparue :


Si le prix d'ouverture demandé n'était pas dans le flux de prix ou si le prix demandé n'est pas normalisé en fonction du nombre de chiffres après la virgule, l'erreur 129 (ERR_INVALID_PRICE) sera générée.


Vous avez "oublié" de le citer en entier. Et cette phrase restera pertinente, car si vous avez pris un prix calculé (la valeur d'un muving ou d'un autre indicateur), alors le serveur ne prendra pas la peine de montrer son "intelligence" (c'est-à-dire de l'arrondir dans le bon sens), et renverra simplement l'ordre.
 

Je n'ai rien oublié, Rosh. La suggestion que vous avez ajoutée à ma citation ne change rien au fond ni à la forme. J'ai vu plus d'une fois sur le forum MQ (je ne me souviens pas de celui-ci ou d'un forum parallèle) des personnes demandant pourquoi les ordres ne sont pas exécutés, parce que j'utilise le prix Bid ou Ask, donc le prix est pertinent, alors pourquoi le rejet ? La solution à cette question était simple - nous devions normaliser le prix et le faire même pour le Bid et le Ask.

Peut-être que cela a changé dans les dernières versions, mais je ne l'ai vu mentionné nulle part.

De plus, il y a trois prix dans les paramètres de OrderSend(). Dans l'exemple ci-dessus, deux des trois sont calculés. L'expression calculée contient à la fois des opérandes entiers et des opérandes doubles. La normalisation des prix est apparue comme un moyen de résoudre le problème de la représentation lors de la conversion des entiers en doubles. Ainsi, le lecteur de cette documentation qui n'a certainement pas beaucoup d'expérience dans MQL4, ne pourra pas dire avec certitude si le résultat des calculs sera normalisé ou non. Cet exemple suscitera donc plus de questions que de réponses.

Et même si la normalisation est correcte, il y a toujours une expression au niveau du prix.

Je vous pose donc mes questions, Rosh, en tant que personne qui écrit des articles sur MQL4 pour les débutants :
Croyez-vous vraiment que cet exemple est correct et illustre ce qu'il est censé illustrer ?
Pensez-vous vraiment que cet exemple aidera un débutant à comprendre comment utiliser OrderSend() et ne l'embrouillera pas ?

 
Yurixx:

Pensez-vous vraiment que cet exemple aiderait un débutant à comprendre comment utiliser OrderSend() plutôt que de l'embrouiller ?

Personnellement, je crois qu'un débutant n'est pas un idiot. Si vous avez réussi, si c'était facile pour moi, pourquoi personne d'autre ne pourrait le faire ? Pourquoi ce nouveau venu abstrait est-il toujours associé à un abruti ?
 
Jurix, je vois que vous vous engagez uniquement dans la critique.