Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 718

 
Artyom Trishkin:

L'erreur 1 n'est pas une erreur, mais le résultat est inconnu. Le fait est que vous essayez de modifier le stop au même prix que celui auquel il est déjà fixé. Avant de le modifier, comparez le prix du stop avec le prix auquel vous voulez le fixer. S'il est déjà à ce prix, il n'y a rien à modifier.

Est-ce que ça existe, ou est-ce que quelque chose ne va pas ?

 
Andrey Sokolov:

Est-ce que ça existe, ou est-ce que quelque chose ne va pas ?

Il n'y a rien de tel. Alors question : avez-vous écrit ...

J'ai créé une fonction qui fait que lorsqu'une commande atteint ... ... ...

... pourquoi demandez-vous s'il est là ou pas ? Si vous l'avez fait vous-même, vous devez savoir exactement ce que vous avez fait. Ou quoi ? Je peux difficilement imaginer faire quelque chose sans savoir ce que je fais...

 
Artyom Trishkin:

Il n'est pas là. Alors la question est : avez-vous écrit...

... alors pourquoi demandez-vous si c'est là ou pas ? Si vous l'avez fait vous-même, vous devez savoir exactement ce que vous avez fait. Ou quoi ? Je peux difficilement imaginer faire quelque chose sans savoir ce que je fais...

 if (OrderStopLoss()!=OrderOpenPrice()

Il faut déplacer le sl au prix d'ouverture, ici, en vérifiant qu'il n'est pas là. Qu'est-ce qu'il y a ?

 
Andrey Sokolov:

Il faut déplacer le sl vers le prix d'ouverture, ici, en vérifiant qu'il n'est pas là. Qu'est-ce qu'il y a ?

Le prix d'ouverture de l'ordre est-il le prix d'arrêt ?

 
Artyom Trishkin:

Le prix d'ouverture de l'ordre est-il le prix d'arrêt ?

Donc si on modifie le sl au prix d'ouverture, n'est-ce pas ?

 
Andrey Sokolov:

Alors si la modification transfère le sl au prix d'ouverture, n'est-ce pas ?

Que se passera-t-il la prochaine fois ?

 
Artyom Trishkin:

Que se passera-t-il la prochaine fois ?

Et la prochaine fois, ce ne sera pasOrderStopLoss()!=OrderOpenPrice()

Non ?

 
coldunprofi:

Bonjour, comment faire pour que l'EA ouvre une position avec un volume spécifié d'ordres simples des deux positions, par ex.

Le volume d'un seul ordre est de 1,35 lot, le volume total des positions ouvertes est de 500 lots. L'EA ouvre un ordre d'achat de 1,35 lot, puis ouvre un ordre de vente de 1,35 lot,

puis répète jusqu'à ce que 500 lots d'achat et 500 lots de vente soient ouverts, et puisque le nombre de lots n'est pas un multiple de 1,35, le dernier ordre doit être inférieur à 1,35

Prenez n'importe quel panneau dans CodeBase, traitez la source et maintenant quand il apparaît/les variables externes, laissez-le faire les mêmes actions que pour les boutons. Il va juste interroger périodiquement les variables (par exemple dans le timer) et émuler les pressions sur les boutons.
 
coldunprofi:

Bonjour, comment faire pour qu'un EA ouvre une position avec un volume spécifié d'un seul ordre des deux positions en fonction de variables externes, par ex.

Nous fixons le volume d'un ordre unique = 1.35 lot, le volume total des positions ouvertes est de 500 lots, le Conseiller Expert ouvre un ordre d'achat de 1.35 lot, puis il ouvre un ordre de vente de 1.35 lot,

et ensuite répéter jusqu'à ce que 500 lots d'achat et 500 lots de vente soient ouverts, et puisque le nombre de lots n'est pas un multiple de 1,35, le dernier ordre doit être inférieur à 1,35

Bonjour. Ne serait-il pas plus simple de faire comme ça ?

MathMin(Lot,500-(общий лот уже открытых ордеров))
où Lot par exemple sera de 1,35
 
Andrey Sokolov:

Et la prochaine fois, ce ne sera pasOrderStopLoss()!=OrderOpenPrice()

n'est-ce pas ?

Avant OrderModify(), imprimez les valeurs du prix d'ouverture et du nouveau prix stop.

Et gardez votre "non ?" irrespectueux pour vous si vous voulez de l'aide. Cependant, j'ai posté un modèle entièrement fonctionnel pour tout chalut dans ce fil de discussion - vous pouvez le consulter.

Raison: