[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 825
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
Ich verstehe das im Allgemeinen, aber was bedeutet es, wenn(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES))break; wenn keine solche Bestellung ausgewählt ist, dann abbrechen oder was?
OrderSelect (siehe https://docs.mql4.com/ru/trading/OrderSelect) gibt FALSE zurück, wenn die Funktion fehlschlägt. Siehe https://docs.mql4.com/ru/basis/operators/break für Pausenbetreiber.
Dies kann vereinfacht werden zu
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
die Hauptsache ist, die Reihenfolge zu wählen.
Und für mich sieht es nach ganz anderen Dingen aus. Könnten Sie Folgendes in Ihren Code einfügen if(Tip==OP_BUYSTOP||Tip==OP_SELLSTOP&&Minute()<59&&Minute()>57) OrderDelete(Ticket);
und wenn ja, welchen Teil?
Ohne Ihren Code zu sehen, kann ich davon ausgehen, dass stattdessen (es hängt alles von Ihrem Algorithmus):
if(OrderType()==OP_BUYSTOP) OrderDelete(OrderTicket());
if(OrderType()==OP_SELLSTOP) OrderDelete(OrderTicket());
if(OrderType()==OP_BUYLIMIT) OrderDelete(OrderTicket());
if(OrderType()==OP_SELLLIMIT) OrderDelete(OrderTicket());
Sie müssen nur die Reihenfolge der Variablen und die Klammern in der Bedingung mit || und && korrigieren.
Die Bedingung Minute()<59&&Minute()>57 kann auf Minute()==58 reduziert werden oder >= oder <= verwenden.
Um die Schließung eines schwebenden Auftrags am Ende einer Periode oder zu einem bestimmten Zeitpunkt zu erzwingen, können Sie den Parameter Verfallsdatum angeben - siehe https://docs.mql4.com/ru/trading/OrderSend. In diesem Fall brauchen Sie sich nicht um die Programmierung der Schließung zu kümmern. Und die Bestellung wird bedingungslos geschlossen, ohne dass eine Korrektur für die fehlende Verbindung erfolgt.
Ja, eine Menge nützlicher Dinge. Ich hätte auf die Werbegeschenke verzichten können, aber es ist ein sehr kompliziert geschriebenes Lehrbuch.
Freebie, Leute! Yo! Kommt alle her!!!
Ich denke, wenn das SC-Lehrbuch so geschrieben wäre, wäre es eine 6+.
Entschuldigung für das Off-Topic...
Nein, wir brauchen sie nicht stattdessen, sondern zusätzlich. Ich habe mir das Diagramm angesehen: Manchmal verlässt der Kurs den High-Low-Kanal nicht und die schwebenden Aufträge bleiben bestehen. Wenn sie den High-Low-Kanal nicht verlassen, bleiben sie bestehen. Das Einzige, was Sie tun müssen, ist, die ausstehenden zu schließen, bevor die neuen erscheinen. Was das Buch von 1986 betrifft, ist das Ihr Ernst? Ich bin selbst uralt, aber ich denke, das ist zu viel.
Darüber hinaus müssen Sie zusätzlichen ähnlichen Code schreiben. Irgendwie kommt es mir so vor, als ob Ihr Code ein bisschen durcheinander ist.
Das mit dem Buch von 1986 war kein Scherz. Nochmals: Wenn Sie die Grundlagen des Programmierens lernen wollen, müssen Sie sie lernen, ohne Ihren Kopf mit modernen Sprachkonstrukten zu verstopfen. Sie brauchen die Grundlagen. Informatik-Lehrbücher für Gymnasien, insbesondere das erste, sind methodisch gut für "dumme" Menschen aufgebaut. Wie, von wem, für wen und warum moderne Lehrbücher geschrieben werden, ist ein eigenes Thema
Datum Uhrzeit Lose Preis
26 2010.01.05 12:24 Verkauf 12 0.10 1.44026 1.44907 1.43526 0.00 3200.09
28 2010.01.05 13:21 Kauf 13 0.26 1.44326 1.43445 1.44826 0.00 3200.09
30 2010.01.05 15:34 Verkauf 14 0.43 1.44026 1.44907 1.43526 0.00 3200.09
32 2010.01.05 16:27 kaufen 15 0.72 1.44326 1.43445 1.44826 0.00 3200.09
34 2010.01.05 17:18 verkaufen 16 1.19 1.44026 1.44907 1.43526 0.00 3200.09
Hier haben wir 5 offene Aufträge in den entsprechenden Richtungen.
Wie berechnet man die Gesamtspanne für alle offenen Aufträge?
Paar: EURUSD, Kontrakt 100.000, Hebelwirkung 100.
Datum Uhrzeit Lose Preis
26 2010.01.05 12:24 verkaufen 12 0,10 1,44026 1,44907 1,43526 0,00 3200,09
28 2010.01.05 13:21 kaufen 13 0,26 1,44326 1,43445 1,44826 0,00 3200,09
30 2010.01.05 15:34 verkaufen 14 0,43 1,44026 1,44907 1,43526 0,00 3200,09
32 2010.01.05 16:27 kaufen 15 0,72 1,44326 1,43445 1,44826 0,00 3200,09
34 2010.01.05 17:18 sell 16 1.19 1.44026 1.44907 1.43526 0.00 3200.09
Hier sind 5 offene Aufträge in den jeweiligen Richtungen.
Wie berechne ich die Gesamtspanne für alle offenen Aufträge?
Paar: EUROLLAR, Kontrakt 100000, Hebelwirkung 100.
MarketInfo(Symbol(),MODE_MARGINREQUIRED);
Gibt den Betrag an freien Mitteln zurück, der benötigt wird, um 1 Lot in einem Kaufauftrag zu eröffnen. Schauen Sie sich die anderen an, je nach Ihren Bedürfnissen.
Dies könnte für Sie auch nützlich sein:
double AccountFreeMarginCheck ( string symbol, int cmd, double volume)
Gibt den Betrag der freien Mittel zurück, der nach Eröffnung der angegebenen Position zum aktuellen Preis auf dem aktuellen Konto verbleibt. Wenn nicht genügend Mittel zur Verfügung stehen, wird der Fehler 134 (ERR_NOT_ENOUGH_MONEY) erzeugt.Danke für die schnelle Antwort, aber ich möchte die Marge berechnen, BEVOR diese Positionen eröffnet werden! Die Strategie ist eine Lawine, ich muss wissen, ob es einen Stop Out geben wird, nachdem die entsprechenden Positionen geöffnet wurden? Die Losgrößen aller anstehenden Lose sind im Voraus bekannt. Ich möchte wissen: Wie viele Aufträge (mit im Voraus bekannten inkrementellen Lots) können eröffnet werden?
Versuchen Sie es und finden Sie es selbst heraus... :)
Und, noch einmal.
double AccountFreeMarginCheck ( string symbol, int cmd, double volume)
Ich habe diese Funktion in einem benutzerdefinierten EA verwendet, der auch ein nacktes Martingal verwendet.
Ich musste eine Zeile schreiben, bevor ich eine Position öffnete, um sie stabiler zu machen:
Artem, ich muss die Marge selbst berechnen, d.h. ich muss die Berechnungsformel kennen. Ich brauche keine Antwort des Terminals über die aktuellen Möglichkeiten. Ich kenne zwar die Berechnungsformel, aber es gibt irgendeine Besonderheit bei der Berechnung der Marge für sich überschneidende Positionen!!! Und ich weiß nicht einmal, was sich überschneidende Positionen sind! Ich habe ausdrücklich ein Beispiel genannt, an dem Sie sehen können, dass jede aufeinanderfolgende Position in die entgegengesetzte Richtung zur vorherigen geöffnet wird. Wenn Sie die Marge für offene Positionen berechnen, indem Sie alle Lots zusammenzählen (und diesen Betrag in die Formel einfügen), stimmt sie nicht mit der tatsächlichen Reaktion des DC überein, wenn er einen Stop Out anwendet. Ich möchte es so berechnen, wie es das DC berechnet
Sind sich überschneidende Positionen nicht gleichzusetzen mit gesperrten Positionen? Dies ist die Marge, die erforderlich ist, um zwei offene Positionen mit gleichem Volumen, aber entgegengesetzter Richtung zu halten. Sie beträgt in der Regel die Hälfte der Marge, die erforderlich ist, um eine offene Position mit demselben Volumen zu halten wie eine der beiden gesperrten Positionen.
Ich habe es sofort bemerkt, aber ich dachte nicht, dass es dich verwirren würde...
Für den gleichen EA habe ich die Marge auf diese Weise berechnet, ich weiß jetzt nicht, vielleicht ist es falsch??? :
Das ist alles, was der DC an Sie zurückgibt: