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

 
VIX XIV:
Bonsoir. A quoi devrait ressembler le code qui trouvera le dernier ordre clôturé ? Cela ressemble-t-il à ceci : "OrderSelect(OrdersHistoryTotal, SELECT_BY_POS, MODE_HISTORY" ?

Voici à quoi votre bloc devrait ressembler en gros :

int a=-1 ;

for(int is=OrdersHistoryTotal() ; is>=0 ; is--)

{

if(OrderSelect(is, SELECT_BY_POS, MODE_HISTORY))

{

si(OrderType()==OP_BUY) {a=OrderType() ; break;}

si(OrderType()==OP_SELL){a=OrderType() ; break;}

}

}

if(a==OP_BUY) Comment("Le dernier ordre d'achat clôturé dans la liste a été trouvé ;)

if(a==OP_SELL) Comment("Le dernier ordre de vente fermé de la liste a été trouvé ;)


 

J'ai lu il y a longtemps qu'il n'y a aucune garantie dans le classement chronologique des commandes dans OrdersHistoryTotal, et que vous devez vérifier par la date de clôture.

 

@Valerius, ne pouvez-vous pas l'insérer comme code ? Ou qu'est-ce qui manque ?

 
Сергей Таболин:

@Valerius, ne pouvez-vous pas l'insérer comme code ? Ou qu'est-ce qui manque ?

Pourriez-vous faire en sorte qu'il soit humainement possible d'insérer du code en tant que code dans l'éditeur MT ?

Aucun de vos boutons ne fonctionne comme je le veux.

 
Valerius:

Pourriez-vous faire en sorte qu'il soit humainement possible d'insérer le code en tant que code dans l'éditeur MT ?

Aucun de tes boutons ne fonctionne comme je le veux.

Il y a un moyen délicat. Copiez et collez ce que vous voulez à partir de n'importe quel code. Et collez votre code là-dedans. Moins le surlignage ne fonctionne pas de cette façon))))


if(OrderSelect(is,SELECT_BY_POS,MODE_TRADES))  Это чужой код и его можно править))))
 
Valerius:

Pour la première question, vous devez créer une fonction comme celle-ci :


for(int is=OrdersTotal()-1 ; is>=0 ; is--)
{
if(OrderSelect(is,SELECT_BY_POS,MODE_TRADES))
{//Fermeture des ordres qui ont été ouverts le vendredi de la semaine qui n'est pas la semaine en cours. Dans ce cas, nous ne clôturons pas les ordres le vendredi de la semaine en cours.
if(OrderMagicNumber()==Magic && TimeDayOfWeek(TimeCurrent())==5 && TimeDayOfWeek(OrderOpenTime())==5 && TimeDayOfYear(OrderOpenTime())<TimeDayOfYear(TimeCurrent())
{
if (OrderType()==OP_BUY) result=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(nameSym,MODE_BID),MarketInfo(nameSym,MODE_DIGITS)),3,CLR_NONE) ;
si (OrderType()==OP_SELL) result=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(nameSym,MODE_ASK),MarketInfo(nameSym,MODE_DIGITS)),3,CLR_NONE) ;
if(!result) {error=GetLastError() ; Print("LastError = ",error, ",Symbol()) ; }
else {error=0;}
sinon
{Print("NoMagic ",OrderMagicNumber();} // pour le débogage
sinon

{Print("Erreur lors de la sélection de la commande ", GetLastError();}


Pour la deuxième question, il devrait y avoir l'entrée suivante :

OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(MarketInfo(nameSym,MODE_ASK)), 3, clrNONE) ;

Bonne chance.

Merci, cela a fonctionné comme prévu pour la première question.

Sur le second - un nombre incorrect de paramètres. Fixé - OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE) ;

Seulement maintenant, je n'ai pas bien compris la modification de ma première variante (je l'ai copiée de quelque part) ...

 
Bonjour
Quelqu'un peut-il m'expliquer comment fonctionne le trailing take profi ? Il y a quelques informations sur le Trailing Stop dans l'aide de MT5, mais il n'y a aucune information sur le Trailing Profit. Lorsque je fixe le "niveau de suivi du Stop Loss (en points)" dans mon Expert Advisor, par exemple, à 100, je comprends que le profit de suivi sera activé, lorsque le prix passera 100 points dans la direction requise. Mais que signifie "Niveau de suivi duTake Profit (en points)" = 10 ?
 
altec3:
Bonjour !
Quelqu'un peut-il expliquer le principe du trailing take profi ? Je ne trouve aucune information sur le Trailing Stop dans la référence MT5. Lorsque je fixe le "niveau de suivi du Stop Loss (en points)" dans mon Expert Advisor, par exemple, à 100, je comprends que le profit de suivi sera activé, lorsque le prix passera 100 points dans la direction requise. Mais que signifie "Niveau de suivi duTake Profit (en points)" = 10 ?

Le TakeProfit est calculé en pips et le Trailing TakeProfit est calculé dans la devise du dépôt. Trailing TakeProfit est le profit dans la devise du dépôt d'un ou plusieurs ordres, et met les stops des ordres dans le montant spécifié dans les paramètres, c'est-à-dire à une distance calculée.

Par exemple, un Trailing Take Profit en $100 est spécifié dans les paramètres. Lorsque le prix atteint le profit de 100$ et va plus loin, le programme calcule la distance de 100$ et place tous les stoploss des ordres au point calculé, s'il le permet. Dès que le prix revient sur les stops, tous les ordres seront fermés. En principe, c'est la même chose que le Stop suiveur, sauf qu'il est calculé dans la devise de dépôt et qu'il suit le profit. J'ai peut-être fait une erreur quelque part, mais c'est le principe. J'espère l'avoir expliqué.

 
Comment puis-je utiliser python pour demander toutes les barres du terminal d'un délai spécifié ?
 
Est-ce que je comprends bien que dans mt5, au lieu de l'heure de clôture, il faut regarder POSITION_TIME_UPDATE?