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

 
rigonich:

Je ne sais pas. J'ai cessé d'obtenir l'erreur 1 après que OrderModify() ait été vérifié immédiatement avant OrderSelect(), mais avant, elle apparaissait tout le temps aussi.

Et quel genre de chèque avez-vous mis ? !
 
Ekburg:

Justement, tout y est normal ! j'ai paramétré les imprimantes pour suivre pendant le test quelles valeurs sont passées à la fonction de modification, tout y est normal, l'arrêt est différent, rien d'inutile n'est lancé, tout est dans les limites autorisées par le serveur, et les opposants dans le code ci-dessus ne permettent pas de passer les mêmes valeurs...

Essayez de vérifier avant de modifier de cette manière :

      double Erunda=16.0*Point;// от 12 для пятизнаков, от 2 для четырех
//
      if(MathAbs(OrderStopLoss()-sl)<Erunda && MathAbs(OrderTakeProfit()-tp)<Erunda){нет_необходимости_модифицировать;}
      else { модифицировать;}

 
Sepulca:

Essayez de faire le contrôle avant de modifier de cette manière :


Quelles sont ces fonctions, quel est leur intérêt ? Je n'en ai jamais vu ou utilisé auparavant.
 
Desead:

Je suis fatigué de me battre avec ce problème, tous les ordres en attente ne sont pas supprimés normalement, donc j'utilise cette boucle pour les supprimer :

J'ai même ajouté à la boucle FOR FOR et WHILE tous les ordres en attente ne sont toujours pas supprimés. Il y a beaucoup de commandes en attente à supprimer, environ 20, peut-être est-ce une sorte de difficulté ?

Voici un exemple de suppression d'ordres, y compris ceux en attente (je les ai supprimés avec celui-ci) :

Tous les ordres en attente ne sont pas présents dans ce code (dans le filtre de sélection). Autre variante d'erreur : vérifiez le Magick reçu par les ordres en attente lors de leur ouverture (dans votre propre code).

 
Ekburg:

Merci. J'ai cherché dans la base de code, trouvé quelque chose, essayé de le remplacer, modifié de telle ou telle façon, lu des milliers de lignes de code pro et non seulement, il donne l'erreur 1 lors de la modification et c'est tout, l'enfer sait quoi faire. J'ai été confronté à diverses difficultés dans l'écriture et le travail ultérieur de l'EA, mais pour les résoudre moi-même, sinon je n'ai pas une bonne expérience, j'ai lu l'aide, relu le tutoriel, et résolu les problèmes, j'ai commencé à penser un peu différemment que lorsque j'ai commencé, mais ce problème seul ne fonctionne pas, alors je me suis tourné vers vous, professionnels ! Je n'écrirais pas Trailyn si ce n'est pas nécessaire pour le travail de l'EA :)
Je ne vous crois pas (que vous avez tout relu ou "ainsi lu") - la question de l'erreur n°1 est couverte dans le tutoriel et a VRAIMENT été discutée sur le forum. La réponse se trouve ici.
 
Ekburg:

le résultat est le même... quelles sont ces fonctions, à quoi servent-elles ? je ne les ai jamais vues ou utilisées auparavant


Ce n'est pas une fonction, c'est juste une vérification avant modification, si les valeurs SL ou TP sont très différentes des précédentes, nous modifions. Il ne sert à rien de modifier le TP ou le SL d'un pip, du moins pas pour irriter les sociétés de courtage.
 
Sepulca:


Ce n'est pas une fonction, c'est juste une vérification avant modification, si les valeurs SL ou TP sont suffisamment différentes des valeurs précédentes, alors modifiez. Cela n'a aucun sens de modifier le TP ou le SL d'un pip, ne serait-ce que pour éviter un DT gênant.

Merci, c'est une bonne idée, je vais l'utiliser à partir de maintenant.
 
TarasBY:
Permettez-moi de ne pas vous croire (que vous avez tout relu ou "ainsi lu") - la question de l'erreur n° 1 est traitée dans le manuel et a été discutée VRAIMENT sur le forum. La réponse se trouve ici.


bien sûr je n'ai pas tout lu, mais j'ai relu plusieurs fois le manuel pour trouver les causes de l'erreur, mais il semble qu'elles ne soient pas dans le code... Je vais regarder votre lien et encore une fois lire l'article entier sur le sujet, merci pour l'aide, que vous n'avez pas marqué :)
 

Bonjour aux membres du forum,

J'ai décidé d'écrire un EA pour moi-même. Je suis en train de lire un tutoriel sur mql4 car je trade MT4. Et voici la chose intéressante. Les fichiers mqh téléchargés à partir de ce tutoriel s'ouvrent (automatiquement) dans MetaEditor 5 (j'ai également installé Mt5) ! Cela signifie-t-il qu'ils ne fonctionneront pas avec Mt4 ?

 
Ekburg:

Quelles sont ces fonctions, quel est leur intérêt ? Je n'en ai jamais vu ou utilisé auparavant.


Ce n'est pas une fonction, c'est un moyen de comparer des nombres non normalisés. Ils ne peuvent pas être comparés entre eux, mais le résultat de la soustraction de l'un à l'autre peut être comparé à zéro.

Et le chèque que j'ai est comme ça :

//+------------------------------------------------------------------+ 
 double ND(double nd){return(NormalizeDouble(nd,Digits));}
//+------------------------------------------------------------------+ 
if(ND(price)!=OrderOpenPrice()||ND(SL)!=OrderStopLoss()||ND(TP)!=OrderTakeProfit()||Expiration!=OrderExpiration())
   {
   OrderModify( int ticket, double price, double stoploss, double takeprofit, datetime expiration, color arrow_color=CLR_NONE);
}
else return;