Fehler, Irrtümer, Fragen - Seite 51

 

Ich sehe, dass die Verwirrung auf eine Sache hinausläuft: Wie manifestiert sie sich?

Ich erkläre es Ihnen: Wenn ein neuer Tick kommt, friert er für eine halbe Sekunde ein und es werden keine Funktionen ausgeführt, danach wird die Ausführung fortgesetzt, als ob die angehaltenen Funktionen bereits ausgeführt worden wären,

Wenn Sie also das Array mit 1 2 3 4 5 6 nummerieren und ein Tick bei Nummer 4 eintrifft, wird das Array mit 1 2 3 5 6 nummeriert

(dies ist ein Beispiel, keine konkrete Ausführung).

Aber die Ausführung ist die gleiche,

Bei jeder Iteration werden die Kugeln um eine Position verschoben,

wenn ein Tick kommt, können einige Kugeln sogar aus der Anzeige herausfallen (es ist deutlich sichtbar, wenn Sie eine Verzögerung in das Skript unter 500, gut, für verschiedene Maschinen ist anders, vielleicht auf einem leistungsstarken Rechner Verzögerung sollte 100 zu manifestieren glitch) ,

und dann bei neuen Iterationen wiederhergestellt werden, das gleiche passiert, wenn Sie den Hintergrund laden (vor allem erscheint es bei hoher Auflösung Schritt 4-3 und unten)

Tritt nur deshalb häufiger auf niedrigeren Stapeln auf, weil die Hintergrundladezeit bei so vielen Objekten höher ist, bzw. die Wahrscheinlichkeit höher, unter den Druck eines neuen Ticks zu geraten.

 
stringo:

Wenn ein Tick auf dem Client-Terminal erscheint, muss er an mehreren Stellen gleichzeitig angewendet werden - in der Marktübersicht, in der Historie, in offenen Charts. Gleichzeitig werden die Indikatoren neu berechnet. Was wollen Sie?

Wenn Sie nur einen einzigen Kern haben und die Diagramme bis zum Maximum geöffnet sind, verlangsamt sich natürlich die Implementierung anderer Komponenten - die Ressourcen müssen gemeinsam genutzt werden.

Das ist im Allgemeinen eine seltsame Formulierung. Was hat OnTick() damit zu tun und wie beeinträchtigt es andere Funktionen?

In einem System läuft ein Programm MT-5 im visuellen Modus, ein Chart ist in MT-5 geöffnet, ein Skript (oder Advisor) läuft auf dem Chart.

Und bei all dem, um die Koordinaten von drei Objekten zu ändern, bleibt nicht genug Zeit für die Maschine, wenn ein neuer Tick kommt ????.

 
Urain:

Und bei all dem, um die Koordinaten von drei Objekten zu ändern, bleibt nicht genug Zeit für die Maschine, wenn ein neuer Tick kommt ????.

Vergessen Sie nicht, dass gleichzeitig 3600 Label-Textobjekte auf dem Bildschirm zu sehen sind, die auf nicht sehr ökonomische Weise gezeichnet wurden (Kreise in Schrift zu zeichnen ist offensichtlich kurzsichtig).

Versuchen Sie, ein BMP-Bild anstelle von 3600 Objekten einzufügen, um eine bessere Leistung zu erzielen.

Ohne Substrat von 3600 Objekten fliegt alles.

 
Renat:

Es sollte nicht vergessen werden, dass 3600 Label-Textobjekte gleichzeitig auf dem Bildschirm zu sehen sind, die auf nicht sehr ökonomische Weise gezeichnet werden (Kreise in Schrift zu zeichnen ist offensichtlich kurzsichtig).

Versuchen Sie, ein BMP-Bild anstelle von 3600 Objekten einzufügen - es wird viel langsamer sein.

Ohne ein Substrat von 3600 Objekten fliegt alles.

Dies war mein ursprünglicher Plan (der Hintergrund sollte je nach aktueller Marktlage erst beim Laden erstellt werden),

Ich kann keinen Hintergrund aus Punkten erstellen, aber er wird nur in gif gespeichert,

Ich muss bmp herunterladen,

Sie können keine mql-Tools verwenden, Sie brauchen ein mql-Übersetzungsprogramm eines Drittanbieters (ich wollte alles in mql machen).

Ich möchte zeigen, wie einfach es ist, die Händler dazu zu bringen, mit mir zu arbeiten.

(und Sie müssen es an Preis und Zeit binden).

Ich versuche herauszufinden, wie man das mit einem 3-Meter-Schritt=3 machen kann, es gibt etwa 40.000 davon.

 

Höchstwahrscheinlich werden wir das neue grafische Objekt in eine bearbeitbare Bitmap und eine Reihe von primitiven Operationen umwandeln.

Auf diese Weise wird es möglich sein, komplexe Grafiken innerhalb eines einzigen Objekts zu zeichnen, wodurch die Notwendigkeit entfällt, Hunderte oder Tausende von Objekten zu verwalten.

 
Renat:

Höchstwahrscheinlich werden wir ein neues grafisches Objekt in Form einer bearbeitbaren Bitmap und eine Reihe von primitiven Operationen auf dieser erstellen.

Auf diese Weise wird es möglich sein, komplexe Grafiken innerhalb eines einzigen Objekts zu zeichnen, wodurch die Notwendigkeit entfällt, Hunderte oder Tausende von Objekten zu verwalten.


Das wäre großartig, denn ich habe solche Situationen schon oft bei 4,

Es ist klar, dass Sie in erster Linie in Handelsaufträge investiert haben, und die Grafik ist zweitrangig.

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

alles ist deaktiviert, der automatische Handel ist verboten, aber die Meldungen kommen weiterhin, d.h. es stellt sich heraus, dass der Experte arbeitet, es sind die Meldungen des Experten... es sollte nicht so sein

 
Prival:

alles ist deaktiviert, der automatische Handel ist verboten, aber die Meldungen gehen, d.h. es stellt sich heraus, dass der Expert Advisor funktioniert, es sind die Meldungen des Expert Advisors... so sollte es nicht sein

Was mich betrifft, so bedeutet das Verbot des "automatischen Handels" nicht, dass der EA nicht funktioniert. Offenbar gibt es im Code des EA keine zusätzlichen Prüfungen für mögliche Handelsprobleme...
 
Prival:

alles ist deaktiviert, der automatische Handel ist verboten, aber die Meldungen kommen weiterhin, d.h. es stellt sich heraus, dass der Experte arbeitet, es sind die Meldungen des Experten... es sollte nicht so sein

Sie haben Recht, der Expert Advisor ist nicht verboten, nur der Autotrading ist verboten.

Hier ist eine Referenz

Разрешить/запретить совершение торговых операций советниками и скриптами. Функция данной кнопки аналогична настройке терминала на вкладке "Советники".

Ich denke, dass dieses Verbot vom Terminal ausgeht.

Daher sollten Sie die Funktion AccountInfoInteger(ACCOUNT_TRADE_EXPERT) vor Handelsaufträgen verwenden, um Fehlermeldungen im Protokoll zu vermeiden, wenn Sie Aufträge erteilen

 

Nur die Handelsoperationen sind verboten, und der Expert Advisor arbeitet und versucht, mit den entsprechenden Fehlern zu handeln. Um dies zu verhindern, muss der Status des Terminals überprüft werden, bevor die Analyse für Handelsoperationen mit

if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала - Документация по MQL5