[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 613
Comment vérifier l'absence d'un ordre ouvert ou d'un ordre en attente avec un numéro magique donné ? Nous pouvons vérifier la présence d'un ordre sélectionné, mais comment vérifier l'absence d'un ordre ?
sllawa3: Comment puis-je vérifier l'absence d'un ordre ouvert ou d'un ordre en attente avec un numéro magique donné ? Nous pouvons vérifier la sélection d'un ordre, mais comment puis-je vérifier son absence ?
S'il n'y a pas de présence, alors il n'y a pas de présence :)))
sllawa3: Oui... si seulement... le sélecteur conserve la valeur d'avoir la dernière pose...
La fonction de sélection ne sauvegarde rien, elle ne fait que choisir la commande à partir du numéro entrant, et ce numéro est construit dans la boucle.
sllawa3: Comment vérifier l'absence d'un ordre ouvert ou d'un ordre en attente avec un numéro magique donné ? Nous pouvons vérifier la présence d'un ordre sélectionné, mais comment vérifier l'absence d'un ordre ?
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 06.03.2008 |//| Описание : Возвращает флаг существования позиций |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//| ot - время открытия ( 0 - любое время открытия) |//+----------------------------------------------------------------------------+bool ExistPositions(string sy="", int op=-1, int mn=-1, datetime ot=0) {
int i, k=OrdersTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (ot<=OrderOpenTime()) return(True);
}
}
}
}
}
}
return(False);
}
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 12.03.2008 |//| Описание : Возвращает флаг существования ордеров. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любой ордер) |//| mn - MagicNumber (-1 - любой магик) |//| ot - время открытия ( 0 - любое время установки) |//+----------------------------------------------------------------------------+bool ExistOrders(string sy="", int op=-1, int mn=-1, datetime ot=0) {
int i, k=OrdersTotal(), ty;
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
ty=OrderType();
if (ty>1 && ty<6) {
if ((OrderSymbol()==sy || sy=="") && (op<0 || ty==op)) {
if (mn<0 || OrderMagicNumber()==mn) {
if (ot<=OrderOpenTime()) return(True);
}
}
}
}
}
return(False);
}
if (ExistPositions(СИМВОЛ, ОПЕРАЦИЯ, МАГИК, ВРЕМЯ ОТКРЫТИЯ)==false) {код, если нету позиции}
int ticket;
int start()
{
int prim=8;
while(ticket<prim)
{
ticket++;
}
Print(ticket);
return;
}
En testant ce code, le journal donne un résultat de "8" un nombre infini de fois. Pouvez-vous me dire comment faire pour que le résultat soit donné une seule fois. Merci.
En testant ce code, le journal donne un résultat de "8" un nombre infini de fois. Pouvez-vous me dire comment faire pour que le résultat soit donné une seule fois. Merci.
vous pouvez déplacer cela vers la fonction init().
Le sélecteur trouve un ordre s'il y a une ouverture mais s'il n'y a pas d'ouverture comment puis-je le trouver ? le sélecteur montrera toujours la dernière position fermée existante ...
int DS=0;
for(int i = 0; i < OrdersTotal(); i++)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) // если под такой позицией ордер не выбран идём на следующий круг
{ if(OrderSymbol() == Symbol())// если символ ордера не совпадает с символом инструмента идём на следующий круг
{ if(OrderMagicNumber() == MAGA) // если Magic ордера не совпадает с MAGA идём на следующий круг
{if(OrderType() == OP_BUY)DS++; // если дошли аж суда и тип бай то увеличиваем счётчик на 1
}
}
}
}
// если тут DS=0 значит открытых ордеров по текущему символу с заданным магиком типа бай нету
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
Comment puis-je vérifier l'absence d'un ordre ouvert ou d'un ordre en attente avec un numéro magique donné ? Nous pouvons vérifier la sélection d'un ordre, mais comment puis-je vérifier son absence ?
S'il n'y a pas de disponibilité, alors il n'y a pas de disponibilité :)))
Oui... si seulement... le sélecteur conserve la valeur d'avoir la dernière pose...
- obtenir les numéros des barres les plus extérieures pour la période en question.
- nous utilisons les fonctions de recherche maxima et minima.
https://docs.mql4.com/ru/series/iLowest
https://docs.mql4.com/ru/series/iHighest
N'est-ce pas ?
Comment vérifier l'absence d'un ordre ouvert ou d'un ordre en attente avec un numéro magique donné ? Nous pouvons vérifier la présence d'un ordre sélectionné, mais comment vérifier l'absence d'un ordre ?
Il en va de même pour les commandes ...
Pouvez-vous me dire comment faire pour que le résultat soit donné une seule fois.
Merci.
Pouvez-vous me dire comment faire pour que le résultat soit donné une seule fois.
Merci.
J'ai un problème... aidez-moi...
Le sélecteur trouve un ordre s'il y a une ouverture mais s'il n'y a pas d'ouverture comment puis-je le trouver ? le sélecteur montrera toujours la dernière position fermée existante ...
Quel est le problème ?