[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 885
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Personne n'a été capable de me donner une réponse... Quelqu'un a-t-il une idée ?
Vous devez peut-être vérifier les types PARASTEP et PARAMAX et leurs valeurs.
Est-ce la seule option ?
1) écrire dans un fichier
2) rechercher la commande requise et lire le ticket
Le problème suivant a été rencontré de manière inattendue :
J'ai écrit un EA dont l'une des fonctions est d'ouvrir des ordres en attente. Mais avant d'ouvrir un autre ordre en attente, le programme interroge les ordres déjà placés (prix) et n'en ouvre un nouveau que s'il n'y a pas d'ordre déjà placé avec le même prix. Je travaille sur l'EURUSD.
for (Price=Max_Price-Step*Point ; Price>Ask+10*Point ; Price=Price-Step*Point) // passer du prix maximum au prix actuel
{
int N=0 ; //compteur de commandes
for (int i=1 ; i<=OrdersTotal() ; i++) // boucle à travers les ordres
{
if(OrderSelect(i-1,SELECT_BY_POS)==true) //sélectionne l'ordre
{ //analyse l'ordre ouvert
if (Price==OrderOpenPrice()) //si le prix est le même
{
N=N+1 ;
}
} //sélectionner le prochain ordre ouvert
}
if(N==0) //si aucun ordre avec le même prix n'est trouvé
{ //ouvrir l'ordre
Alert("New BUYSTOP ", Price) ;
int Ticket=OrderSend(Symb, OP_BUYSTOP, Lot, Price, 0, 0, Price+TP*Point) ;
if (GetLastError()>0)
Alert("Error ", GetLastError()) ;
}
} //Come to market
Tout va bien jusqu'à ce que le maximum soit de 1.3980, mais dès que je fixe 1.4000 le programme ne voit plus les ordres avec le même prix (le compteur N reste nul) et génère les mêmes ordres.
Il est intéressant de noter que si nous fixons le prix maximum à 1,5000, alors jusqu'à 1,4000 tout est normal et à partir de 1,3980 commence la duplication des ordres avec le même prix.
QU'EST-CE QUE ÇA PEUT ÊTRE ????????
Et la situation se répète sur la plateforme d'un autre centre de négociation
Je fonctionne dans le testeur, je ne comprends pas pourquoi cette erreur peut apparaître : OrderModify error 1 (Pas d'erreur, mais le résultat est inconnu).
J'utilise la fonction chalut, il n'y a rien d'autre, je vérifie à la fois le niveau du stop min et la taille du point et tout ce qui est nécessaire, l'erreur n'apparaît pas toujours.
S'agit-il d'une erreur grossière ou est-il tolérable de l'exécuter sur un compte réel ?
Je l'ai essayé dans le testeur, je ne sais pas où cela peut causer l'erreur OrderModify error 1 (Pas d'erreur, mais le résultat est inconnu).
J'utilise la fonction chalut, il n'y a rien d'autre, je vérifie le niveau du stop min et la taille du point et tout ce qui est nécessaire, l'erreur n'apparaît pas toujours.
J'ai testé dans le testeur, je n'arrive pas à comprendre de quel type d'erreur il s'agit.
https://docs.mql4.com/ru/trading/OrderModify il est dit ici au sujet de cette erreur
Voici la fonction :
double ObFindObjectsByPrefix(string Prefix)
{
string OBJECT_PREFIX="LEVELS" ;
double price_max ;
int L = StringLen(Prefix) ;
int i = 0 ;
int time_min=TimeCurrent() ;
while(i < ObjectsTotal()-1)
{
string ObjName = ObjectName(i) ;
if(StringSubstr(ObjName, 0, L) != Prefix)
{
i++ ;
continue ;
}
double price=ObjectGet(ObjName,OBJPROP_PRICE1) ;
if (MathAbs(price-Bid)/Point<m)
{
int time1=ObjectGet(ObjName,OBJPROP_TIME1) ;
if (time1<time_min)
{
time_min=time1 ; price_max=price ;
}
}
}
return(price) ;
}
qu'est-ce qui ne va pas, pourquoi ça ne marche pas ?
recherche le segment le plus long avec un préfixe et renvoie la valeur du prix.
Les gens, où dois-je écrire pour que MT5 fasse une traduction décente en allemand ? C'est une honte... Il permet de "sauvegarder" (enregistrer) des fichiers au format CSV, de sélectionner des sons pour différents "événements" (events) et de terminer les programmes en cliquant sur "Exit" (depuis le bâtiment, pas depuis le programme)
Vous devrez peut-être vérifier les types PARASTEP et PARAMAX et leurs valeurs.
Les gens, où dois-je écrire pour que MT5 fasse une traduction décente en allemand ? C'est une honte... Il est possible de "sauvegarder" (enregistrer) des fichiers au format CSV, de choisir des sons pour différents "événements" (events) et de terminer les programmes en appuyant sur "Exit" (depuis le bâtiment, pas depuis le programme)
Si vous ne pouvez pas écrire dans le forum de mql5.com, il n'y a qu'une seule solution : écrire à l'ONU.
PS. Nous sommes déjà en train de corriger l'interface allemande en postant sur le forum mql5.com. Merci pour le message.