Jedes Währungspaar hat seine eigene GlobalVariable, zum Beispiel "MyEA_EURUSD".
Wenn Sie den EA auf einen Handel pro Tag beschränken würden, wäre der Code wie folgt:
string sCheck = "MyEA_" + Symbol();
datetime t = TimeCurrent();
datetime tTrade = t - TimeHour(t)*60*60 - TimeMinute(t)*60 - TimeSeconds(t);
if(!GlobalVariablePruefen(sPruefen)) GlobalVariableSet(sCheck, tTrade -PERIOD_D1 * 60);
if(GlobalVariableGet(sCheck) < tTrade) {
OrderSend(......);
GlobalVariableSet(sCheck, tTrade);
}
Tut mir leid, dass ich das Thema wieder an die Spitze bringe, aber ich habe gerade das gleiche Problem. Leider hat mir sxTed die Frage nicht beantwortet. Denn eine Handelszeit zu beschreiben ist etwas anderes als die Anzahl der Aufträge für jedes Währungspaar.
Ich habe versucht, die Zeilen von sxTed zu modifizieren, aber ich glaube, ich bin bei der Lösung dieses Problems grandios gescheitert:
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.
BITTE: verweisen Sie mich nicht auf irgendwelche Literatur an dieser Stelle oder sagen Sie mir, dass ich jemanden einstellen soll, ich studiere das Buch gerade und bin steckengeblieben!!!
Für jedes Währungspaar verwende ich einen separaten EA.
Um zu überprüfen, ob eine Position eröffnet werden sollte, teste ich, ob es keine offene Order gibt "if (OrdersTotal<1)", aber das blockiert alle anderen Währungspaare, um Positionen zu eröffnen und ich verpasse Chancen.
Mit anderen Worten: Ich möchte nur eine Position pro Währungspaar eröffnen = mehrere Positionen sollten möglich sein, aber in verschiedenen Währungspaaren.
Welchen Code sollte ich anstelle von "if (OrdersTotal<1)" verwenden? Kann mir jemand helfen? Ich danke Ihnen im Voraus für Ihre Hilfe.
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++; } // Jetzt wissen Sie, wie viele Aufträge für dieses Symbol von diesem EA geöffnet sind. if (count < 1) { // tun Sie etwas - öffnen Sie vielleicht einen Auftrag }Hilft das?
Ist das hilfreich?
Ist dies hilfreich?
int total=OrdersTotal();
die Summe der offenen Aufträge für ALLE Währungspaare begrenzt oder nicht?
Ich habe Ihren Code wie folgt eingefügt
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(...) }
und es wird immer noch nur ein Handel eröffnet. Was wollte uns sxTed mit seiner globalen Variable sagen?
die Summe der offenen Aufträge für ALLE Währungspaare begrenzt oder nicht?
Ich habe Ihren Code wie folgt eingefügt
und es wird immer noch nur ein Handel eröffnet. Was wollte uns sxTed mit seiner globalen Variable sagen?
Wie viele Charts haben Sie mit Ihrem EA geöffnet?
Zum Testen des Codes habe ich 5 Charts geöffnet, aber ich möchte N Charts öffnen. Die Anzahl spielt keine Rolle.
Für jedes Währungspaar verwende ich einen separaten EA.
Um zu überprüfen, ob eine Position eröffnet werden sollte, teste ich, ob es keine offene Order gibt "if (OrdersTotal<1)", aber das blockiert alle anderen Währungspaare, um Positionen zu eröffnen und ich verpasse Chancen.
Mit anderen Worten: Ich möchte nur eine Position pro Währungspaar eröffnen = mehrere Positionen sollten möglich sein, aber in verschiedenen Währungspaaren.
Welchen Code sollte ich anstelle von "if (OrdersTotal<1)" verwenden? Kann mir jemand helfen? Ich danke Ihnen im Voraus für Ihre Hilfe.
Code wie folgt:
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 } } }
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Für jedes Währungspaar verwende ich einen separaten EA.
Um zu überprüfen, ob eine Position eröffnet werden sollte, teste ich, ob es keine offene Order gibt "if (OrdersTotal<1)", aber das blockiert alle anderen Währungspaare, um Positionen zu eröffnen und ich verpasse Chancen.
Mit anderen Worten: Ich möchte nur eine Position pro Währungspaar eröffnen = mehrere Positionen sollten möglich sein, aber in verschiedenen Währungspaaren.
Welchen Code sollte ich anstelle von "if (OrdersTotal<1)" verwenden? Kann mir jemand helfen? Ich danke Ihnen im Voraus für Ihre Hilfe.