Fehler, Irrtümer, Fragen - Seite 1783
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Frage: Wann wird OnDeinit->M5 aufgerufen?
Meine Antwort: Niemals!
Ihre Antwort oben: asynchron und mit Verzögerung
Es sind mehr als 30 Minuten vergangen und OnDeinit->M5 wurde immer noch nicht aufgerufen
Und nun ändern wir den Code des Expert Advisors (ändern Sie die Reihenfolge leicht) ...
Ergebnis:
2017.02.06 01:31:45.002 OnInit->M5
2017.02.06 01:31:48.340 OnDeinit->M5: 1 Wird sofort und ohne Verzögerung aufgerufen!
2017.02.06 01:31:48.409 OnInit->M15
Mehr als 30 Minuten sind vergangen, und es gibt immer noch keinen OnDeinit->M5-Aufruf
Und jetzt ändern wir den Expert-Code (ändern Sie die Reihenfolge leicht) ...
Bitte fügen Sie den Code bei.
Im Anhang zum letzten Beitrag mit demselben Namen. Tatsächlich wurde ein statischer Aufruf durch einen dynamischen ersetzt und das Ergebnis ist grundlegend anders
Es scheint, dass im ersten Fall das Fehlen von OnDeinit und die statische Variable, die wir vergessen haben, den Destruktor im Ergebnis aufzurufen, der Optimierung einen schlechten Streich gespielt haben.
Können Sie klarstellen, über welche Themen wir sprechen? Funktionieren nicht alle Indikatoren für dasselbe Symbol im selben Thread?
Wenn wir nur den Zeitrahmen ändern, wird die neue Kopie des Indikators im gleichen Thread wie der alte berechnet.
Wir können uns aber auch nicht darauf verlassen, dass der Deinit-Befehl auf M5 früher verarbeitet wird als der Init-Befehl auf M15
Wenn wir nur den Zeitrahmen ändern, wird die neue Kopie des Indikators im gleichen Thread wie der alte berechnet.
Aber hier können wir uns nicht darauf verlassen, dass der Deinit-Befehl auf M5 früher verarbeitet wird als der Init-Befehl auf M15.
Hallo,
Bitte achten Sie sehr genau auf die Nachricht https://www.mql5.com/ru/forum/166358/page4#comment_4064293
Dies ist sehr wichtig,
Es gibt einen neuen Fehler 1158, steht er nicht in der Hilfe?
Fehler bei der Ausführung
Zugriffsverletzung bei 0x030A00AD gelesen nach 0x00000005 in 'Test_s.ex5'
class A {};
#import "TestA.ex5"
A *error();
#import
class B { protected:
B( const string& name ) : name( name ) {}
virtual int g( const MqlParam& param[] ) const { return ::IndicatorCreate( NULL, PERIOD_CURRENT, IND_CUSTOM, ::ArraySize( param ), param ); }
const string name;
bool f( int h ) const
{
if ( ::ChartIndicatorAdd( 0, 0, h ) )
return true;
error();
return false;
}
};
class C : protected B { protected:
C( int h, string name ) : B( name ), h( h ) { f( this.h ); }
const int h;
};
class D : C { public:
D( string path ) : C( g( path ), path ) {}
int g( const string& path )
{
MqlParam param[ 1 ];
param[ 0 ].type = TYPE_STRING;
param[ 0 ].string_value = path;
return g( param );
}
};
void OnStart() { D d( "Test_i" ); }
#property library
class A {};
A * error() export { return NULL; }
Alle Dateien (außer dem Indikator) befinden sich im MQL5-Ordner\Scripts\.
Der Indikator selbst ist nicht erforderlich, kann aber z. B. vonhttps://www.mql5.com/ru/forum/1111/page1803#comment_4063671 heruntergeladen werden.
Stellen Sie es bitte unter Hilfe ein.
Eine Übersicht über die Programme in MQL5 finden Sie in der nachstehenden Tabelle:
Programm
Ausführung
Hinweis
Drehbuch
In einem eigenen Thread so viele Skripte, wie es Ausführungs-Threads für sie gibt
Ein Skript in einer Schleife kann die Arbeit anderer Programme nicht unterbrechen
Experte
In einem eigenen Thread, so viele Experten - so viele Ausführungsthreads für sie
Ein Experte in einer Schleife kann die Arbeit anderer Programme nicht stören
Indikator
Ein Ausführungsstrang für alle Indikatoren auf einem Symbol. So viele Symbole mit Indikatoren - so viele Ausführungsstränge für sie
Endlosschleife in einem Indikator stoppt alle anderen Indikatoren für dieses Symbol
Sie werden in der Form B'11111111111111111111111111111111' geschrieben.
Leider bin ich mit diesem Format nicht vertraut.
Das Experiment hat gezeigt, dass die Zahl im grafischen Puffer nach denselben Regeln dargestellt wird wie die doppelte Zahl - d. h. es ist nicht möglich, eine so lange Zahl durch den grafischen Puffer zu leiten - frustrierend.