[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 192
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Igor Kim hat einen Berater, der in einem bestimmten Intervall Folgendes tut
Ich danke Ihnen!
Hallo.
Problem mit schwebenden Aufträgen, insbesondere mit dem Verfallsdatum.
Auf diese Weise wird ein neuer Auftrag eröffnet, d.h. wenn er innerhalb einer Stunde nicht ausgelöst wurde, sollte der Server ihn schließen.
Dann prüfe ich das Verfallsdatum:
So sieht es aus, wenn der EA im Testprogramm funktioniert:
2013.03.01 12:45:58 2012.01.11 11:00 #advisor# EURUSD,H1: open #1 sell limit 2.00 EURUSD at 1.27972 ok
2013.03.01 12:45:58 2012.01.11 11:00 #advisor# EURUSD,H1: Alert: OrderExpiration = 2012.01.11:12:00
2013.03.01 12:45:58 2012.01.12 16:29 Tester: Auftrag #1, Verkaufen 2,00 EURUSD wird bei 1,27972 eröffnet
Das heißt, Datum und Uhrzeit des Ablaufs sind korrekt eingestellt, wie ich es möchte, aber es gibt keine Schließung zum Zeitpunkt des Ablaufs - eine Position wird nach 24 Stunden eröffnet.
Ich habe ein paar Foren durchsucht und das Problem tritt auf. Die üblichen Antworten lauten: "Das funktioniert bei mir" oder "Verfolgen Sie die ausstehenden Aufträge selbst". Ich möchte sie nicht selbst verfolgen, und das funktioniert bei mir nicht.
Igor Kim hat einen Berater, der in einem bestimmten Intervall Folgendes tut
Es funktioniert großartig.
Danke für den Tipp!
Es funktioniert großartig.
Danke für den Tipp!
Es liegt nicht an mir, sondern an Google.
Ich denke, Sie können die Funktion "Bildschirm speichern" selbst von dort abrufen und Ihre eigenen Parameter setzen, um sie aufzurufen - ich war zu faul...
Sergey, ich lasse die Frage nach der Funktion vorerst offen, da ich morgen einige weitere Funktionen in Ihren Test-EA einfügen werde, um ein sauberes Experiment durchzuführen. Ich habe es im visuellen Modus beobachtet und fast alle doppelten Schließungen sind die letzten, die früheren werden durch SL und TP geschlossen, d.h. es gibt nichts zur Auswahl. Ich habe "Stops and Takes" entfernt, um eine Auswahl zu haben. Morgen zeige ich Ihnen Ihren Expert Advisor mit allen zusätzlichen Funktionen und Kommentaren! Sie können sich selbst davon überzeugen, wie die Funktion funktioniert. Ich möchte wirklich, dass sie zeigt, dass ich mich geirrt habe! Wenn ich Recht habe, werde ich mein Bestes geben! Bis morgen!
Sergej, Dubakin Ich habe eine visuelle Kontrolle durchgeführt und mich vergewissert, dass diese Funktion die Maximalwerte auswählt, und das ist es, was ich brauche! Ich bin froh, dass ich keine Zweifel mehr habe, und ich entschuldige mich bei Ihnen! Aber in unserem Geschäft ist es besser, sieben Mal zu messen...". Zeigen Sie Ihren Prüfern EA für die Funktionsprüfung, mit zusätzlichen Funktionen und Kommentaren für eine klarere visuelle Prüfung! Ich danke Ihnen!
Sergej, Dubakin Ich habe eine visuelle Kontrolle durchgeführt und mich vergewissert, dass diese Funktion Maximalwerte auswählt, was ich auch brauchte! Ich bin froh, dass ich keine Zweifel mehr habe, und ich entschuldige mich bei Ihnen! Aber in unserem Geschäft ist es besser, sieben Mal zu messen...". Zeigen Sie Ihrem Tester EA zur Funktionsprüfung, mit zusätzlichen Funktionen und Kommentaren für eine klarere visuelle Prüfung! Ich danke Ihnen!
Wie das... Basierend auf Igor Kim etwas gemacht... Nur eines Ihrer Merkmale... der Rest ist derselbe...
so etwas wie das hier, denke ich:
Und rufen Sie sie aus:
zum Zählen von Buy und Sell nach dem aktuellen Symbol, mit Magic
Können Sie mir sagen, wie ich das kleinste Los unter allen offenen Geschäften auswählen kann?
double min=0;
int min_ticket=0;
for(i=0;i<ot;i++)
{
if(!OrderSelect(i,SELECT_BY_POS)) continue;
if(OrderType()!=OP_BUY && OrderType()!=OP_SELL) continue;
if(i==0||min>OrderLots()) {min = OrderLots(); min_ticket=OrderTicket();}
}
Die Variable i hat nur zu Beginn der Schleife einen Wert von 0. Außerdem wird bei jeder Iteration 1 Wert hinzugefügt.Ich habe das Thema durchstöbert. Ihre Logik ist seltsam. Ich interessiere mich für die letzte Zeile des Codes:
Dann gibt es eine Bedingung, die dazu führt, dass die Schleife fortgesetzt wird:
Aber min wird als Null deklariert und sein Wert ändert sich nirgendwo sonst im Code. Das bedeutet, dass dieser Wert niemals wahr sein wird! Wo ist die Logik?
Die Variable i hat nur zu Beginn der Schleife einen Wert von 0. Außerdem wird der Wert mit jeder Iteration um 1 erhöht.Ich habe den Thread durchstöbert. Ihre Logik ist seltsam. Ich interessiere mich für die letzte Zeile des Codes:
Dann gibt es eine Bedingung für die Fortsetzung des Zyklus:
Aber min wird als Null deklariert, und sein Wert ändert sich nirgendwo sonst im Code. Das bedeutet, dass dieser Wert niemals wahr sein wird! Wo ist die Logik?
Die Variable i hat nur zu Beginn der Schleife den Wert 0. Außerdem wird der Wert mit jeder Iteration um 1 erhöht.Ich schaute durch den Zweig. Ihre Logik ist seltsam. Ich interessiere mich für die letzte Codezeile:
Dann gibt es eine Bedingung für die Fortsetzung des Zyklus:
Aber min wird als Null deklariert, und sein Wert ändert sich nirgendwo sonst im Code. Das bedeutet, dass dieser Wert niemals wahr sein wird! Wo ist die Logik?Bitte beachten Sie
Wenn min>OrderLots(), dann min = OrderLots();
Bitte beachten Sie
Wenn min>OrderLots() dann, min = OrderLots();