Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Hallo Experten, was ist Ihre Meinung zu dieser Lösung?
Hallo Experten, was ist Ihre Meinung zu dieser Lösung?
Ja, natürlich. Dies ist ein totaler Abschluss aller.
Manchmal gibt es Situationen (z.B. wenn man zu viele offene Trades sofort schließen will), in denen die "Original"-Version nicht funktioniert. Diese Version ist dafür gut geeignet.
Ja, natürlich. Dies ist eine vollständige Schließung aller.
Manchmal gibt es Situationen (z.B. wenn Sie zu viele offene Geschäfte sofort schließen wollen), in denen die "Original"-Version nicht funktioniert. Diese Version ist gut für diese.
Hallo!
ich habe eine Frage zu while-Schleifen. Ich möchte den aktuellen EA in einer Schleife so häufig wie möglich ausführen. Also, mein Gedanke ist, den aktuellen Code innerhalb einer while-Schleife mit einer sleep-Funktion enthalten, die bewirkt, dass die while nur alle 1 Millisekunde ausgeführt.
Wenn ich dies jedoch getan habe (ich habe einige Print("...")-Funktionsaufrufe eingefügt, die verfolgen, was in jeder Schleife passiert), sehe ich, dass der Code einfriert und nicht mehr auf dem Bildschirm ausgegeben wird.
Ich frage mich, was das Problem sein könnte. Ist es in Ordnung, den EA in einer Schleife mit einer Frequenz von 1 ms laufen zu lassen? Wäre es ein Problem, wenn man versuchen würde, das letzte Bid/Ask zum Beispiel jede Millisekunde vom Server zu erhalten? Würde dies zu viel Last auf den Server bringen und das Einfrieren verursachen?
Möglicherweise ist etwas anderes mein Algorithmus tut dies verursacht, ich bin mir nicht sicher.
Ich habe es mit 200ms-Zyklen laufen lassen und habe immer noch das gleiche Problem (wenn auch nicht so unmittelbar). Könnte es ein Problem mit der Ausgabe von zu vielen Zeilen in der Protokolldatei geben?
Danke für jeden Ratschlag.
Mit freundlichen Grüßen,
C.
14967057:
Ich habe eine Frage zu while-Schleifen. Ich möchte den aktuellen EA so oft wie möglich in einer Schleife laufen lassen.
Mein Gedanke ist also, den aktuellen Code in eine while-Schleife mit einer darin enthaltenen sleep-Funktion zu setzen, die bewirkt, dass die while-Schleife nur alle 1 Millisekunde ausgeführt wird.
Könnte es ein Problem mit dem Versuch geben, das letzte Bid/Ask zu erhalten.
Könnte es ein Problem damit geben, zu viele Zeilen in die Protokolldatei zu drucken?
Hallo,
Es stellte sich heraus, dass das Problem, das ich hatte, nicht auf die Kapselung meines EA-Codes innerhalb einer while-Schleife mit einem 1ms-Schlaf zurückzuführen war. Dieser Teil scheint in Ordnung (unabhängig davon, wo ich auf dem Bildschirm drucken oder nicht), wie ich es jetzt für die letzte halbe Stunde ohne Fehler ausgeführt haben.
Das Problem lag an einem anderen heimtückischen while, das ich im Code hatte und das schließlich dazu führte, dass der EA in einer Endlosschleife gefangen wurde.
Vielen Dank für den Beitrag gooly und Roesder.
Grüße,
Hallo zusammen. Ich habe dieses Thema gelesen und ich habe eine Frage. Ich versuche einen Code zu erstellen, der eine schwebende Order löscht (nur STOP, kein LIMIT), aber nur wenn eine andere schwebende Order aktiviert wurde (Start ist OP_SELL oder OP_BUY). Also Code ist dies (aber es gibt einen Fehler, aber ich weiß nicht, wo). Könnten Sie sich bitte meinen Code ansehen?
OrdersTotal() nicht korrekt...
Ich bin überrascht, dass eine Schleifencode-Sequenz, die OrdersTotal() verwendet, keine korrekten Ergebnisse liefert (beobachtet bei zwei verschiedenen Brokern).
Ich verwende MT4 Version 1090 auf einem Linux Ubuntu-MATE 16.04 Desktop, auf dem WINE 3.0 läuft.
Hier ist, was ich verwendet habe...
for(int cc = 0; cc < OrdersTotal(); cc++)
{
if (!OrderSelect(cc, SELECT_BY_POS, MODE_TRADES) ) weiter;
if (OrderSymbol() != Symbol() ) continue;
if (OrderType() > 1) continue; //--ignore pending trades
OpenTradecnt++; //--zählt für jede Live-Position dieses Symbols, die existiert
Print("Anzahl der offenen Trades dieses Symbols ist: ", OpenTradecnt);
}
Ich habe bei zwei verschiedenen Brokern festgestellt, dass der Wert von OrdersTotal() nicht immer mit dem Wert übereinstimmt, der in der Registerkarte "Handel" des MT4-Brokers angezeigt wird. Zunächst dachte ich, dass es am Broker liegt, dass OrdersTotal() nicht richtig funktioniert. Als ich das beim zweiten Broker bemerkte, begann ich mich zu fragen, ob MT4 ein internes Problem hat oder ob mein Code falsch ist ODER ob es ein Problem mit der korrekten Synchronisierung von MT4 mit dem Server.... ist.
Nachdem ich diesen Forumsthread gelesen habe, frage ich mich, ob sich die Ergebnisse ändern, wenn ich die for..-Schleife zum Lesen ändere:
for(int cc = OrdersTotal() - 1; cc >= 0; cc--)
{
...........
}
ODER gibt es ein Flag oder eine Codezeile, die sicherstellt, dass OrdersTotal() während eines OnTick()-Ereignisses korrekt synchronisiert wird?
Jede Klärung dieses Problems wäre sehr hilfreich und wird sehr geschätzt!
Bitte verwenden Sie die Schaltfläche </>, um Ihren Code einzufügen.