Salut RickD, Pouvez-vous s'il vous plaît écrire un code pour fermer tous les achats uniquement ou fermer toutes les ventes à un montant en dollars de profit dans un commerce de panier. Merci pour ton aide. .
Salut RickD, Pouvez-vous s'il vous plaît écrire un code pour fermer tous les achats uniquement ou fermer toutes les ventes à un montant en dollars de profit dans un commerce de panier. Merci pour ton aide. .
Le code suivant permet de récupérer le ticket de la dernière commande clôturée dans l'historique du compte Inserted Code int GetLastOrderHist(int type = -1) { int ticket = -1; dateheure dt = 0 ; int cnt = OrdersHistoryTotal(); for (int i=0; i lt; cnt; i ) { if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue ;/if (OrderSymbol() != Symbol()) continue ;/if (OrderMagicNumber() != Magic) continue ; if (type != -1 OrderType() != type) continue ; if (OrderCloseTime() gt; dt) { dt = OrderCloseTime(); ticket = OrderTicket(); } } billet de retour); }
La fonction permet d'obtenir la date du lendemain. Code inséré void NextDay(int jour, int mois, int année) { datetime Time0 = CurTime(); datetime Demain = Heure0 24*60*60 ; jour = HeureJourDeAnnée(Demain); mois = HeureMois(Demain); année = HeureAnnée(Demain); }
d'accord. 1. Je veux ouvrir 3 trades dans 3 graphiques différents seulement après avoir vérifié qu'il n'y a pas de trade ouvert pour le moment alors ... 3. Ensuite, je veux ouvrir les 3 mêmes trades dans les directions opposées. Code inséré int Magic = ... int BuyCnt = 0 ; int SellCnt = 0 ; int cnt = TotalCommandes(); for (int i=0; i lt; cnt; i ) { if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue ; if (OrderSymbol() != Symbol()) continue ; if (OrderMagicNumber() != Magic) continue ; type entier = OrderType(); si (type == OP_BUY) BuyCnt ; si (type == OP_SELL) SellCnt ; } si (BuyCnt gt; 0 || SellCnt gt; 0) retour ;/OrderSend(OP_BUY, .../OrderSend(OP_SELL, ... Exécutez ce code sur 3 graphiques différents dont vous avez besoin. 2. Je veux vérifier le PL et s'il est supérieur à 0, il fermera tout ouvert et commandes en attente. Code inséré if (AccountProfit() gt; 0) { DeleteOrders(); CloseOrders(); } void CloseOrders() { int cnt = OrdersTotal(); for (int i=cnt-1; i gt;= 0 ; je--) { if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue ; int type = OrderType(); if (type == OP_BUY) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), MarketInfo (OrderSymbol(), MODE_BID), 3); } if (type == OP_SELL) { RefreshRates(); OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 3); } } } void DeleteOrders() { int cnt = OrdersTotal(); for (int i=cnt-1; i gt;= 0; i--) { if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue; int type = OrderType( ); if (type == OP_BUYSTOP || type == OP_SELLSTOP || type == OP_BUYLIMIT || type == OP_SELLLIMIT) { OrderDelete(OrderTicket()); } } }Envoy? par ;
Ceci est un fil très informatif..S'il vous plaît, ne vous arrêtez pas..Continuez à nous enseigner qui sont nouveaux dans cette programmation... Comment coder cette procédure ??? 1. Je veux ouvrir 3 trades dans 3 graphiques différents seulement après avoir vérifié qu'il n'y a pas de trade ouvert pour le moment alors ... 2. Je veux vérifier le PL et s'il est supérieur à 0, il fermera tout ouvert et les ordres en attente. 3. Ensuite, je veux ouvrir les mêmes 3 métiers dans les directions opposées. Merci
Comment clôturer tous les ordres au marché : Code inséré int Slippage = 3 ; void CloseOrders() { int cnt = OrdersTotal(); for (int i=cnt-1 ; igt ;=0 ; i--) { if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue ;/if (OrderSymbol() != Symbol()) continue ;/if (OrderMagicNumber() != Magic) continue ; if (OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), Slippage); if (OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), Slippage); } } Comment clôturer toutes les commandes de type prédéfini : Code inséré void CloseOrders(int type) { int cnt = OrdersTotal(); for (int i=cnt-1 ; igt ;=0 ; i--) { if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue ;/if (OrderSymbol() != Symbol()) continue ;/if (OrderMagicNumber() != Magic) continue ; si (TypeCommande() != type) continuer ; if (OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), Slippage); if (OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), Slippage); } }
Obtenez l'OpenTime de la dernière commande avec un type prédéfini. La fonction effectue une recherche des métiers ouverts et l'historique. -1 signifie qu'aucune commande n'a été trouvée. Code inséré datetime GetLastOpenTime(int type) { datetime tm = -1; int cnt = TotalCommandes(); for (int i=0; ilt;cnt; i ) { if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue ;/Facultatif/if (OrderSymbol() != Symbol()) continue ;/if (OrderMagicNumber() != Magic) continue ; si (TypeCommande() != type) continuer ; tm = MathMax(tm, OrderOpenTime()); } cnt = OrdersHistoryTotal(); for (i=0; ilt;cnt; i ) { if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue ;/Facultatif/if (OrderSymbol() != Symbol()) continue ;/if (OrderMagicNumber() != Magic) continue ; si (TypeCommande() != type) continuer ; tm = MathMax(tm, OrderOpenTime()); } retour (tm); }
Merci RickD pour ce que vous donnez ici. Tout comme les membres de FF viennent de frapper le premier prix de loterie. Vous êtes un vrai trésor ici S'il vous plaît continuez ce fil Soyez bénis