Können die Testerprotokolle und die Agentenprotokolle (die ersten 24 sind ausreichend) eingesehen werden?
Ja, natürlich. MT5 (Build 2045) hat das gleiche Problem. Und MT5 (Build 2009) - alles ist in Ordnung. Vielleicht gab es einige Änderungen im Vergleich zu MT5 (Build 2009), insbesondere in der Logik der Bestimmung, ob ein lokaler Agent läuft oder nicht (zum Beispiel, brachte es auf die Logik der Netzwerk-Agent-Erkennung)...
MT5. Baujahr 2055. Die Funktionen ChartGetDouble(0,CHART_PRICE_MAX) und ChartGetDouble(0,CHART_PRICE_MIN) werden beim Ändern der TF nicht korrekt ausgeführt (schreiben Nullen). Und beim ersten Mal, wenn der Indikator gestartet wird, schreibt er korrekt. Wenn TF dann auf monatlichen TF immer Nullen verschoben wird, auf anderen manchmal zuerst, dann wird es normalisiert.
offsetof – это специальная команда, которая непосредственно связана в атрибутом pack. Она позволяет получить смещение члена от начала структуры.
struct Parent{
char c; // sizeof(char)=1
};
struct Children pack(2) : Parent{
short s; // sizeof(short)=2
};
voidOnStart(){
//--- объявим переменную типа Children
Children child;
//--- узнаем смещения от начала структуры Print("offsetof(child.c)=",offsetof(child.c));
Print("offsetof(child.s)=",offsetof(child.s));
}
Zuerst war ich überrascht, denn ich wusste nicht, dass es Offsetof gibt. Aber die Realität hat alles auf den Kopf gestellt:
Wenn Sie ein Signal aus dem Bereich Signale öffnen, können Sie ein Beispiel für eine Infografik sehen:
Normalerweise besteht der Zweck einer Infografik darin, dem Endnutzer die Vor- und Nachteile einer Reihe von Eigenschaften des untersuchten Objekts zu vermitteln. Das Wesen dieser Infografik wird jedoch nicht deutlich, wenn ein 100%iger Drawdown als 100%iges Ergebnis im Diagramm angezeigt wird. Außerdem wird derselbe Indikator zweimal im selben Diagramm verwendet: einmal in positiver und einmal in negativer Form (Indikatoren für "Profitable Trades" und "Losing Trades").
Vorgeschlagene Änderungen: 1. Führen Sie einen Countdown für die Indikatoren "Maximaler Drawdown", "Maximale Einzahlungslast" und "Verlorene Trades" ein (je kleiner der Wert, desto größer der Indikatorwert im Diagramm); 2. Ersetzen Sie einen der duplizierten Indikatoren ("Profitable Trades" oder "Losing Trades") durch einen neuen Indikator (z.B. die durchschnittliche Abweichung der Kauf-/Verkaufsmenge, oder etwas anderes); 3. Ersetzen Sie bei bestimmten Indikatoren, wie z. B. "Maximaler Drawdown" und "Maximale Einzahlungslast", die allgegenwärtige %-Skala im Diagramm durch eine logarithmische oder andere Anzeigeskala. Ziel ist es, die Wirkung des Indikators auf die Attraktivität des Signals zu erhöhen.
boolArrayInsert(
void& dst_array[], // receiving array constvoid& src_array[], // source array uintdst_start, // receiver array index to be inserted uint src_start=0, // source array index to be copied uint count=WHOLE_ARRAY// number of elements to insert
);
intArrayCopy(
void& dst_array[], // destination array constvoid& src_array[], // source array intdst_start=0, // index starting from which write into destination array int src_start=0, // first index of a source array int count=WHOLE_ARRAY// number of elements
);
Unterschiede bei fast "identischen" Funktionen: 1. kein Standardparameter für ArrayInsert. 2. das Fehlen einer "Standard"-Parameterbeschreibung.
Die Verwendung unterschiedlicher Datentypen für dieselben Parameter (int, uint) ist unter dem Gesichtspunkt der Kompatibilität nachvollziehbar.
Kann mir jemand sagen, wie man den Bilanzbericht im letzten Gewinnfenster auch Swaps und Provisionen einbeziehen kann?
Oder wie man es macht?
Es ist unpraktisch, den Gewinn zu betrachten und dann festzustellen, dass die Provisionen und Swaps abgezogen werden müssen. Das ist furchtbar ärgerlich!
Können die Testerprotokolle und die Agentenprotokolle (die ersten 24 sind ausreichend) eingesehen werden?
Ja, natürlich. MT5 (Build 2045) hat das gleiche Problem.
Und MT5 (Build 2009) - alles ist in Ordnung.
Vielleicht gab es einige Änderungen im Vergleich zu MT5 (Build 2009), insbesondere in der Logik der Bestimmung, ob ein lokaler Agent läuft oder nicht (zum Beispiel, brachte es auf die Logik der Netzwerk-Agent-Erkennung)...
MT5. Baujahr 2055.
Die Funktionen ChartGetDouble(0,CHART_PRICE_MAX) und ChartGetDouble(0,CHART_PRICE_MIN) werden beim Ändern der TF nicht korrekt ausgeführt (schreiben Nullen).
Und beim ersten Mal, wenn der Indikator gestartet wird, schreibt er korrekt. Wenn TF dann auf monatlichen TF immer Nullen verschoben wird, auf anderen manchmal zuerst, dann wird es normalisiert.
Ergebnis:
https://www.mql5.com/ru/docs/basis/types/classes
offsetof – это специальная команда, которая непосредственно связана в атрибутом pack. Она позволяет получить смещение члена от начала структуры.
Aber die Realität hat alles auf den Kopf gestellt:
https://www.mql5.com/ru/docs/basis/types/classes
Zunächst war ich überrascht, denn ich wusste nicht, dass es Offsetof gibt.Aber die Realität hat alles auf den Kopf gestellt:
Sie selbst haben geschrieben
Wenn Sie ein Signal aus dem Bereich Signale öffnen, können Sie ein Beispiel für eine Infografik sehen:
Normalerweise besteht der Zweck einer Infografik darin, dem Endnutzer die Vor- und Nachteile einer Reihe von Eigenschaften des untersuchten Objekts zu vermitteln.
Das Wesen dieser Infografik wird jedoch nicht deutlich, wenn ein 100%iger Drawdown als 100%iges Ergebnis im Diagramm angezeigt wird.
Außerdem wird derselbe Indikator zweimal im selben Diagramm verwendet: einmal in positiver und einmal in negativer Form (Indikatoren für "Profitable Trades" und "Losing Trades").
Vorgeschlagene Änderungen:
1. Führen Sie einen Countdown für die Indikatoren "Maximaler Drawdown", "Maximale Einzahlungslast" und "Verlorene Trades" ein (je kleiner der Wert, desto größer der Indikatorwert im Diagramm);
2. Ersetzen Sie einen der duplizierten Indikatoren ("Profitable Trades" oder "Losing Trades") durch einen neuen Indikator (z.B. die durchschnittliche Abweichung der Kauf-/Verkaufsmenge, oder etwas anderes);
3. Ersetzen Sie bei bestimmten Indikatoren, wie z. B. "Maximaler Drawdown" und "Maximale Einzahlungslast", die allgegenwärtige %-Skala im Diagramm durch eine logarithmische oder andere Anzeigeskala. Ziel ist es, die Wirkung des Indikators auf die Attraktivität des Signals zu erhöhen.
Warum können Strukturen tief kopieren, aberArrayCopy, auch wenn die Klasse einen Kopierkonstruktor hat, kann nichts tun und gibt einen Kompilierungsfehler?
"Das ist nicht normal, das ist nicht fair!" ©
Unterschiede bei fast "identischen" Funktionen:
1. kein Standardparameter für ArrayInsert.
2. das Fehlen einer "Standard"-Parameterbeschreibung.
Die Verwendung unterschiedlicher Datentypen für dieselben Parameter (int, uint) ist unter dem Gesichtspunkt der Kompatibilität nachvollziehbar.
Kein Standardparameter für ArrayInsert.
Warum können Strukturen tief kopieren, aberArrayCopy, auch wenn die Klasse einen Kopierkonstruktor hat, kann nichts tun und gibt einen Kompilierungsfehler?
"Das ist nicht normal, das ist nicht fair!" ©
Ich musste selbst ein vollwertiges ArrayCopy implementieren.
Ich glaube nicht, aber vielleicht findet es ja jemand nützlich...
Ergebnis: