Rückmeldung zu MQL5 - Seite 5

 
Ja, ich danke Ihnen! Ich werde versuchen zu arbeiten ....
 

Reparieren Sie es erst einmal:

  • ERR_CHART_NO_REPLY( 4102) [,4003?] Problem, dasbeim Startauftritt und die Zuverlässigkeit des EA extrem beeinträchtigt.
  • Hinauszögern von Aufträgen in der Antragsphase vor Ende der Sitzung. Es kommt vor, dass die Anfragen funktionieren, d.h. dass sie an Börsen hängen. Es ist unmöglich, sie zurückzuziehen. Völlig ungeheuerliche Fälle kommen selten, aber regelmäßig vor.

  • Außerdem hat mein Terminal einmal auf wundersame Weise eine Position verloren. Ich hätte eine Position auf den Konten des Brokers kaufen können und wäre sie dann losgeworden.
  • Eine weitere unangenehme Situation entsteht, wenn die Preise auf dem Markt eine geringe Liquidität aufweisen und das Eigenkapital vom Eröffnungskurs der Position (der sich beim Clearing täglich ändert) bis zum Preis des letzten Geschäfts vor einer Woche berechnet wird, der weit von den wirklichen "Bestien" entfernt ist, d.h. das Ergebnis wird in das Gegenteil verkehrt. Auf diese Weise entsteht ein beträchtlicher Verlust (Gewinn), der nicht der Realität entspricht und imaginär ist. Auf dem MIX-3.16 beispielsweise beträgt dieser Abstand jetzt 6000-10000r pro Kontrakt. Angenommen, diese Metamorphosen führen dazu, dass das Konto heute um 15 % und morgen um 30 % sinkt, und was passiert am ersten Donnerstag im August? Nachschusspflicht? Nur wegen des völligen Mangels an Angeboten für dieses Instrument? Ich habe nicht angegeben, wie diese Berechnung an der Börse durchgeführt wird, aber auf anderen Plattformen trat dieses Problem nicht auf. Ich benutze sie jetzt nicht, daher kann ich das nicht überprüfen.

Das ist nur das erste, was mir in den Sinn kam. Es gibt eine Menge solcher "Kleinigkeiten".

Die Entwickler müssen verstehen - wenn Sie ein Börsenterminal ankündigen, sollten Sie ein entsprechendes Konzept verwenden. Was nützt es, eine "von Grund auf neu geschriebene" Kopie einer Küchenmaschine auf Krücken zu stellen?

Der Schwerpunkt hätte von Anfang an auf wenig liquide börsengehandelte Finanzinstrumente gelegt werden sollen. Die flüssigen würden selbst in das System passen.

Dann wäre der Markt menschlich,

und es gäbe einen Platz für die für alle Plattformen übliche "Tabelle der aktuellen Parameter",

und die Einstellung zum Handel mit Limit-Aufträgen würde ihren rechtmäßigen Platz einnehmen,

und vielleicht würden wir anstelle von nutzlosen Verlaufsreihen (maximaler Spread, Tick-Volumen) voll funktionsfähige ASK/BID für einen Zeitraum haben.

Kurz gesagt, die Revolution hat nicht stattgefunden, und die Schädlinge mit den dummen Ratschlägen wurden besiegt. Lang lebe der König! ...Küche.

 
1150 vinda 8.1 pro 64x

Broker Demo-Modus hat 719 Werkzeuge für den Handel, über 650 deaktiviert

bei der Angabe in der Marktübersicht "Show All" nach dem Laden aller 719 Terminal verlangsamt und freesit ... ( es gibt eine Verzögerung zwischen Klickbefehl oder Tastendruck ) und dessen Ausführung 1-4 Sekunden ...

Rätselhaft, Code für mt4 geschrieben und fast ohne Änderungen auf mt5 übertragen, arbeitet in mt5 zehnmal langsamer

Wenn man von Forex zu Futures wechselt, hängen vorher geöffnete Fenster und warten auf Update (Theoretisch sollte das erste Symbol von Futures es nehmen oder einfach schließen, aber nicht hängen und auf Update warten...)

Arbeit mit "Market Watch" ist überhaupt nicht durchdacht...

Wenn Sie ein Symbol mit der Entf-Taste löschen, wird das Fenster inaktiv, und um es erneut mit der Entf-Taste zu löschen, müssen Sie das Fenster erst aktivieren...

Das schnelle Arbeiten mit den Tools in "Market Watch" ist extrem schlecht durchdacht...

Für µl5

haben Sie in µl4 ObjectsDeleteAll(0, "Prefix"); delete by prefix hinzugefügt, und in mt5 haben Sie das vergessen?
 
Vladimir Pastushak:
1150 vinda 8.1 pro 64x

Broker Demomodus hat 719 Instrumente zu handeln, etwa 650 deaktiviert

bei Angabe von "Show all" in der Marktübersicht nach dem Laden aller 719 das Terminal verlangsamt und friert ein ... ( es gibt eine Verzögerung zwischen Klickbefehl oder Tastendruck ) und dessen Ausführung 1-4 Sekunden ...

Rätselhaft, Code für mt4 geschrieben und fast ohne Änderungen auf mt5 übertragen, arbeitet in mt5 zehnmal langsamer

Wenn man von Forex zu Futures wechselt, hängen vorher geöffnete Fenster und warten auf Update (Theoretisch sollte das erste Symbol von Futures es nehmen oder einfach schließen, aber nicht hängen und auf Update warten...)

Arbeit mit "Market Watch" ist überhaupt nicht durchdacht...

Wenn Sie ein Symbol mit der Entf-Taste löschen, wird das Fenster inaktiv, und um es erneut mit der Entf-Taste zu löschen, müssen Sie das Fenster erst aktivieren...

Die Geschwindigkeitsarbeit mit den Tools in Market Watch ist überhaupt nicht durchdacht...

Zu µl5

In µl4 haben Sie ObjectsDeleteAll(0, "Prefix") hinzugefügt; Löschen nach Präfix, aber in mt5 haben Sie es vergessen?


Nein, sie haben es nicht vergessen. Aber das ist kein großer Unterschied:

ObjectsDeleteAll(0,prefixObj,0,-1);


P./S.: Übrigens, und in MT4 funktioniert es mit -1 statt EMPTY.

Für mich selbst habe ich das Memo wie folgt aufgeschrieben:

int  ObjectsDeleteAll(
   long    chart_id,           // идентификатор графика
   string  prefix_obj,         // общий префикс в именах объектов  
   int     sub_window=-1,      // индекс окна
   int     type=-1             // ENUM_OBJECT (тип объекта для удаления)
   );
 

Auch die Arbeit des Stilisten lässt sich nicht erklären.

wird in der Hilfe geschrieben

Ausnahmen von der interlinearen Formatierung

Die oben genannten Regeln für Styler gelten in einigen Fällen nicht. Damit soll sichergestellt werden, dass die Ausrichtung des Autors in den angrenzenden Zeilen nicht beeinträchtigt wird. Der Styler erkennt für die folgenden Schlüsselwörter und Zeichen den Zeilenabstand auf der Nachbarzeile:

  • "//" - "C"-Zeichen;
  • "{"- linke geschweifte Klammer;
  • "}" - rechte geschweifte Klammer;
  • "Rückgabe" - "Rückgabe"-Operator;
  • "löschen" - "löschen" Operator;
  • "=" - Gleichheitszeichen;
  • ":" - Doppelpunkt;
  • "." - Punkt.



Der Styler regelt den Code immer noch so, wie er will....

 
Vladimir Pastushak:
1150 vinda 8.1 pro 64x

Broker Demo-Modus hat 719 Instrumente zu handeln, etwa 650 deaktiviert

Wenn ich in der Marktübersicht nach dem Laden aller 719 "Alle anzeigen" anklicke, verlangsamt sich das Terminal und gibt ... ( es gibt eine Verzögerung zwischen Klickbefehl oder Tastendruck ) und dessen Ausführung 1-4 Sekunden ...
Daran arbeiten wir, wir arbeiten an der Beschleunigung vieler aktiver Instrumente. Geben Sie bitte den Namen des Handelsservers an.


Der Code, der für mt4 geschrieben und fast unverändert in mt5 übertragen wurde, ist in mt5 um das Zehnfache langsamer.

Beweisen Sie es bitte technisch.

Sie können sofort sagen, dass Sie direkt in die Irre geführt werden.


Wenn man von Forex zu Futures wechselt, bleiben die vorher geöffneten Fenster hängen und warten auf ein Update (theoretisch sollte das erste Symbol der Futures angezeigt oder einfach geschlossen werden, aber nicht hängen und auf ein Update warten...)

Verwechseln Sie Ihr "theoretisch" nicht mit "immer". Wenn Sie zu einem anderen Konto gewechselt haben, auf dem Ihre bisherigen Instrumente nicht verfügbar sind, ist es am besten, Sie selbst entscheiden zu lassen, was Sie tun und was Sie wechseln möchten.

Dies ist weder ein Fehler noch ein Problem.


Die Operation "Market Watch" ist überhaupt nicht gut durchdacht ...

Wenn Sie ein Symbol mit der Entf-Taste löschen, wird das Fenster inaktiv und um das Symbol erneut mit der Entf-Taste zu löschen, müssen Sie das Fenster erst aktivieren...
Dies ist ein kleines Schnittstellenproblem, aber wir werden es beheben.


Äußerst unkluger Umgang mit der Geschwindigkeit von Instrumenten in Market Watch ...

Was genau ist nicht schnell genug?

Es gibt eine Strukturierung der Werkzeuge, Filter, intelligente Sortierung und das Ausblenden von abgelaufenen Werkzeugen.


Für µl5

In µl4 haben Sie ObjectsDeleteAll(0, "Prefix") hinzugefügt; Löschen nach Präfix, aber in mt5 haben Sie es vergessen?
Diese Funktion erschien ursprünglich vor vielen Jahren in MQL5.
 
Vladimir Pastushak:

Auch die Arbeit des Stilisten lässt sich nicht erklären.

wird in der Hilfe geschrieben

Ausnahmen von der interlinearen Formatierung

Die oben genannten Substitutionsregeln des Stylers gelten in einigen Fällen nicht .


Der Styler regelt den Code immer noch so, wie er will....

Die Beschreibung der Styler-Regeln lässt sich nicht in ein paar Zeilen fiktiven Textes unterbringen.

Es formatiert sie so, wie wir es wollen.

 

Das Einzige, was mir persönlich im Moment fehlt, sind Zeiger auf ein Array.

Insbesondere in der Funktion intOnCalculate() erhalten wir Verweise auf Arrays, aber wir können sie nicht speichern. Anstatt Zeiger zu speichern und innerhalb des Codes zu verwenden, müssen wir zunächst Zeitreihen in interne Arrays kopieren und erst dann Zeiger auf diese Klassen verwenden.

Ich denke, es wäre sinnvoll, die Funktion OnCalculate() zu erstellen, die Zeiger auf Zeitreihenobjekte der Standardbibliothek empfängt.

 

Ich lese, alle schreiben, und ich bin nicht zu faul, das zu tun.

Um eine Aussage über die Geschwindigkeit des 5-Rka treffen zu können, muss man zunächst sagen, wie viele Bits der Computer hat, wie viel Speicherplatz und so weiter.

Ich mag immer noch alles. Natürlich gibt es Nuancen, aber im Grunde genommen handelt es sich um dieselbe Programmierung. 4-rka ist auch nicht ein Geschenk aus einigen Gesichtspunkten....

 
Renat Fatkhullin:

Die Beschreibung der Regeln durch einen Stilisten lässt sich nicht in ein paar Zeilen Belletristik zusammenfassen.

Die Formate sind von uns festgelegt worden.

Auf dem Styler:

Ich möchte den Code so sehen, wie ich ihn "repariert" habe

   ENUM_OBJECT   GetTYPE(string name)              { return(ENUM_OBJECT)GetObjectInteger(name,OBJPROP_TYPE);} // Тип обьекта
   datetime      GetCREATETIME(string name)        { return GetObjectInteger(name,OBJPROP_CREATETIME);} // Время создания объекта 
   int  GetCOLOR(string name)                      { return GetObjectInteger(name,OBJPROP_COLOR);} // Цвет
   int  GetSTYLE(string name)                      { return GetObjectInteger(name,OBJPROP_STYLE);} // Стиль
   int  GetWIDTH(string name)                      { return GetObjectInteger(name,OBJPROP_WIDTH);} // Толщина линии
   bool GetBACK(string name)                       { return GetObjectInteger(name,OBJPROP_BACK);} // Объект на заднем плане
   int  GetZORDER(string name)                     { return GetObjectInteger(name,OBJPROP_ZORDER);    } // Приоритет графического объекта на получение события нажатия мышки на графике 

Styling:

   ENUM_OBJECT   GetTYPE(string name) { return(ENUM_OBJECT)GetObjectInteger(name,OBJPROP_TYPE);} // Тип обьекта
   datetime      GetCREATETIME(string name) { return GetObjectInteger(name,OBJPROP_CREATETIME);} // Время создания объекта 
   int  GetCOLOR(string name)                      { return GetObjectInteger(name,OBJPROP_COLOR);} // Цвет
   int  GetSTYLE(string name)                      { return GetObjectInteger(name,OBJPROP_STYLE);} // Стиль
   int  GetWIDTH(string name)                      { return GetObjectInteger(name,OBJPROP_WIDTH);} // Толщина линии
   bool GetBACK(string name) { return GetObjectInteger(name,OBJPROP_BACK);} // Объект на заднем плане
   int  GetZORDER(string name)                     { return GetObjectInteger(name,OBJPROP_ZORDER);    } // Приоритет графического объекта на получение события нажатия мышки на графике

Warum wird ein Teil des Codes weggelassen und ein anderer hinzugefügt? Syntaktisch ist jede Zeile gleich....