Wünsche für MT5 - Seite 55

 
-Alexey-:

Wenn es um Vielseitigkeit geht, ist es wünschenswert, das Volumen einer Position nicht nur in Schritten, sondern auch in Losen ändern zu können. D.h. ungefähr so:

1) Eröffnen Sie eine Position mit einem bestimmten Lot: PositionOpen(...,lot,....); /diese Funktion ist eindeutig und ändert sich nicht, sie bleibt so wie sie jetzt ist/

2) Ändern Sie das Positionsvolumen, z.B. erhöhen Sie es:

a) PositionIncrease(..., 2, mode_lot_change,....) - Erhöhung des Positionsvolumens um 2 Lots; /für den Fall, dass es bequem ist, es in Lots zu ändern.

b) PositionIncrease(..., 2, mode_multiply_change,....) - erhöht das Volumen der Position um das 2fache; /für den Fall, dass es bequem ist, sie in Vielfachen zu ändern/


CTrade verfügt über eine Reihe von Methoden, die in der Hilfe unter"Operationen mit Positionen" beschrieben sind. Das sind: Positionseröffnung, Positionsschließung, Änderung von SL oder TP einer Position. Wir empfehlen, sie zu vervollständigen. Eine Position umzukehren bedeutet, einen entgegengesetzten Handel mit einem größeren Volumen als dem der aktuellen Position durchzuführen, so dass die Richtung der offenen Position umgekehrt wird. Eine Position zu reduzieren bedeutet, das Volumen der offenen Position zu verringern. Das Gegenteil ist die Steigerung.

Я за то чтобы в библиотеку включались универсальные вещи, которые устраивают всех (чтобы потом не пришлось переопределять функционал стандартных классов).

Ja, das ist ein sehr wichtiger Punkt.
PositionOpen() ist eine universelle Methode der Klasse CTrade, die es nicht nur erlaubt, eine Position zu eröffnen, sondern auch das Volumen einer bestehenden Position zu erhöhen (zu verringern) oder sie umzukehren. Rufen Sie ihn einfach mit dem entsprechenden order_type in Richtung der hinzuzufügenden Position auf, in der entgegengesetzten Richtung, um die Position mit dem erforderlichen Volumen zu trimmen, oder verdoppeln Sie das Volumen in der entgegengesetzten Richtung, um es zu drehen.
 
Valmars:
PositionOpen() ist eine solche universelle Methode der Klasse CTrade, die nicht nur das Eröffnen einer Position, sondern auch das Erhöhen (Verringern) ihres Volumens oder die Umkehrung der Position ermöglicht. Rufen Sie es einfach mit dem entsprechenden order_type in Richtung der Position auf, um zu addieren, in die entgegengesetzte Richtung, um zu kürzen, oder verdoppeln Sie das Volumen in die entgegengesetzte Richtung, um zu flippen.

Ich meine das Gleiche. Vielleicht sollte es spezielle Funktionen für das Trimmen oder Flippen geben, aber natürlich nicht in CTrade (wenn wir über eine Standardbibliothek sprechen).

Wenn sich die Frage auf eine der "Expertenklassen" bezöge, hätte ich persönlich nichts dagegen.

 

1. Bitte geben Sie mir den Hebel von 1:500 (vorzugsweise 1:200) zurück, ich warte schon seit einigen Wochen auf ein solches Geschenk von Ihnen.

2. Ich habe noch eine weitere Frage: Wenn mein Konto 1:500 ist und die maximale Hebelwirkung, die im Tester verfügbar ist, 1:100 beträgt, welche Parameter werden dann vom Tester berücksichtigt?

ICH WILL ES WIRKLICH!

 
Valmars:
PositionOpen() ist eine universelle Methode der CTrade-Klasse, die es Ihnen nicht nur ermöglicht, eine Position zu eröffnen, sondern auch die Größe der bestehenden Position zu erhöhen (zu verringern) oder sie umzukehren. Rufen Sie ihn einfach mit dem entsprechenden order_type in Richtung der hinzuzufügenden Position auf, in die entgegengesetzte Richtung, um das erforderliche Volumen zu reduzieren, oder verdoppeln Sie das Volumen in die entgegengesetzte Richtung, um es zu drehen.

Schauen wir uns an, was zu tun ist, um eine Position umzukehren, z. B. um ihr Volumen zu verdoppeln.

1) Stellen Sie fest, ob es eine offene Stelle gibt.

2) Bestimmen Sie die Richtung der offenen Position.

3) Bestimmen Sie das Volumen der offenen Position.

4) Bestimmen Sie, wie viel Geld benötigt wird, um die entgegengesetzte Position mit dem dreifachen Volumen zu eröffnen (oder schließen Sie die gleiche Position zuerst und eröffnen Sie dann eine doppelte Position).

5) Stellen Sie fest, ob die erforderlichen Mittel zur Verfügung stehen.

6) Bestimmen Sie das Mindestvielfache einer Partie.

7) Bestimmen Sie das Volumen, das dem erforderlichen Volumen am nächsten kommt.

8) Prüfen Sie erneut, ob die Mittel ausreichen.

9) Entfernen Sie SL und TP aus der bestehenden Position mit PositionModify.

10) Zulässigen Schlupf einstellen.

11) Öffnen Sie die gegenüberliegende Position.

12) Bestimmen Sie den aus der Umkehrung resultierenden Eröffnungskurs.

13) Setzen Sie die neuen SL und TP mit PositionModify.


Beim Schreiben dieses Artikels sind mir ein paar Fehler unterlaufen.


Dies ist ein Stück Code, das Zehntausende von Menschen mit Fehlern immer wieder neu schreiben müssen. Warum, wenn man das auch einmal in einer Bibliothek machen kann?

Dies ist ein Code, den nicht jeder korrekt als neue Methode einer abgeleiteten Klasse bezeichnen würde. Warum, wenn die Entwickler es richtig machen können?

Das ist eine unangenehme Sache. Warum einen Haufen Code schreiben, wenn Sie eine fertige Funktion PositionReverse und einen String verwenden können?

Ich meine das Gleiche. Möglicherweise müssen Sie spezielle Funktionen zum Trimmen oder Umdrehen schreiben, aber natürlich nicht in CTrade (wenn es sich um die Standardbibliothek handelt).

Und wo sollte sie für einen durchschnittlichen Benutzer verfügbar sein und in der Hilfe enthalten sein? Warum nicht in CTrade (in der Annahme, dass diese Methoden keine Probleme verursachen werden)?

Schließlich können Sie einen Handel auch ohne PositionOpen eröffnen. Warum haben sie diese Methode in Ctrade eingeführt? Ich denke, dass dieser Wrapper aus Bequemlichkeit eingeführt wurde, weil er viele Dinge berücksichtigt, die für einen Anfänger nicht offensichtlich sind.

 
-Alexey-:

Schauen wir uns an, was zu tun ist, um eine Position umzukehren, z. B. um ihr Volumen zu verdoppeln.

1) Stellen Sie fest, ob es eine offene Stelle gibt.


3) Bestimmen Sie das Volumen der offenen Position.

4) Bestimmen Sie, wie viel Geld benötigt wird, um die entgegengesetzte Position mit dem dreifachen Volumen zu eröffnen (oder schließen Sie die gleiche Position zuerst und eröffnen Sie dann eine doppelte Position).

5) Stellen Sie fest, ob die erforderlichen Mittel zur Verfügung stehen.

6) Bestimmen Sie das Mindestvielfache einer Partie.

7) Bestimmen Sie das Volumen, das dem erforderlichen Volumen am nächsten kommt.

8) Prüfen Sie erneut, ob die Mittel ausreichen.

9) Entfernen Sie SL und TP aus der bestehenden Position mit PositionModify.

10) Zulässigen Schlupf einstellen.

11) Öffnen Sie die gegenüberliegende Position.

12) Bestimmen Sie den aus der Umkehrung resultierenden Eröffnungskurs.

13) Setzen Sie die neuen SL und TP mit PositionModify.


Beim Schreiben dieses Artikels sind mir ein paar Fehler unterlaufen.


Dies ist ein Stück Code, das Zehntausende von Menschen mit Fehlern immer wieder neu schreiben müssen. Warum, wenn man das auch einmal in einer Bibliothek machen kann?

Dies ist Code, den nicht jeder korrekt in Form einer neuen Methode einer abgeleiteten Klasse oritieren kann. Warum, wenn die Entwickler es richtig machen können?

Das ist eine unangenehme Sache. Warum einen Haufen Code schreiben, wenn Sie eine fertige PositionReverse-Funktion und eine Zeile verwenden können?

Und wo, damit sie einem normalen Benutzer zur Verfügung stehen und in die Hilfe aufgenommen werden können? Warum nicht in STrade (in der Annahme, dass diese Methoden keine Probleme verursachen werden)?

Schließlich können Sie einen Handel auch ohne PositionOpen eröffnen. Warum haben sie diese Methode in Ctrade eingeführt? Ich denke, dass dieser Wrapper aus Gründen der Bequemlichkeit eingeführt wurde, weil er viele Dinge berücksichtigt, die für einen Anfänger nicht offensichtlich sind.

Sie haben in vielen Punkten Recht: Um eine Position mit PositionOpen(...) zu eröffnen, sollten Sie auch Volumen, Eröffnungskurs, SL und TP angeben und überprüfen, ob alle diese Parameter gültig sind, wenn Sie keinen Fehler beim Eröffnen der Position erhalten wollen.
Das Gleiche gilt für den Überschlag. Nun, Sie geben an: "Eine Position für dieses und jenes Symbol umkehren", und schon haben Sie es um 100 vierstellige Punkte umgedreht.
höher oder niedriger. Sie werden darüber vielleicht nicht glücklich sein.
Aber lassen Sie uns Ihre Argumente eins nach dem anderen prüfen.
1) Stellen Sie fest, ob es eine offene Stelle gibt.

Ich denke, dass dies noch geschehen muss, bevor eine Entscheidung zur Umkehrung einer Position getroffen wird.

2) Bestimmen Sie die Richtung einer offenen Position.

Ich denke, dies ist auch obligatorisch, wenn Sie sich entscheiden, zu flippen. In jedem Fall ist es elementar, wenn die Stelle einmal gewählt ist.

3) Bestimmen Sie das Volumen der offenen Position.

Ähnlich wie bei Punkt 2.

4) Bestimmen Sie, wie viel Geld Sie benötigen, um die entgegengesetzte Position mit dem dreifachen Volumen zu eröffnen (oder schließen Sie zuerst mit dem gleichen Volumen und eröffnen Sie dann mit einem Double).

Prüfen Sie, ob die Mittel ausreichen, bevor Sie einen Antrag stellen.

5) Stellen Sie fest, ob die erforderlichen Mittel zur Verfügung stehen.

Zu kombinieren mit Punkt 4.

6) Bestimmen Sie das Mindestvielfache der Partie

Ja, natürlich.

7) Bestimmen Sie das Volumen, das der erforderlichen Multiplizität am nächsten kommt.

Sie sind dabei, Stellen zu eröffnen, nicht wahr? Sie verfügen also bereits über diese Funktionalität. Alles, was Sie tun müssen, ist, die Funktion aufzurufen.

8) Prüfen Sie erneut, ob die Mittel ausreichen.

Die Standardmethode.

9) Entfernen Sie SL und TP aus der bestehenden Position mit PositionModify.

Sie brauchen es nicht.

10) Legen Sie einen zulässigen Schlupf fest.

Ja, sicher. Der kleinere Eintrag ist genauer, aber es gibt mehr Rückfragen.

11) Öffnen Sie eine gegenüberliegende Position.

Hier setzen wir PositionOpen ein.

12) Bestimmen Sie den aus der Umkehrung resultierenden Eröffnungskurs.

Es ist auch ziemlich elementar. Wir müssen nur die Position neu auswählen.

13) Setzen Sie mit PositionModify neue SL und TP.

Wenn Sie es nicht sofort berechnet und eingestellt haben, können Sie es jetzt nachholen.

Sollten Sie sich irgendwo vertan oder etwas vergessen haben, haben die Entwickler vorgesorgt: Zunächst werden die Request-Parameter mit der Funktion OrderCheck(m_request,m_check_result) auf ihre Gültigkeit geprüft und im Fehlerfall wird der Request mit einer entsprechenden Meldung im Journal nicht an den Server gesendet.

Aber wie wollen Sie, dass die Standardmethode alles für Sie entscheidet: die Abweichung, den Preis, das Volumen und die Stopps?

 
Wie wollen Sie, dass die Standardmethode alles für Sie erledigt: die Abweichung, den Umkehrpreis, das Volumen und die Stops? <br / translate="no">.
Die Standardmethode mit Abweichung tut genau dasselbe (entscheidet sich für mich) - sie wird standardmäßig innerhalb der Klasse angegeben. D.h. es handelt sich um einen optionalen Parameter, der in PositionOpen nicht vorhanden ist. Falls erforderlich, wird sie mit einer speziellen Methode, STrade.deviation...., geändert, aber nicht immer, sondern nur bei Bedarf. Das ist praktisch. Das Gleiche gilt für einige andere Parameter, die in CTrade standardmäßig eingestellt sind.

Der Rollpreis wird natürlich von der Strategie oder dem Benutzer festgelegt. Nachdem der Preis geändert wurde, muss er jedoch überprüft werden, da es zu Kursschwankungen und Spreads kommt. Aus diesem Grund kann der im Voraus berechnete (und in der Funktion angegebene) Stopp oder Gewinn anders ausfallen. Ich habe den Preis nur deswegen erwähnt, d.h. wenn neue Werte für Stop und Profit in der Rollover-Funktion angegeben werden (wenn - dann ist eine Überprüfung und Einstellung nicht erforderlich). Der Algorithmus ist einfach und wird von der Rollover-Funktion automatisch gelöst - ohne mein Zutun. Das ist praktisch.

Wenn es eine offene Stelle gibt, was bei dem Vorschlag der Fall ist, dann ergeben sich Aktionen, die ohne Kontrollen durchgeführt werden können. Zum Beispiel:

- Sie müssen beim Aufruf der betreffenden Funktion nicht angeben, ob Sie kaufen oder verkaufen wollen, denn das Programm kann automatisch die Handelsrichtung für die Umkehrung, für den Short und für den Anstieg erkennen. Es gibt nichts, was man auf Fehler überprüfen könnte. Hier haben wir: minus einen Parameter im Funktionsaufruf (ohne Kauf/Verkauf). Ist es bequem? Ja. Die Standardmethode hat das Problem für mich gelöst.

- Das Volumen der Position ist bekannt, d.h. die Funktion "Pivot" oder "Verkleinern/Vergrößern" kann auf Wunsch des Benutzers das erforderliche Volumen der Transaktion für den angegebenen Modus (in Lots oder in Inkrementen) im Verhältnis zu dem bereits bekannten Volumen berechnen, wobei das nächstgelegene Vielfache des Mindest-Lots verwendet wird. Dies sind typische Aktionen, die einmal programmiert werden können. Das sind vor allem die, von denen ich spreche.

Was die Überprüfung der Korrektheit angeht, so haben Sie Recht, das müssen Sie selbst tun.

Nun, Sie haben "Umkehrung der Position für dieses und jenes Zeichen" angegeben, und das war's, und es ist um 100 4-stellige Punkte umgedreht

So wird es in PositionOpen gehandhabt. Es ist jedoch möglich, optionale Parameter anzugeben, so dass dies nicht geschieht. Dies ist beim Aufruf: stop und take (optionale Funktionsparameter), getrennt vor dem Aufruf der Abweichungsmethode. D.h. der Schutz vor einer solchen Situation ist in CTrade 1) vorhanden und 2) zweckmäßig gestaltet. Der Benutzer muss nicht darüber nachdenken, wie er diese ganze Struktur erstellen soll. Das ist es, worum es geht. Das einzige Problem ist, dass es keine Streuungskontrolle gibt.
 

Ich weiß nicht, ob es schon erwähnt wurde, aber ich hätte gerne, dass MetaEditor in der Lage ist, einige Teile des Codes auszublenden... Zum Beispiel von Klammer zu Klammer, für, Funktionen, usw.

Mit anderen Worten, so wie es in Programmierumgebungen wie Visual Studio implementiert ist. Denn manchmal ist man es leid, auf der Suche nach etwas durch den ganzen Bildschirm zu scrollen...

Auf diese Weise können Sie nur die Codefragmente offen lassen, mit denen Sie gerade arbeiten, und der Rest des Codes wird zusammengeklappt...

Danke... :-)

 
St0nE:

Ich weiß nicht, ob dies bereits erwähnt wurde, aber ich möchte, dass MetaEditor in der Lage ist, einige Abschnitte des Codes auszublenden...

wurde gesagt. Sie können es hier mit einem Pluszeichen versehen https://www.mql5.com/ru/forum/2931
 
Ich danke Ihnen... Eingecheckt... :-)
 

Ich habe mir das ThemaMetaQuotes Software angesehen,das eine langfristige Partnerschaft mit der International Business Times eingegangen ist, und mich daran erinnert, was ich schon lange vorschlagen wollte:

1. Hinzufügen eines Eintrags "Als gelesen markieren" zum Kontextmenü der Registerkarte "Nachrichten", mit der Möglichkeit, ihn auf mehrere ausgewählte Nachrichten gleichzeitig anzuwenden (jetzt müssen Sie jede Nachricht einzeln öffnen). Auf diese Weise können Sie "uninteressante" Nachrichten überspringen und neue Nachrichten im Auge behalten.

2 Zeigen Sie die Anzahl der neuen ungelesenen Nachrichten in einem Tab an, wie es in MetaEditor der Fall ist:Lesezeichen

Dies mag nicht die Hauptaufgabe sein, aber es wird Ihre Arbeit erleichtern...