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

 

Professionnels, à l'aide. J'ai inséré une fonction dans l'indicateur pour envoyer des messages à l'email.

Je ne peux pas le compiler. S'il vous plaît, dites-moi ce que j'ai fait de mal. Je commence tout juste à comprendre le code.

Dossiers :
vininmail.mq4  5 kb
 

Pouvez-vous me dire pourquoi le script ne supprime pas tous les ordres, 3 ordres de limite d'achat sont ouverts et un ordre d'achat au marché.

for(i = 0; i < OrdersTotal(); i++)
                {
                if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == FALSE) break;
                if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
                        {
                        Print(i);
                        if(OrderType() == OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,Slippage);
                        if(OrderType() == OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,Slippage);
                        if(OrderType() == OP_BUYSTOP) OrderDelete(OrderTicket());
                        if(OrderType() == OP_SELLSTOP) OrderDelete(OrderTicket());
                        }
                }
 
sss2019:

Pouvez-vous me dire pourquoi le script ne supprime pas tous les ordres, 3 ordres de limite d'achat sont ouverts et un ordre d'achat au marché.

En effet, dans MT4, il n'y a qu'un seul flux commercial et un seul ordre commercial peut être donné à la fois. Après chaque ordre, vous devez vous assurer que le flux de transactions n'est pas occupé.
 
sss2019:

Pouvez-vous me dire pourquoi le script ne supprime pas tous les ordres, 3 ordres de limite d'achat sont ouverts et un ordre d'achat au marché.


Reshetov:
En effet, dans MT4, le flux commercial est unique et un seul ordre commercial peut être donné à la fois. Après chaque ordre, vous devez vous assurer que le flux de transactions n'est pas occupé.

pas de


Le problème ici est simplement dans la boucle. i passe par i de 0 à 2. Vous avez besoin de 2 à 0.

 
Bonjour, veuillez m'indiquer comment faire pour que les ordres s'ouvrent à tour de rôle, par exemple au début OP_BUY quand il sera fermé et qu'il y aura un signal pour ouvrir OP_SELL et qu'il se ferme avec un signal d'achat OP_BUY s'ouvre, etc... !
 
lowech:
Bonjour, dites-moi comment faire pour que les ordres s'ouvrent un par un, par exemple, au début de OP_BUY, quand il est fermé et qu'il y a un signal pour ouvrir OP_SELL, et qu'il est fermé avec un signal d'achat ouvre OP_BUY, etc... !

C'est très facile à résoudre avec les sémaphores (bool).

Vous pouvez y penser et cela fonctionnera.

 
sss2019:

Pouvez-vous me dire pourquoi le script ne supprime pas tous les ordres, 3 ordres de limite d'achat sont ouverts et un ordre d'achat au marché.

buylimit que vous voulez supprimer mais pas sélectionner (ce type)
 
DhP:

C'est très facile à résoudre avec les sémaphores (bool).

Pensez-y et vous comprendrez.

Merci de m'avoir orienté dans cette direction !
 
Skydiver:
Veuillez expliquer avec un exemple.
Il n'existe pas de système permettant de réaliser des transactions 100 % rentables. Les systèmes dont la longueur maximale des séries de transactions perdantes serait égale à 1, ne peuvent pas non plus l'être. Dans une hirondelle pure les lots sont variés par le principe : 1-2-4-8-16-, etc. La perte, dans ce cas, augmente selon le principe : 1-3-7-15- etc.

Prenons un système quelconque, supposons que le système avec des lots fixes = 1, donne une série de PPUUUUPU. Où, P est le bénéfice et U la perte. En conséquence, vous obtenez une augmentation de la perte selon le principe : 1-2-3-4-5-. En quoi est-ce mieux que la martingale ? Seulement que la perte n'augmente pas autant que dans le cas de la martingale. Sinon, c'est la même chose que pour Natasha, mais avec des shorts différents.
 
Quelle est la précision des tests effectués par le testeur de stratégie intégré à MT4 ? Comment l'augmenter ?