Fehler, Irrtümer, Fragen - Seite 149

 
Vladix:

Eine Verzögerung einbauen - ja, ich akzeptiere, wie viele Codezeilen wären dafür nötig? Und wenn es sich um mehrere Währungen handelt, muss die Verzögerung bei jeder einzelnen Währung berücksichtigt werden, nicht wahr?

Ich habe den Code zur Lösung dieses Problems geschrieben. Nur gefällt sie mir nicht, genauso wenig wie mir Ihre gefällt, tut mir leid. Und es geht nicht um Voreingenommenheit, sondern darum, dass es keine anderen Möglichkeiten gibt, einfach und elegant.

Ich habe zwei Zeilen für die Mehrfachwährung im Block für die Handelsanfrage. Das war's... Wenn Sie eine Bestellung aufgeben müssen, prüfen Sie, ob die aktuelle Uhrzeit nicht höher ist als die Annahmeschlusszeit. Es gibt nichts Eleganteres, und beide sind absolut zuverlässig...

if(типдействия==TRADE_ACTION_DEAL || типдействия==TRADE_ACTION_PENDING)
    ВремяОкончанияЗапрета[i3]=TimeCurrent()+СекундыЗадержкиПослеЗапроса;
 
Vladix:

Eine Verzögerung einbauen - ja, ich akzeptiere, wie viele Codezeilen wären dafür nötig? Und wenn es sich um mehrere Währungen handelt, muss die Verzögerung bei jeder einzelnen Währung berücksichtigt werden, nicht wahr?

Ich habe den Code zur Lösung dieses Problems geschrieben. Nur gefällt sie mir nicht, genauso wenig wie mir Ihre gefällt, tut mir leid. Es geht nicht um Voreingenommenheit, sondern darum, dass es keine anderen einfachen und eleganten Lösungen gibt.


Verzögerung ist nicht unsere Methode))

1. Wir sollten die Anzahl der Positionen(oder Aufträge) in einer Variablen (statisch oder global) speichern, bevor wir eine Handelsoperation durchführen.

2. Im Falle der Nichtausführung ist die Variable=-1;

Bei erfolgreicher Ausführung wird gewartet, nichts unternommen und bei jedem Tick geprüft, bis die Anzahl der Positionen (oder Aufträge) gleich der Variablen ist.

3. wenn es nicht gleich ist - Variable=-1;

Документация по MQL5: Торговые функции / PositionsTotal
Документация по MQL5: Торговые функции / PositionsTotal
  • www.mql5.com
Торговые функции / PositionsTotal - Документация по MQL5
 
Swan:

Verzögerung ist nicht unsere Methode))

1. Speichern Sie vor einer Handelsoperation in einer (statischen oder globalen) Variablen die Anzahl der Positionen(oder Aufträge)

Sind sie offen? Für jedes Instrument gibt es nur eine Position.... Sie können es nicht füllen oder teilweise schließen, der Betrag bleibt gleich. Und es ist nicht akzeptabel, die Anzahl der Aufträge in der Historie neu zu berechnen... man weiß nicht, woher sie kommen könnten...
 
Swan:

Verzögerung ist nicht unsere Methode))

1. Vor einer Handelsoperation wird die Anzahl der Positionen(oder Aufträge) in einer (statischen oder globalen) Variablen gespeichert

2. Im Falle der Nichtausführung - Variable=-1;

Bei erfolgreicher Ausführung wird gewartet, nichts unternommen und bei jedem Tick geprüft, bis die Anzahl der Positionen (oder Aufträge) gleich der Variablen ist.

3. sobald sie nicht mehr gleich ist, ist die Variable=-1;

Keine Methode - nur für Pips, aber für den mittelfristigen Handel ist es OK. Andernfalls besteht die Gefahr, dass wir in


10024

TRADE_RETCODE_TOO_MANY_REQUESTS

Zu häufige Anfragen

mit möglichem Verbot des Handels mit dem Expert Advisor.

 
Dmitriy2:
Ist sie offen? Die Position ist für jedes Instrument dieselbe.... Sie können es nicht füllen oder teilweise schließen... der Betrag bleibt derselbe. Und es ist nicht akzeptabel, die Anzahl der Bestellungen in der Historie neu zu berechnen... man weiß nicht, woher sie kommen könnten...

Ja, ich bin mir dessen bewusst) sollten wir in eine Variable schreiben, was als Ergebnis von OrderSend() geändert werden soll.

Wenn Sie das Programm komplett schließen (oder ein neues öffnen), ändert sich die Gesamtzahl der Posen (obwohl, ja, es ist genug, und es scheint zuverlässiger zu sein, und ist/ist nicht eine Pose durch Symbol zu merken). Es kann sich auch die Lautstärke merken, und es funktioniert, wenn man Positionen hinzufügt/entfernt.

Beim Setzen/Löschen eines schwebenden Auftrags - die Anzahl der Aufträge (kann anhand des Symbols berechnet werden).


Generell gilt: Mit ein wenig Fantasie und dem Hinzufügen von nur einer Variablen pro Art der Handelsoperation wird Ihr Code zuverlässiger, einfacher und eleganter :)

 
Valmars:

Keine Methode - nur für Pips, sondern für den mittelfristigen Handel - eine normale Methode. Andernfalls laufen wir Gefahr, in


10024

TRADE_RETCODE_TOO_MANY_REQUESTS

Zu häufige Anfragen

Andernfalls riskieren wir, vom Handel mit dem Expert Advisor ausgeschlossen zu werden.


das ist ein bisschen anders, so war es in 4:

ERR_TOO_MANY_REQUESTS 141 Zu viele Anfragen. Sie müssen die Häufigkeit der Anfragen reduzieren und die Programmlogik ändern.

Sie müssen sich sehr anstrengen, um diesen Fehler zu erhalten, oder Sie haben ein Konto bei einem cleveren Maklerunternehmen :)

Schlupf ist bei manchen Fehlern eine normale Methode, in anderen Fällen sieht es etwas schief aus.

 
Swan:

es ist ein bisschen anders, es war so in 4:

man muss sich schon sehr anstrengen, um diesen Fehler zu begehen, oder ein zweifelhaftes DC-Konto haben :)

Bei einigen Fehlern ist der Schlupf eine normale Methode, in anderen Fällen sieht er etwas schief aus.


Ich weiß es nicht.

Hier steht es sogar im Handbuch des Terminals:

  • Der Trailing Stop kann nicht mehr als eine Position alle 10 Sekunden auslösen. Das heißt, das Terminal stellt eine solche Verzögerung ein. Und der Trailing-Stop wird automatisch auf dem Server verarbeitet.
 
Valmars:

Ich weiß es nicht...

Hier steht es sogar im Handbuch des Terminals:

  • Der Trailing Stop kann nicht mehr als eine Position alle 10 Sekunden auslösen. D.h. das Terminal stellt eine solche Verzögerung ein. Und der Trailing-Stop wird automatisch auf dem Server verarbeitet.
Bei einem fünfstelligen Tick ist es wirklich nicht nötig, jeden Stopp zu verschieben. Das bedeutet aber nicht, dass bei Trailing-Stops alle 10 Sekunden andere Geschäfte verboten sind.


Das ist nicht das, was ich meine :)

Vladix:

Das Problem ist im Allgemeinen folgendes:

ein Tick kommt, der Indikator zeigt an, dass er geschlossen werden muss, ich schließe

der nächste Tick kommt, der Indikator zeigt an, dass er schließen soll und ich weiß nicht, was ich tun soll - die Position ist bereits überschrieben und was mit ihr im Moment passiert, lässt sich natürlich herausfinden, aber über den fünften Punkt.

In diesem Fall müssen Sie lediglich feststellen, dass die Positionsdaten aktualisiert wurden, vorzugsweise ohne Verwendung des fünften Punktes.)

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций - Документация по MQL5
 

Die Entwickler.

In der MQL-Hilfe gibt es auf der Registerkarte Index kein ENUM_CHART_VOLUME_MODE. Fügen Sie es hinzu...

 
Swan:

Generell gilt: Mit ein wenig Fantasie und dem Hinzufügen von nur einer Variablen pro Handelsoperationstyp wird Ihr Code robuster, einfacher und eleganter :)

Also, stellen Sie sich genau vor, welchen Code der Mann braucht, der 10 Zeilen lang und zuverlässig wäre, wie meiner, und dass er ihm gefallen würde :)

Und da wir gerade von Eleganz sprechen: Sie schlagen vor, aus zwei Zeilen einen Haufen mit unklarer Logik zu machen, der genau und logisch die Aufgabe erfüllt, die Sie stellen...

Schwan:

Verzögerung ist nicht unsere Methode))

Im Falle einer Hinrichtung warten wir... ...3. yak nicht gleich...

Und wie lange soll man warten? Zählt das nicht als Verzögerung? Und wenn sie niemals "nicht gleich" wird? Und wir warten auf das Wetter... Eine Handelsanfrage kann leicht zu einem Problem führen und nicht erfüllt werden...

Grund der Beschwerde: