Fehler, Irrtümer, Fragen - Seite 578

 
Fia:

2) Gibt es in MQL5 eine Funktion zum Löschen eines Elements (eines in der Mitte des Arrays) aus einem dynamischen Array i? Wenn nein, wie lässt sich das am besten mit der Sprache bewerkstelligen?

Es gibt in der Sprache keine vorgefertigten Funktionen dafür, aber die Standardbibliothek enthält Basic Object Class CArrayObj
 

Guten Tag

Bitte sagen Sie mir, wie das Diagramm zu Bilanz und Eigenkapital in diesem Beispiel zu interpretieren ist


Warum divergieren die Diagramme sofort an einem Punkt und konvergieren zu unterschiedlichen Zeitpunkten (bei gleichem Niveau auf "y"). Es scheint, als wüsste man zum Zeitpunkt der Eröffnung der Saldengrafik nicht, dass sie sich erhöhen wird.

Oder vielleicht verstehe ich es nicht.

Danke.

 
papaklass:
Okay, Ihr Standpunkt ist klar. In der Tat, lassen Sie uns mit dieser Bemerkung schließen. Vielen Dank für die Zeit, die Sie sich genommen haben, um meine Fragen zu beantworten.

Ich werde das an einem einfachen Beispiel erklären.

Eine Frau kann in neun Monaten ein Kind bekommen. Neun Frauen werden in einem Monat kein einziges Kind zur Welt bringen.

Hier geht es um die Frage nach der Möglichkeit, mehrere aufeinanderfolgende Ticks parallel in mehreren Threads zu verarbeiten. Der Punkt ist, dass in den meisten Fällen das Ergebnis der Verarbeitung eines Ticks einen großen Einfluss auf das Ergebnis der Verarbeitung des nächsten Ticks hat. Grob gesagt, können Sie bei 4 Threads 4 Handelsoperationen gleichzeitig durchführen, anstatt einer beim ersten Tick

 
olyakish:

Hallo.

Bitte sagen Sie mir, wie die Bilanz-/Eigenkapitaltabelle in diesem Beispiel zu interpretieren ist


Warum die Diagramme an einem Punkt gleichzeitig divergieren und zu verschiedenen Zeitpunkten konvergieren (auf derselben Höhe von "y"). Es scheint, als wüsste man zum Zeitpunkt der Eröffnung der Saldengrafik nicht, dass sie sich erhöhen wird.

Oder vielleicht verstehe ich etwas nicht.

Danke.


Auf dem Balken, auf dem der Handel eröffnet wurde, stieg der Kurs und der Handel ging in den roten Bereich, wurde aber nicht geschlossen - es kam zu einem Drawdown, auf den nächsten Balken "bewegte er sich nach rechts" und vielleicht auf dem letzten oder vorletzten Balken ging er unter den Schlusskurs und daher wurde das Eigenkapital höher als das Endergebnis, auf dem letzten Balken wurde der Handel geschlossen und das Eigenkapital wurde gleich dem Saldo

Und Sie hatten zwei Geschäfte, von denen eines mit Gewinn und das andere mit Null abgeschlossen wurde, aber der Aktienkurs schwankte immer noch.

 
Rosh:
Es gibt keine vorgefertigten Funktionen dafür in der Sprache, aber die Standardbibliothek hat . Die Objekt-Basisklasse CArrayObj
Vielen Dank für die Antworten!
 
Lazarev:

auf dem Balken, auf dem der Handel eröffnet wurde, stieg der Kurs und der Handel ging in die roten Zahlen, wurde aber nicht geschlossen - es kam zu einem Drawdown, auf den nächsten Balken "bewegte er sich nach rechts" und vielleicht auf dem letzten oder vorletzten Balken ging er unter den Schlusskurs und deshalb wurde die Equity höher als das Endergebnis; auf dem letzten Balken wurde der Handel geschlossen und die Equity wurde gleich dem Saldo

Und Sie hatten zwei Geschäfte, von denen eines profitabel war und das andere mit null Eigenkapital geschlossen wurde, das immer noch schwankte

>Auf demselben Balken, auf dem der Handel eröffnet wurde, stieg der Kurs und der Handel ging zurück, wurde aber nicht geschlossen - es kam zu einem Drawdown,

Inanspruchnahme des Eigenkapitals, aber nicht des Saldos. => Saldo sollte in einer Zeile stehen (nicht ändern)

>Sie haben zwei Geschäfte, von denen eines mit Gewinn abgeschlossen wurde und das andere mit Null Eigenkapital (allerdings schwankte das Eigenkapital noch).

Eigentlich handelt es sich um einen einzigen Handel, der aus einem Sell-in (Eröffnung einer Verkaufsposition) und einem Buy-out(Schließung einer Verkaufsposition ) besteht.

 
papaklass:

2. Sie sollten sich auf mein Niveau begeben und mir und anderen wie mir erklären, ohne Snobismus, in einer Sprache, die ich verstehen kann. Warum kann man bei einem Tester in einem einzigen Durchgang nicht die gesamte Leistung des Computers nutzen? Ich denke, die Parametrisierung von Event-Handlern kann auch zum selben Thema gehören.

Ich habe gerade versucht, es Ihnen zu erklären. Sie können aufeinanderfolgende Ticks nicht parallel verarbeiten, da das Ergebnis der Verarbeitung eines Ticks die Verarbeitung des nächsten Ticks beeinflusst.

Wo könnten parallele Berechnungen in einem Prüfgerät verwendet werden? Nur bei der Berechnung der Indikatoren. Während ein Tick verarbeitet wird, berechnen wir die Indikatorwerte für den/die nächsten Tick(s). Wir haben viel Zeit damit verbracht (und tun es immer noch), die Leistung des Systems zu steigern, und wir haben auch diese Möglichkeit in Betracht gezogen.

Die Parametrisierung von Ereignishandlern ist eine etwas andere Sache. Und wir haben die parametrisierten Ereignisse noch nicht aufgegeben

 
Standardfunktionen zur Umwandlung des Typs int in Beispiel

doubleMathRound(
double-Wert//gerundeter Wert
);

Gibt doppelte Fehler zurück, aber die Warnungen sind sehr ärgerlich

möglicher Datenverlust aufgrund von Typumwandlung Tester.mqh 192 20

0 Fehler, 22 Warnung(en) 1 23

Gibt es eine Umgehungsmethode.

Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - Документация по MQL5
 
ivandurak:

Gibt es eine Methode zur Umgehung der .spz

Geben Sie die Typen ausdrücklich an. Dann wird es keine Warnungen geben.

D.h.

int i = int(MathRound(5.5));
или
int i = (int)MathRound(5.5);
 

papaklass:

2. Sie sollten sich auf mein Niveau begeben und mir und anderen wie mir erklären, ohne Snobismus, in einer Sprache, die ich verstehen kann. Warum kann man in einem Testgerät in einem einzigen Durchgang nicht die gesamte Leistung des Computers nutzen? Die Parametrisierung von Ereignishandlern kann meines Erachtens auch auf das gleiche Thema bezogen werden.

1. Eine Parametrisierung kann vorgenommen werden. Aber das ist für die Entwickler teuer und hat offensichtlich keine Priorität.

2. Sie können in dieser Orchestrierung wirklich kein Threading implementieren. Nicht nur, dass sie Zeit und andere Ressourcen kostet, sie wird auch in Form einer Standardlösung für die meisten Benutzer (die offensichtlich keine professionellen Programmierer sind) eine Menge Probleme verursachen.

Sie müssen entweder die Architektur der Plattform selbst ändern oder etwas sehr Schwerfälliges schaffen, das mit zusätzlichen Ressourcen und Technologien verbunden ist.

Grund der Beschwerde: