Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 375
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Bonne journée à tous !
Veuillez me donner une commande pour que le robot n'ouvre pas plus d'un ordre par bougie.
Même s'il a pris sa prise sur cette bougie - pour ne pas ouvrir l'ordre suivant sur la même bougie.
Il en ressort que si les conditions des indicateurs sont remplies - ouvrez une transaction.
Lorsqu'une transaction sur la prise est fermée, elle ouvre immédiatement une nouvelle transaction sur le même chandelier, et ici elle n'est plus nécessaire et me crée des problèmes.
Je pense qu'il est important de donner quelques informations en retour.
Il a besoin d'un accord strict, donc 1 bougie - 1 accord.
Merci d'avance !
Bonne journée à tous !
Veuillez me donner une commande pour que le robot n'ouvre pas plus d'un ordre par bougie.
Même s'il a pris sa prise sur cette bougie - pour ne pas ouvrir l'ordre suivant sur la même bougie.
Il en ressort que si les conditions des indicateurs sont remplies - ouvrez une transaction.
Lorsqu'une transaction sur la prise est fermée, elle ouvre immédiatement une nouvelle transaction sur le même chandelier, et ici elle n'est plus nécessaire et me crée des problèmes.
Je pense qu'il est important de donner un feedback.
Il a besoin d'un accord strict, donc 1 bougie - 1 accord.
Merci d'avance !
Vous pouvez également utiliser le drapeau.
Déclarer une variable statique bool ou une variable globale, qu'elle soit flag. Ordre ouvert - flag = true, un nouveau chandelier ouvert - flag = false et ajouter ce flag à la condition d'ouverture de l'ordre.
Vous pouvez également utiliser un drapeau.
Déclarer une variable statique bool ou une variable de niveau global, qu'elle soit flag. Ordre ouvert - drapeau = vrai, une nouvelle bougie ouverte - drapeau = faux et ajouter ce drapeau à la condition d'ouverture de l'ordre.
Le drapeau doit être sauvegardé dans le terminal global et restauré lors de son redémarrage.
Cela dépend de la période sur laquelle porte la transaction et de la possibilité de redémarrer le terminal dans une barre pour ouvrir un ordre et redémarrer le terminal.
Je n'aime pas GV et j'essaie de m'en passer. Lorsque vous exécutez un EA, vous devez toujours recueillir toutes les informations sur les ordres ouverts, alors pourquoi ne pas rétablir la valeur du drapeau lorsque vous l'exécutez ? C'est une option. La deuxième variante est que la valeur initiale du drapeau interdit l'ouverture des ordres et que seule la barre suivante donnera l'autorisation. Ainsi, même si nous avons ouvert et redémarré l'EA sur la barre actuelle, le drapeau nous interdira de toute façon d'ouvrir des ordres jusqu'à la barre suivante.
Si vous donnez de tels conseils avec autant de subtilité, vous n'aurez à réfléchir à rien. Le nombre de questions va donc augmenter en conséquence... Pourquoi décider soi-même de quelque chose... Demandez sur le forum et vous obtiendrez une version fonctionnelle. Tout ce que vous aurez à faire est de mettre le produit sur le marché...
Cela dépend de la période sur laquelle porte la transaction et de la possibilité de redémarrer le terminal dans une barre pour ouvrir un ordre et redémarrer le terminal.
Je n'aime pas GV et j'essaie de m'en passer. Lorsque vous démarrez un EA, vous devez de toute façon rassembler toutes les informations sur les ordres ouverts, alors pourquoi ne pas rétablir la valeur du drapeau au démarrage ? C'est une option. La deuxième variante est que la valeur initiale du drapeau interdit l'ouverture des ordres et que seule la barre suivante donnera l'autorisation. Ainsi, même si un nouvel ordre est ouvert sur la barre actuelle et que nous redémarrons l'EA, le drapeau interdira de toute façon l'ouverture d'ordres jusqu'à la barre suivante.
En donnant des conseils avec autant de subtilités, nous n'aurons à réfléchir à rien. Par conséquent, le nombre de questions peut augmenter. Pourquoi décider soi-même de quelque chose... Demandez sur le forum et vous obtiendrez une version fonctionnelle. Et la seule chose qui reste à faire est de mettre le produit sur le marché...
:)
C'est la même raison pour laquelle on aime des femmes différentes.
Quelle différence cela fait-il, le drapeau ou le moment de l'ouverture d'une position ? Peu importe comment vous le présentez, vous devez toujours vérifier quelque chose...Bonjour ! Pouvez-vous me dire comment retourner le nombre de derniers ordres perdants, après les ordres profitables ?
Voici mon code, qu'est-ce qui ne va pas ?
int GetProfitLoss()// Perte sur les ordres fermés (nombre de derniers ordres perdants)
{
int Loss = 0 ;
datetime lastCloseTime = 0 ;
int cnt = OrdersHistoryTotal() ;
for(int i=0 ; i < cnt ; i++)
{
si(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
si (OrderSymbol() == Symbol() && OrderMagicNumber() == OrderId && lastCloseTime < OrderCloseTime())
{
lastCloseTime = OrderCloseTime() ;
}
si (OrderProfit()<0)
{
Perte ++ ;
}
si(OrderProfit()>0)
{
break ; // Sortie de la boucle au premier rentable rencontré }
}
}
}
}
retour(Perte) ;
}
Bonne journée à tous !
Veuillez me donner une commande pour que le robot n'ouvre pas plus d'un ordre par bougie.
Même s'il a pris sa prise sur cette bougie - pour ne pas ouvrir l'ordre suivant sur la même bougie.
Il en ressort que si les conditions des indicateurs sont remplies - ouvrez une transaction.
Lorsqu'une transaction sur la prise est fermée, cela ouvre immédiatement une nouvelle transaction sur le même chandelier, et là, c'est déjà inutile pour moi et cela crée des problèmes.
Je pense qu'il est important de donner un feedback.
Il a besoin d'un accord strict, donc 1 bougie - 1 accord.
Merci d'avance !
Fonction NumberOfBarCloseLastPos().
Cette fonction renvoie le numéro de barre de la dernière position à fermer, ou-1. La sélection des postes à prendre en compte est fixée par des paramètres externes :
La fonction NumberOfBarOpenLastPos().
Cette fonction renvoie le numéro de barre de la dernière position ouverte ou-1. La sélection des postes à prendre en compte est définie par des paramètres externes :
Ensuite, à l'aide de ces fonctions, vérifiez la condition dont vous avez besoin.
Aidez-moi, s'il vous plaît.
Je dois ajouter la fonction suivante à mon robot :
Après l'ouverture d'une transaction, dans 40 secondes, si le profit est supérieur à 15 pips, la transaction est fermée instantanément, s'il est inférieur, le takeprofit est déplacé au niveau de profit de 15 pips.
Merci d'avance.
La fonction NumberOfBarCloseLastPos().
Cette fonction renvoie le numéro de clôture de la barre de la dernière position ou-1. La sélection des positions à prendre en compte est définie par des paramètres externes :
La fonction NumberOfBarOpenLastPos().
Cette fonction renvoie le numéro de barre de la dernière position ouverte ou-1. La sélection des postes à prendre en compte est définie par des paramètres externes :
Utilisez ensuite ces fonctions pour vérifier la condition dont vous avez besoin.
Merci beaucoup !
Je vais m'en occuper ! !!