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
Bonjour Mladen, comme toujours, tu es génial !
Terrance Utilisez Close[0] dans ce cas. Presque tous les EA utilisent close dans ce but, donc je pense que cela fonctionnera pour vous aussi.
...
Si votre EA n'est exécuté qu'au début de la barre, il peut y avoir plusieurs raisons :
J'ai remarqué que mon EA ne fonctionne pas entre les mouvements de prix dans le cadre temporel M1. Je sais que l'EA sera exécuté à chaque tick entrant.
Mais j'ai vu qu'il était exécuté à chaque fois qu'il démarrait une nouvelle barre.
Ai-je mal compris ?
Existe-t-il un moyen de forcer l'EA à activer chaque tick entrant ?
J'essaie de contrôler mes profits et mes pertes en utilisant les profits et les pertes pas en pips. Quand un pic se produit, l'EA ne ferme pas l'ordre lorsqu'il atteint le réglage des profits ou des pertes jusqu'à ce qu'une nouvelle barre se produise.
Quelqu'un peut-il m'aider à résoudre ce problème ?
Je suis nouveau dans le codage d'EA.
Merci d'avance.Merci, mladen.
Je vais essayer votre suggestion.
Salutations aux dieux du codage,
J'ai besoin d'aide pour trouver une fonction EA qui contrôle l'exécution de l'envoi des ordres de sorte qu'un ordre ne puisse pas être ouvert si un ordre existe déjà au même prix.
Logique simple : si le prix d'ouverture de l'ordre et le type d'ordre = un prix d'ouverture et un type d'ordre existant, alors on sort et on cherche le prochain critère d'entrée.
J'ai également besoin d'une fonction qui empêchera l'exécution d'un ordre s'il est à x pips d'un prix déjà existant.
Logique simple : si le prix d'ouverture et le type d'ordre sont < le prix d'ouverture et le type du dernier ordre + x pips, alors on quitte et on cherche le prochain critère d'entrée.
Merci,
Pip
...
Essayez ces 2 fonctions .Les deux renvoient vrai si le prix est égal ou si la distance du prix de certains ordres actuellement ouverts est inférieure à la distance spécifiée.
{
for (int i=OrdersTotal()-1; i>=0 ; i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
if (OrderSymbol()!=Symbol()) continue;
if (OrderMagicNumber()!=magicNumber) continue;
if (CompareDouble(OrderOpenPrice(),price)) return(true);
}
return(false);
}
//
//
//
//
//
bool existsAtApproximatePrice(int magicNumber, double price, double distance)
{
for (int i=OrdersTotal()-1; i>=0 ; i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
if (OrderSymbol()!=Symbol()) continue;
if (OrderMagicNumber()!=magicNumber) continue;
if (MathAbs(OrderOpenPrice()-price)< distance) return(true);
}
return(false);
}
//
//
//
//
//
bool CompareDouble(double val1, double val2)
{
return(NormalizeDouble(val1,Digits)==NormalizeDouble(val2,Digits));
}
Salutations, Dieux du codage,
J'ai besoin d'aide pour trouver une fonction EA qui contrôle l'exécution de l'envoi des ordres de telle sorte qu'un ordre ne puisse être ouvert si un ordre existe déjà au même prix.
Logique simple : si le prix d'ouverture de l'ordre et le type d'ordre = un prix d'ouverture d'ordre et un type d'ordre existant, alors on sort et on cherche le prochain critère d'entrée.
J'ai également besoin d'une fonction qui empêchera l'exécution d'un ordre s'il est à x pips d'un prix déjà existant.
Logique simple : si le prix d'ouverture et le type d'ordre sont < le prix d'ouverture et le type du dernier ordre + x pips, alors on quitte et on cherche le prochain critère d'entrée.
Merci,
PipIl peut y avoir plusieurs raisons, mais les plus courantes sont : .
Bonjour !
Merci pour votre aide !
Donc, si j'ai bien compris, si j'insère TakeProfit et StopLoss dans OrderSend en tant que "règles" externes, cet EA ne fonctionne correctement que sur les brokers Non-ECN ?
Désolé pour mon anglais
...
Oui
Avec les courtiers de type ECN/STP, vous devez ouvrir un ordre avec un stop loss et/ou un take profit fixé à 0 et lorsque l'ordre est déjà ouvert, c'est seulement à ce moment-là que vous pouvez modifier le stop loss et/ou le take profit.
Bonjour !
Merci pour votre aide !
Donc, si j'ai bien compris, si j'insère TakeProfit et StopLoss dans OrderSend en tant que "règles" externes, cet EA ne fonctionne correctement que sur les courtiers non-ECN ?
Désolé pour mon anglaisOui, avec les courtiers de type ECN/STP, vous devez ouvrir un ordre avec un stop loss et/ou un take profit fixé à 0 et lorsque l'ordre est déjà ouvert, ce n'est qu'alors que vous pouvez modifier le stop loss et/ou le take profit.
Merci encore, alors... comment puis-je résoudre ce problème ? désolé.
...
Comme je l'ai dit, vous devez le faire en 2 étapes :
Donc, le code doit être modifié pour faire le travail en 2 étapes, au lieu d'une seule
Merci encore, alors... comment puis-je résoudre ce problème ? désolé
Nouveau dans le codage
Bonjour à tous,
Je suis nouveau dans le codage et j'ai lentement appris le langage et la syntaxe mais j'ai une question sur la façon dont MT4 met à jour les variables.
J'ai essayé de coder un simple EA qui affiche le profit le plus élevé d'une transaction actuellement ouverte et qui ne devrait être mis à jour que si un nouveau sommet est atteint, mais ce qui se passe, c'est que le montant descend et monte en même temps que le profit, je n'arrive pas à voir mon erreur dans la logique du code.
Je vérifie que la transaction sélectionnée est toujours ouverte.
t_CloseTime=OrderCloseTime() ; //renvoie 0 si l'ordre n'est pas fermé
if(t_CloseTime==0) //L'ordre est fermé s'il n'est pas nul.
{
if(OrderProfit() > LastProfitHigh) LastProfitHigh=OrderProfit() ;
if(LastProfitHigh >= MinProfit && MinProfitReached==false) MinProfitReached=true ;
}//endif
Si la logique est correcte, pourquoi la variable "LastProfitHigh" monte et descend-elle ? ....
Merci pour votre aide.