Fragen von Anfängern MQL4 MT4 MetaTrader 4 - Seite 180
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
Ja, ich bin der gleichen Meinung, aber nicht nur die Historie und die Anzahl der Indikatorpuffer - z.B. wieder bei der Speicherzuweisung, wenn MT4 den ganzen Speicher verschlungen hat, dann wird er langsamer - anscheinend beginnt er Speicherbereiche freizugeben
Sicherlich können die Entwickler antworten, aber wir sprechen über MetaTrader 4, und hier ...
Warum sollte man im Code irgendwelche Berechnungen anstellen?
Machen Sie keine Berechnungen - das Thema war nicht klug, und ich war daran interessiert, zu überprüfen, was der Optimierer tut, also habe ich den Code entworfen
Sie können ihn so in Ihren Code einfügen:
z.B. einfach Optimierungsparameter in die Datei schreiben, wenn es hängt, kann man in der Datei den letzten Durchlauf lesen, was die Parameter waren und die Zeit der Datei wird die Zeit des "letzten Atems" des Testers sein
Die Entwickler werden eine eindeutige Antwort geben können, aber wir sprechen über MetaTrader 4, und da ...
Und hier... wird sich nichts ändern. Wir nutzen, was wir haben.
Hallo, können Sie mich beraten, das Handelssystem öffnet eine Position nur, wenn eine neue Stunde bar öffnet unter bestimmten Bedingungen. Ich muss sicherstellen, dass der Handel nicht erneut eröffnet wird, wenn ich die Position mit einem Stop Loss auf dem aktuellen Balken schließe. Ich habe es auf diese Weise umgesetzt:
if (OrdersTotal()==0 && ticket!=-1) // keine offenen Lose, aber Ticket vorhanden
{
if (OrderSelect(ticket,SELECT_BY_TICKET)==true)
{
datetime tct=OrderCloseTime(); // Zeitpunkt des Bestellschlusses
datetime tob=iTime(NULL,PERIOD_H1,0); // Eröffnungszeit des aktuellen Balkens
if (tob>tct) // erlaubt es nicht, einen neuen Auftrag zu eröffnen, wenn der Handel mit der gleichen Kerze geschlossen wurde, mit der er eröffnet wurde
{
FUNKTION ZUR ERÖFFNUNG EINER POSITION
}
Im Strategietester werden wiedereröffnete Positionen nicht mehr geöffnet, aber beim Live-Handel wird eine Position geöffnet. Können Sie mir sagen, was los ist?))
Hallo, können Sie mir sagen, ob das Handelssystem eine Position nur bei der Eröffnung eines neuen stündlichen Balkens unter bestimmten Bedingungen eröffnet? Ich muss sicherstellen, dass der Handel nicht erneut eröffnet wird, wenn ich die Position mit einem Stop Loss auf dem aktuellen Balken schließe. Ich habe es auf diese Weise umgesetzt:
if (OrdersTotal()==0 && ticket!=-1) // keine offenen Lose, aber Ticket vorhanden
{
if (OrderSelect(ticket,SELECT_BY_TICKET)==true)
{
datetime tct=OrderCloseTime(); // Zeitpunkt des Bestellschlusses
datetime tob=iTime(NULL,PERIOD_H1,0); // Eröffnungszeit des aktuellen Balkens
if (tob>tct) // lässt die Eröffnung eines neuen Auftrags nicht zu, wenn der Handel im selben Takt geschlossen wurde, in dem er eröffnet wurde
{
FUNKTION ZUR ERÖFFNUNG EINER POSITION
}
Im Strategietester werden wiedereröffnete Positionen nicht mehr geöffnet, aber beim Live-Handel wird eine Position geöffnet. Können Sie mir sagen, was los ist?)
Ist es das?
Ist es das?
nicht wirklich. Was stimmt mit meiner Variante nicht? Die Hauptbedingung ist, dass ich nicht in der Lage bin, auf der aktuellen Stundenkerze wieder einzusteigen! Es ist eine ziemlich einfache Bedingung, was ist daran falsch und warum funktioniert es nicht?
nicht wirklich. Was stimmt mit meiner Variante nicht? Die wichtigste Bedingung ist, dass es nicht möglich ist, auf der aktuellen Kerze wieder einzusteigen! Es ist eine ziemlich einfache Bedingung, was ist daran falsch und warum funktioniert es nicht?
Und welches Ticket haben Sie in OrderSelect gewählt?
Welches Ticket haben Sie in OrderSelect ausgewählt?
Das Ticket wird an den letzten Auftrag weitergegeben. Wenn ein Auftrag offen ist, ist die Eröffnung neuer Aufträge im System nicht möglich, und auch die ausstehenden Aufträge können nicht ausgeführt werden. Das letzte Ticket ist also der letzte Auftrag mit Stopp oder Gewinn.
Wie übergeben Sie das Ticket der letzten Bestellung?
Und OrdersTotal() übergibt die Gesamtzahl der offenen und schwebenden Aufträge.
Hier ist der neue Balken des aktuellen Zeitrahmens.
Wie übergeben Sie das Ticket der letzten Bestellung?
Und OrdersTotal() übergibt die Gesamtzahl der offenen und schwebenden Aufträge.
Hier ist der neue Balken des aktuellen Zeitrahmens.
Das Ticket wird als globale Variable deklariert. Ein Ticket wird zum Kauf oder Verkauf weitergegeben. In meinem System können nicht mehrere Aufträge eröffnet werden, sondern nur ein Auftrag, und es können auch keine schwebenden Aufträge vorhanden sein. Daher ist das letzte Ticket, so wie ich es verstehe, ein Auftrag, der mit Gewinn oder Stop geschlossen wird.
ok, mir schwirrt der Kopf... ich werde deinen Rat morgen noch einmal überdenken