Fehler, Irrtümer, Fragen - Seite 2301

 
Artyom Trishkin:

Für ein Textobjekt, das sich auf High[] befindet, muss der Ankerpunkt (Eigenschaft OBJPROP_ANCHOR) auf ANCHOR_LOWER (Ankerpunkt in der unteren Mitte) gesetzt werden.

Bei einem Textobjekt, das sich auf Low[] befindet, muss der Ankerpunkt (Eigenschaft OBJPROP_ANCHOR) auf ANCHOR_UPPER (Ankerpunkt in der oberen Mitte) gesetzt werden.

Oder ANCHOR_CENTER für beide Standorte, der Ankerpunkt wird zentriert.

Versuchen Sie es.

Dazu müssen jedoch ZWEI Objekte mit den Namen Hi und Lo (oberes und unteres Ende eines Zickzackkurses oder oberes und unteres Ende des aktuellen lokalen Aufwärts- oder Abwärtstrends) erstellt und beide mit den entsprechenden Werten von ANCHOR_LOWER und ANCHOR_UPPER an das Diagramm gebunden werden. Wäre es nicht einfacher, den oberen Teil des Zickzacks (irgendwie) an den vorher "gebundenen" unteren Teil zu binden? Ich habe in etwa Folgendes getan, indem ich der vorherigen Funktion eine Zeile hinzugefügt habe

ObjectSetInteger(0,Obj,OBJPROP_ANCHOR,ANCHOR_CENTER); und Einführung einer "Offset-Korrektur" in die Ausgabezeile if(tvT) ORT(kBtT,Low[kBtT]-2*_Point,DtT,LowClr); else ORT(kBtT,High[kBtT]+2*_Point,DtT,HighClr); //

Bislang scheint es zu funktionieren. Ich danke Ihnen!

 
aleger:

Dazu müssen jedoch ZWEI Objekte mit den Namen Hi und Lo (oberes und unteres Ende des Zickzackkurses bzw. oberes und unteres Ende des aktuellen lokalen Aufwärts- oder Abwärtstrends) erstellt und beide mit den entsprechenden Werten von ANCHOR_LOWER und ANCHOR_UPPER an das Diagramm gebunden werden. Wäre es nicht einfacher, den oberen Teil des Zickzacks (irgendwie) an den vorher "gebundenen" unteren Teil zu binden? Ich habe in etwa Folgendes getan, indem ich der vorherigen Funktion eine Zeile hinzugefügt habe

ObjectSetInteger(0,Obj,OBJPROP_ANCHOR,ANCHOR_CENTER); und Einführung einer "Offset-Korrektur" in die Ausgabezeile if(tvT) ORT(kBtT,Low[kBtT]-2*_Point,DtT,LowClr); else ORT(kBtT,High[kBtT]+2*_Point,DtT,HighClr); //

Bis jetzt scheint es zu funktionieren. Ich danke Ihnen!

Was soll das bringen? Sie können die Anlage jederzeit ändern. Oder übersehe ich etwas? Sie ändern die Farbe. Ändern Sie also das Gestänge.

 

Nach dem Schließen des Debug-Viewer-Fensters, dem erneuten Kompilieren und dem Ausführen eines einzelnen Laufs im Tester ohne Visualisierung erhielt ich Folgendes

2018.09.27 14:01:52.784 Core 1  agent process started
2018.09.27 14:01:52.784 Core 1  connecting to 127.0.0.1:3000
2018.09.27 14:02:11.358 Core 1  tester agent authorization error
2018.09.27 14:04:15.875 Core 1  no connection
2018.09.27 14:04:15.875 Core 1  connect error

Ich konnte 20 Sekunden lang nichts tun. Die Schaltfläche Start war die ganze Zeit über ausgegraut.


Logbuch des Agenten.

DM      3       14:01:49.711    Tester  close visual tester window
RH      0       14:01:49.711    Tester  shutdown tester machine
LN      0       14:01:54.186    Server  MetaTester 5 stopped


Aus den Protokollen geht hervor, dass der Tester um 01:52 Uhr versucht hat, eine Verbindung zum Agenten herzustellen, der Agent (Server) selbst aber erst um 01:54 Uhr angehalten wurde. Daher die Unfähigkeit, sich zu verbinden und aufzuhängen. Es handelt sich um einen seit langem bestehenden Fehler, aber zumindest ist die Ursache jetzt klar.

 

Profilergebnisse zu historischen Daten


Der interne OrderSend benötigt ein Drittel der Zeit. Wie kommt es zu solch unangenehmen Ergebnissen?

 
fxsaber:

Profilergebnisse zu historischen Daten


Der interne OrderSend benötigt ein Drittel der Zeit. Wie kommt es zu solch unangenehmen Ergebnissen?

In der Testversion befindet sich die gesamte Handelslogik hier und nicht auf dem Handelsserver.

 
Slava:

In der Testversion befindet sich die gesamte Handelslogik hier und nicht auf dem Handelsserver.

Fast drei Millionen Ticks und nur 16K OrderSend. Aber diese Handelsaufträge benötigen ein Drittel der Zeit. Und bei jedem Tick gibt es Berechnungen im Expert Advisor.

Daher meine Frage. Könnten Sie den Code von OrderSend mit dem Profiler ausführen? An welcher Stelle gibt es ein solches Hindernis?

Ich gehe davon aus, dass es schneller geht, wenn Sie die Standardfunktion durch Ihre eigene ersetzen. Wahrscheinlich gibt es einige teure Prüfungen und Gesten in OrderSend. Wenn z.B. keine History-Funktionen und OnTrade* im Expert Advisor (+ Indikatoren) vorhanden sind, dann ist die Bildung der entsprechenden Datensätze/Ereignisse reine Zeitverschwendung.

Ich verstehe, dass ein Lauf für manche Menschen viele Minuten dauert. Aber es gibt Fälle wie oben - Einheiten von Sekunden, wenn man auf die Geschwindigkeit der Ausführung achtet. Und hier stellt sich heraus, dass ich Optimize drei Stunden lang starte, und davon ist eine Stunde OrderSend, dessen durchschnittliche Ausführungszeit 69 µs beträgt (siehe Screenshot):

  • TRADE_ACTION_PENDING - 104µs.
  • TRADE_ACTION_SLTP/TRADE_ACTION_MODIFY/TRADE_ACTION_REMOVE - 68 Mikrosekunden.
 
Ich habe den Tester viele Male profiliert. Und ich weiß, wo der Haken an der Sache ist. Dabei handelt es sich um finanzielle Berechnungen, die mehrere Normalisierungen der Ergebnisse auf die Anzahl der Ziffern der Einzahlungswährung beinhalten
 
Slava:
Ich habe den Tester viele Male profiliert. Und ich weiß, wo der "Haken" ist. Dabei handelt es sich um finanzielle Berechnungen, die mehrere Normalisierungen der Ergebnisse auf die Anzahl der Ziffern der Einzahlungswährung beinhalten

Ich werde meine OrderSend schreiben und sie vergleichen.

 
Hallo zusammen! Es ist ein sehr verlockendes Geschäft, aber ich weiß nicht, ich habe oft das Gefühl, dass alle Gewinne und Verluste in Monaten oder Jahren im besten Fall gleich Null sind.Ich möchte niemanden in diesem Geschäft enttäuschen, es ist jedermanns Entscheidung, aber ich werde nie mit einer sehr wichtigen Tatsache in diesem Geschäft zufrieden sein, dem SPARK (SPARK ist, wenn ein Geschäft mit -16 Punkten oder -21 Punkten eröffnet wird) bei 16 oder 21 Punkten oder sogar 34 Punkten, anscheinend schwebt es, weiß Gott, wie kann ich also Geld verdienen?Ich habe nur eine Frage: Sagen Sie mir, wer mehr Erfahrung hat, so ein großer Aufschlag ist die Hand meines Brokers (mein Broker sagt, er hat keinen Aufschlag und dass er ihn von einem Liquiditätsanbieter bekommt) oder es betrifft alle im Allgemeinen, sagen Sie mir im Detail, wenn er den Aufschlag hat und wie viele Punkte.
 
Bitte beachten Sie diesen Beitrag (oder ich kann ihn hierher verschieben und er kann dort vernichtet werden): https://www.mql5.com/ru/forum/281440
Помогите разобраться (баг или я не понимаю чего?)
Помогите разобраться (баг или я не понимаю чего?)
  • 2018.09.28
  • www.mql5.com
Всем привет, сразу к делу...