Mein Zeitreihen-Array wird in der Zeichenfolge der Handelsereignisdefinition nicht aktualisiert (wenn eine neue Kerze erscheint), bzw. sein Wert ändert sich nicht, wenn eine neue Kerze erscheint.
if(T[i]!=iTime(NULL,TF[i],1))
T[i] wird zum ersten Mal beim Start des Expert Advisors gesetzt, und dann, wenn eine neue Kerze erscheint, wird der Wert aktualisiert.
Der Parameter I wird auf der Grundlage der Eingangsparameter festgelegt.
Was ist interessant, die Version, wo ich mehrere TFs verwendet, um zu arbeiten, und musste eine for-Schleife verwenden, weil das, alles funktionierte gut, aber es scheitert hier - es ist nicht aktualisiert, und das ist es...(
Mein Zeitreihen-Array wird in der Zeichenfolge der Handelsereignisdefinition nicht aktualisiert (wenn eine neue Kerze erscheint), bzw. sein Wert ändert sich nicht, wenn eine neue Kerze erscheint.
T[i] wird zum ersten Mal beim Start des Expert Advisors gesetzt, und dann, wenn eine neue Kerze erscheint, wird der Wert aktualisiert.
Der Parameter I wird auf der Grundlage der Eingangsparameter festgelegt.
Interessant ist, dass ich mehrere TFs verwendet habe, um in der Version zu arbeiten, in der ich eine for-Schleife verwenden musste, und es hat gut funktioniert, aber jetzt schlägt es fehl - es wird einfach nicht aktualisiert...(
Offenbar wurde sie nicht richtig aus der Schleife gezogen...
Hier ist eine benutzerdefinierte Funktion zur Definition eines neuen Balkens
tf - Diagrammperiode oder Periodenwert zur Bestimmung des Auftretens eines neuen Balkens.
lastbar - eine Variable, die als Referenz übergeben wird, um den Zeitpunkt des letzten Taktes zu speichern.
voidOnTick()
{
// хотим определить наступление нового дняstaticdatetime lastDay, lastHour;
bool newDay, newHour;
newDay = NewBar(PERIOD_D1, lastDay);
if(newDay)
Print("наступил новый день");
// и нового часа
newHour = NewBar(PERIOD_H1, lastHour);
if(newHour)
Print("наступил новый час");
}
Beim ersten Aufruf durch den EA meldet er sofort einen neuen Balken. Behoben durch Hinzufügen von Funktionsaufrufen zu OnInit()
Beim ersten Aufruf durch das Skript meldet es sofort einen neuen Takt, danach ist es immer falsch. Behoben durch Hinzufügen von RefreshRates() am Anfang der Funktion
Beim ersten Aufruf durch den EA meldet er sofort einen neuen Balken. Behoben durch Hinzufügen von Funktionsaufrufen zu OnInit()
Beim ersten Aufruf durch das Skript meldet es sofort einen neuen Takt, danach ist es immer falsch. Behoben durch Hinzufügen von RefreshRates() am Anfang der Funktion
1. Beim ersten Aufruf ist es ganz normal, dass, wenn es keine Balken gab, der neu erschienene Balken der neue sein wird. Gegebenenfalls, wenn es die Strategie erfordert, kann man auf diese Weise einen neuen Balken und einige weitere ablehnen. Auf einen Blick, ohne nachzudenken, stelle ich zwei weitere vor.
Einen guten Tag an alle. Könnte mir bitte jemand einen Rat geben: Wie kann ich sicherstellen, dass der EA ordnungsgemäß funktioniert, d. h. dass er einen bestimmten Algorithmus ausführt, wenn das Terminal neu gestartet oder die Internetverbindung getrennt wird?
artmedia70: Entschuldigen Sie, Ygemon, aber warum dieser Leichtsinn? Welcher freundliche Mensch hat Ihnen das geraten?
Was ist daran falsch? Ich habe nur den Rest des Codes nicht eingefügt, weil dort alles normal ist. Die Schleife ist erforderlich, um nicht auf Ticks abhängen, bei der Definition von Ereignissen, nicht auf den PC neu zu starten ist Schlaf bei 100 mlsec
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.
int Flags=FILE_WRITE+FILE_TXT+FILE_COMMON;
int Info = FileOpen(fName,Flags);
FileWrite(Info,What's Up); Auf dem anderen Terminal, lesen. Cursor bei FileOpen und F1 - Hilfe anfordern
Hallo zusammen.
Mein Zeitreihen-Array wird in der Zeichenfolge der Handelsereignisdefinition nicht aktualisiert (wenn eine neue Kerze erscheint), bzw. sein Wert ändert sich nicht, wenn eine neue Kerze erscheint.
T[i] wird zum ersten Mal beim Start des Expert Advisors gesetzt, und dann, wenn eine neue Kerze erscheint, wird der Wert aktualisiert.
Der Parameter I wird auf der Grundlage der Eingangsparameter festgelegt.
Was ist interessant, die Version, wo ich mehrere TFs verwendet, um zu arbeiten, und musste eine for-Schleife verwenden, weil das, alles funktionierte gut, aber es scheitert hier - es ist nicht aktualisiert, und das ist es...(
Hallo zusammen.
Mein Zeitreihen-Array wird in der Zeichenfolge der Handelsereignisdefinition nicht aktualisiert (wenn eine neue Kerze erscheint), bzw. sein Wert ändert sich nicht, wenn eine neue Kerze erscheint.
T[i] wird zum ersten Mal beim Start des Expert Advisors gesetzt, und dann, wenn eine neue Kerze erscheint, wird der Wert aktualisiert.
Der Parameter I wird auf der Grundlage der Eingangsparameter festgelegt.
Interessant ist, dass ich mehrere TFs verwendet habe, um in der Version zu arbeiten, in der ich eine for-Schleife verwenden musste, und es hat gut funktioniert, aber jetzt schlägt es fehl - es wird einfach nicht aktualisiert...(
Offenbar wurde sie nicht richtig aus der Schleife gezogen...
Hier ist eine benutzerdefinierte Funktion zur Definition eines neuen Balkens
Eingabevariablen:
tf - Diagrammperiode oder Periodenwert zur Bestimmung des Auftretens eines neuen Balkens.
lastbar - eine Variable, die als Referenz übergeben wird, um den Zeitpunkt des letzten Taktes zu speichern.
Beim ersten Aufruf durch den EA meldet er sofort einen neuen Balken. Behoben durch Hinzufügen von Funktionsaufrufen zu OnInit()
Beim ersten Aufruf durch das Skript meldet es sofort einen neuen Takt, danach ist es immer falsch. Behoben durch Hinzufügen von RefreshRates() am Anfang der Funktion
Beim ersten Aufruf durch den EA meldet er sofort einen neuen Balken. Behoben durch Hinzufügen von Funktionsaufrufen zu OnInit()
Beim ersten Aufruf durch das Skript meldet es sofort einen neuen Takt, danach ist es immer falsch. Behoben durch Hinzufügen von RefreshRates() am Anfang der Funktion
1. Beim ersten Aufruf ist es ganz normal, dass, wenn es keine Balken gab, der neu erschienene Balken der neue sein wird. Gegebenenfalls, wenn es die Strategie erfordert, kann man auf diese Weise einen neuen Balken und einige weitere ablehnen. Auf einen Blick, ohne nachzudenken, stelle ich zwei weitere vor.
oder
2. Warum sollte das Skript einen neuen Balken definieren? Inwieweit ist das dumm?
Aber warum funktioniert es hier nicht...((( Ich denke, es ist in Ordnung(
Igemon:
Entschuldigen Sie, Ygemon, aber warum dieser Leichtsinn? Welcher freundliche Mensch hat Ihnen das geraten?