Fehler, Irrtümer, Fragen - Seite 1634

 
fxsaber:
LifeHack: eine beliebige Anzahl von Visualisierungsfenstern erhalten.
Führen Sie einen History-Debug vom Metaeditor aus durch - STRG+F5. Schließen Sie nicht das erscheinende Visualisierungsfenster, sondern schließen Sie das Terminalfenster. Dann fangen Sie ganz von vorne an. Auf diese Weise erscheinen neue Visualisierungsfenster, die bei der Analyse von Änderungen der EA-Ergebnisse in Abhängigkeit von den im Code vorgenommenen Änderungen nützlich sind.

Es könnte noch einfacher sein. So starten Sie die Visualisierung mit einer Vorwärtsbewegung.

Die nächste Visualisierung wird auf der zweiten, vorderen, Visualisierung gestartet

 
fxsaber:
Ich würde gerne unter Tester->Einstellungen die Option "Vorherige Protokolle nach dem Start löschen" sehen. Es ist ermüdend, jedes Mal auf "Protokolle löschen" in Tester->Journal zu klicken. Natürlich können Protokolle von früheren Backtests in seltenen Fällen nützlich sein. Die meiste Zeit werden sie nicht benötigt. Daher wäre die Option, alte Protokolle automatisch zu löschen, sowohl aus Gründen der Bequemlichkeit als auch um Platz auf der Festplatte/SDD zu sparen, nützlich.
Das ist richtig."Kann sich in seltenen Fällenals nützlich erweisen "
 
fxsaber:
Woher weiß ich, ob der Hedge-Modus auf dem Konto/Tester ein-/ausgeschaltet ist? In der Offline-Hilfe wird dies nicht erwähnt.

Fahren Sie mit der Maus über das Konto im Navigator. Sie können es im Tooltip des Kontos sehen.

Wenn Sie eine Verbindung zum Konto herstellen, steht im Terminalprotokoll Netting oder Hedging

 

Zuvor in Antrag #1534780 über führende Konstruktoraufrufe, bei denen das Ergebnis des angehängten Codes war

2016.08.10 16:39:26.982 Test (GBPUSD,M15) void A::~A():12855
2016.08.10 16:39:26.982 Test (GBPUSD,M15) OnDeinit:3
2016.08.10 16:39:26.975 Test (GBPUSD,M4) void A::A():17233
2016.08.10 16:39:15.587 Test (GBPUSD,M15) void A::A():12855

die Antwort (*) lautete wie folgt:

Support-Team 2016.08.11 13:35

Es gibt keinen führenden Aufruf, wenn Sie den Zeitrahmen ändern, wird ein neuer Indikator erstellt (geklont), dann wird der vorherige Indikator gelöscht.


Wenn ja, dann zeigt das folgende Beispiel einen verzögerten Konstruktoraufruf

Abfolge der Aktionen:

  1. Öffnen Sie ein neues Diagramm von GBPUSD,M15
  2. Ändern Sie den Zeitrahmen auf H1
  3. Hängen Sie den Indikator Test.ex5 an das Diagramm an
  4. Ändern Sie den Kartenzeitraum auf M15

Ergebnis:

2016.08.11 15:51:51.188 Test (GBPUSD,M15) void A::A():17936
2016.08.11 15:51:50.932 Test (GBPUSD,H1) void A::~A():12285
2016.08.08.11 15:51:50.931 Test (GBPUSD,H1) OnDeinit:3
2016.08.11 15:51:39.421 Test (GBPUSD,H1) void A::A():12285

es sollte sein (siehe *) - die unterstrichene Zeile sollte an 2. Stelle stehen (in der Zeit), nicht an letzter Stelle

//Test.mq5
class A { public:
        A() : a( MathRand()) { Print( __FUNCSIG__, ":", a ); }
        virtual ~A()         { Print( __FUNCSIG__, ":", a ); }
        int a;
};
static A a;
void OnInit() {}
void OnDeinit( const int reason ) { Print( __FUNCTION__, ":", reason ); }
int OnCalculate( const int rates_total, const int, const int, const double& [] ) { return rates_total; }
 

DieIndikatorberechnung findet in einem separaten Symbol-Thread statt, das Setzen der Chart-Periode und das Erstellen eines Klons erfolgt in einem GUI-Thread

Aus diesem Grund kann es vorkommen, dass ein neuer Indikator berechnet wird, bevor der vorherige gelöscht wird und umgekehrt.

Zeichenflussoperation (abstrakt)

  1. Aktion Nr. 1
  2. Aktion #2
  3. Aktion #3 - Berechnung der Indikatoren
  4. Aktion #4
  5. Aktion Nr. 5 - Überprüfung und Löschung nicht verwendeter Indikatoren
  6. Aktion #6
  7. Aktion #N
  8. mit Schritt 1 fortfahren, wenn der Fluss nicht gestoppt wird

Die Reihenfolge der Initialisierung eines neuen Indikators und des Löschens des alten Indikators hängt davon ab, an welcher Stelle der Symbolstrom war.

 
Slawa:
Das ist richtig."kann sich in seltenen Fällenals nützlich er weisen".
Es ist also logisch, keine Gigabytes zu schreiben, wenn der Benutzer dies ausdrücklich wünscht. Sie müssen sie ohnehin manuell reinigen.
 
Slawa:

Fahren Sie mit der Maus über die Rechnung im Navigator. Sie sehen den Tooltip des Kontos.

Nach der Verbindung mit dem Konto zeigt das Terminalprotokoll Netting oder Hedging an

Wie?
 
fxsaber:
Wie programmatisch?!
ENUM_ACCOUNT_MARGIN_MODE margin_mode=(ENUM_ACCOUNT_MARGIN_MODE)AccountInfoInteger(ACCOUNT_MARGIN_MODE);
bool is_hedging=(margin_mode==ACCOUNT_MARGIN_MODE_RETAIL_HEDGING);
 
fxsaber:
Woher weiß ich, ob der Hedge-Modus auf dem Konto/Tester ein-/ausgeschaltet ist? In der Offline-Hilfe wird kein Wort darüber verloren.

MQL5 Referenz - Standardkonstanten, Aufzählungen und Strukturen - Umgebungszustand - Kontoinformationen - ENUM_ACCOUNT_MARGIN_MODE

MQL5 Referenzhandbuch - Kontoinformationen - AccountInfoInteger - ENUM_ACCOUNT_INFO_INTEGER - ENUM_ACCOUNT_MARGIN_MODE

MQL5\Include\Trade.mqh - CTrade::IsHedging

 
Slawa:

MQL5 Referenz - Standardkonstanten, Aufzählungen und Strukturen - Umgebungszustand - Kontoinformationen - ENUM_ACCOUNT_MARGIN_MODE

MQL5 Referenzhandbuch - AccountInfoInteger - ENUM_ACCOUNT_INFO_INTEGER - ENUM_ACCOUNT_MARGIN_MODE

MQL5\Include\Trade.mqh - CTrade::IsHedging

Ich danke Ihnen! Entschuldigung, ich habe nach dem Wort "Hedge" gesucht.