Ich führe den Optimizer (genetische Optimierung) in MT5 5.00 Build 722 aus und habe zufällig bemerkt, dass die Optimierungsergebnisse auf eine unerwartete Weise berechnet werden.
Es wurde erwartet, dass das Ergebnis bei einem geringeren Gewinn- und Erholungsfaktor kleiner ausfallen würde, aber das ist nicht der Fall - siehe Screenshot.
Aber ich fürchte, es wird Ihnen nicht gefallen. Mir zum Beispiel gefällt es nicht - das Diagramm zuckt und verdoppelt sich. Und ich wollte es besser machen - es sanft an die richtige Stelle bewegen...
// Interessant ist, dass es mit ChartRedraw() doppelt so schnell funktioniert wie ohne diese Funktion. Gleichzeitig ruckelt es mehr.
Es gibt immer noch ein Problem mit ChartNavigate(). Wird sie eines Tages repariert? Oder wird es nicht als Fehler angesehen?
Gibt es bereits einen Beitrag zu diesem Thema im Service Desk? Oder mehr hinzufügen? ))
class A {
staticboolOrderSend( constMqlTradeRequest& request, MqlTradeResult& result, bool async_mode = false )
void function();
};
void A::function()
{...
OrderSend(...) // ошибка выполнения возникает здесь
A::OrderSend(...) // не помогает
...}
Wenn wir OrderSend durch einen anderen Namen ersetzen, ist alles in Ordnung.
das Vorhandensein von Statik hat keinen Einfluss auf den Fehler
Aufrufen von A::OrderSend()- der Fehler ist davon nicht betroffen
Ich habe gehört, dass Sie sich in Ihrem Ordersend ohne : genannt haben:
Nun, ja, obwohl A::OrderSend 3 (drei) Parameter hat, aberletzteres ist der Standard und der Compiler konnte (und sollte) nicht von ::OrderSend durch die Anzahl der Parameter unterscheiden
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Grüße!
MT5 Optimizer - berechnet CustomMax korrekt?
Ich führe den Optimizer (genetische Optimierung) in MT5 5.00 Build 722 aus und habe zufällig bemerkt, dass die Optimierungsergebnisse auf eine unerwartete Weise berechnet werden.
Der Expert Advisor gibt OnTester() zurück:
Profit * Trades * (1/(MaxEquityDDPercent+1)) * RecoveryFactor
Wo:
double Profit = TesterStatistics(STAT_PROFIT);
double Trades = TesterStatistics(STAT_TRADES);
double MaxEquityDDPercent = TesterStatistics(STAT_EQUITY_DDREL_PERCENT);
double RecoveryFactor = MathAbs(TesterStatistics(STAT_RECOVERY_FACTOR));
Es wurde erwartet, dass das Ergebnis bei einem geringeren Gewinn- und Erholungsfaktor kleiner ausfallen würde, aber das ist nicht der Fall - siehe Screenshot.
Habe ich etwas nicht richtig verstanden?
Also, los geht's:
Aber ich fürchte, es wird Ihnen nicht gefallen. Mir zum Beispiel gefällt es nicht - das Diagramm zuckt und verdoppelt sich. Und ich wollte es besser machen - es sanft an die richtige Stelle bewegen...
// Interessant ist, dass es mit ChartRedraw() doppelt so schnell funktioniert wie ohne diese Funktion. Gleichzeitig ruckelt es mehr.
Es gibt immer noch ein Problem mit ChartNavigate(). Wird sie eines Tages repariert? Oder wird es nicht als Fehler angesehen?
Gibt es bereits einen Beitrag zu diesem Thema im Service Desk? Oder mehr hinzufügen? ))
Ausführungsfehler: Stapelüberlauf
Wenn wir OrderSend durch einen anderen Namen ersetzen, ist alles in Ordnung.
das Vorhandensein von Statik hat keinen Einfluss auf den Fehler
Aufrufen von A::OrderSend()- der Fehler ist davon nicht betroffen
Fehler bei der Ausführung eines Stapelüberlaufs
Wenn Sie OrderSend durch einen beliebigen anderen Namen ersetzen, ist das in Ordnung.
weil der Kontext aufgelöst werden muss
::OrderSend
Ich glaube, ich rufe nicht ::OrderSend, sondern A::OrderSend() auf.
sollte funktionieren
Ich glaube, ich rufe nicht ::OrderSend, sondern A::OrderSend() auf.
An welche Linie denken Sie?
die Sie gerade
void A::function() {... OrderSend(...) // ошибка выполнения возникает здесь вызывается именно ваша A::OrderSendWenn Sie das Terminal aufrufen wollen, tun Sie :: vor OrdersendDanke, ich habe den Grund gefunden - ich entferne die Frage - ich habe sie selbst gestellt
Ich verstehe, dass Sie sich in Ihrem Ordersend ohne ::
Ich habe mich sofort daran gewöhnt, als ich im Unterricht die Begriffe "Drucken" und "Kommentieren" neu definiert habe. Jetzt mache ich das ständig :)
Ich habe gehört, dass Sie sich in Ihrem Ordersend ohne : genannt haben: