Chaque paire de devises doit avoir sa propre GlobalVariable, par exemple "MyEA_EURUSD".
Si vous limitez l'EA à une transaction par jour, le code serait le suivant :
string sCheck = "MyEA_" + Symbol() ;
datetime t = TimeCurrent() ;
datetime tTrade = t - TimeHour(t)*60*60 - TimeMinute(t)*60 - TimeSeconds(t) ;
if(!GlobalVariableCheck(sCheck)) GlobalVariableSet(sCheck, tTrade -PERIOD_D1 * 60) ;
if(GlobalVariableGet(sCheck) < tTrade) {
OrderSend(......) ;
GlobalVariableSet(sCheck, tTrade) ;
}
Désolé de ramener ce sujet en haut de l'écran mais j'ai le même problème en ce moment. Malheureusement, sxTed n'a pas répondu à ma question. Parce que décrire un temps de trading est quelque chose de différent de la quantité d'ordres pour chaque paire de devises.
J'ai essayé de modifier les lignes de sxTed mais je pense que j'ai échoué horriblement dans la résolution de ce problème :
string sCheck = "MyEA_" + Symbol(); // already the first error in the code, second quotes should be at the end of the line. //I would correct this one to: string sCheck = "MyEA_ + Symbol()"; //However symbol() is not a function anymore ?? int start () { // Closing Orders here if(!GlobalVariableCheck(sCheck)) //checking Globalvariable, GV available so it becomes true (independently of what kind of GV we have)... GlobalVariableSet(sCheck, Symbol() ); //.. assigning a new GlobalVariable to the function of the current symbol the EA is attached on (does it actually work like this?) if(GlobalVariableGet(sCheck) == Symbol()) { // checking if our Symbol is the one which the EA is attached on --> becomes true... // Order Criteria (Open trades here) // What now? Actually i'm missing any kind of numbers or smth that limits the open orders per currency pair.
S'IL VOUS PLAÎT : ne m'envoyez pas de lien vers une quelconque littérature à cet endroit ou ne me dites pas d'engager quelqu'un, j'étudie le livre en ce moment et je suis coincé ! !!
Pour chaque paire de devises, j'utilise un EA distinct.
Pour vérifier si une position doit être ouverte, je teste s'il n'y a pas d'ordre ouvert "if (OrdersTotal<1)" mais cela va bloquer toutes les autres paires de devises pour ouvrir des positions et je rate des opportunités.
En d'autres termes : Je veux ouvrir une seule position par paire de devises = plusieurs positions devraient être possibles mais dans des paires de devises différentes.
Quel code dois-je utiliser à la place du "if (OrdersTotal<1)" ? Quelqu'un peut-il m'aider ? Merci d'avance pour votre aide.
int total=OrdersTotal() ; int count = 0 ; int magno = 12345 ; for(int pos=0;pos<total;pos++) { if(OrderSelect(pos,SELECT_BY_POS) == false) continue ; if (OrderMagicNumber() != magno) continue ; if (OrderSymbol() != Symbol()) continue ; count++ ; } // Maintenant vous savez combien d'ordres pour ce symbole sont ouverts par cet EA. if (count < 1) { // faire quelque chose - ouvrir un ordre peut-être }Est-ce que cela vous aide ?
Cela vous aide-t-il ?
Est-ce que cela aide ?
int total=OrdersTotal();
limite le total des ordres ouverts de TOUTES les paires de devises ou pas ?
J'ai inséré votre code comme suit
int total=OrdersTotal(); int count = 0; for(int pos=0;pos<total;pos++) { if(OrderSelect(pos,SELECT_BY_POS) == false) continue; if (OrderSymbol() != Symbol()) continue; count++; } if (Sell_1_1 < Sell_1_2 && CloseSell1_1 > CloseSell1_2 && count < 1) Order = SIGNAL_SELL; // Trigger for Sell if (Buy_1_1 > Buy_1_2 && CloseBuy1_1 < CloseBuy1_2 && count < 1) Order = SIGNAL_BUY; // Trigger for Buy if (order == SIGNAL_BUY) { OrderSend(...) }
et il n'ouvre toujours qu'une seule transaction. Que voulait nous dire sxTed avec sa variable globale ?
limite le total des ordres ouverts de toutes les paires de devises ou non ?
J'ai inséré votre code comme suit
et il n'ouvre toujours qu'une seule transaction. Que voulait nous dire sxTed avec sa variable globale ?
Sur combien de graphiques votre EA fonctionne-t-elle ?
Pour tester le code j'ai ouvert 5 graphiques mais je veux ouvrir N graphiques. Le nombre n'a pas d'importance.
Pour chaque paire de devises, j'utilise un EA distinct.
Pour vérifier si une position doit être ouverte, je teste s'il n'y a pas d'ordre ouvert "if (OrdersTotal<1)" mais cela va bloquer toutes les autres paires de devises pour ouvrir des positions et je rate des opportunités.
En d'autres termes : Je veux ouvrir une seule position par paire de devises = plusieurs positions devraient être possibles mais dans des paires de devises différentes.
Quel code dois-je utiliser à la place du "if (OrdersTotal<1)" ? Quelqu'un peut-il m'aider ? Merci d'avance pour votre aide.
Codez-le comme ceci :
int Total_Order = OrdersTotal(); for (pos = 0; pos <= Total_Order; pos ++) { if (OrderSelect (pos, SELECT_BY_POS) == true) { if (OrderSymbol () == Symbol ()) { Print (":( Sorry already have that symbol opened "); // get outta here do something else break ; } else { Print ("No order opened for this symbol"); Print ("Let\'s call waitress and order some drink :)"); // do some order then break out and get out } } }
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation
Pour chaque paire de devises, j'utilise un EA distinct.
Pour vérifier si une position doit être ouverte, je teste s'il n'y a pas d'ordre ouvert "if (OrdersTotal<1)" mais cela va bloquer toutes les autres paires de devises pour ouvrir des positions et je rate des opportunités.
En d'autres termes : Je veux ouvrir une seule position par paire de devises = plusieurs positions devraient être possibles mais dans des paires de devises différentes.
Quel code dois-je utiliser à la place du "if (OrdersTotal<1)" ? Quelqu'un peut-il m'aider ? Merci d'avance pour votre aide.