
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
Hallo oneillj,
Ich dachte, ich hätte schon geantwortet, aber es scheint im Internet-Äther verschwunden zu sein.
Das von Ihnen gelieferte Codefragment ist so ziemlich das, worüber ich mich ursprünglich beschwert habe. Warum so komplex? Ich dachte mir, dass es einen einfacheren Weg geben muss. Ich habe mir diesen ausgedacht, der zu funktionieren scheint. Bitte korrigieren Sie mich, wenn ich falsch liege. (Ich habe auch versucht, BarsCalculated zu verwenden, aber es war immer gleich Bars, so dass der Test immer als falsch ausgewertet wurde).
static int LetzteBarZahl = 0;
;-) Ianif (Balken(_Symbol, _Periode) > LastBarCount)
LastBarCount = Bars(_Symbol, _Period);
sonst
zurückgeben;
Ich stimme völlig zu, dass wir etwas so einfach wie möglich brauchen.
Leider scheint dieser Code bei mir in MQL5 nicht zu funktionieren.
Leider scheint das in MQL5 nicht zu funktionieren.
Balken wären ohnehin ein schlechter Weg, um einen neuen Balken zu erkennen.
Der einzige zuverlässige Weg, einen neuen Balken zu erkennen, ist die Zeit. Nicht das Volumen, nicht die Preise, nicht die Balken.
datetime ThisBar = (datetime)SeriesInfoInteger(_Symbol,PERIOD_CURRENT,SERIES_LASTBAR_DATE);
if(LastBar != ThisBar)
{
printf("New bar: %s",TimeToString(ThisBar));
LastBar = ThisBar;
}
Balken wären ohnehin ein schlechter Weg, um einen neuen Balken zu erkennen.
Der einzige zuverlässige Weg, einen neuen Balken zu erkennen, ist die Zeit. Nicht Volumen, nicht Preise, nicht Balken.
datetime ThisBar = (datetime)SeriesInfoInteger(_Symbol,PERIOD_CURRENT,SERIES_LASTBAR_DATE);
if(LastBar != ThisBar)
{
printf("New bar: %s",TimeToString(ThisBar));
LastBar = ThisBar;
}
Balken wären ohnehin ein schlechter Weg, um einen neuen Balken zu erkennen.
Der einzige zuverlässige Weg, einen neuen Balken zu erkennen, ist die Zeit. Nicht das Volumen, nicht die Preise, nicht die Balken.
datetime ThisBar = (datetime)SeriesInfoInteger(_Symbol,PERIOD_CURRENT,SERIES_LASTBAR_DATE);
if(LastBar != ThisBar)
{
printf("New bar: %s",TimeToString(ThisBar));
LastBar = ThisBar;
}
Nur zur Information, ich habe die folgende Notiz in meinen Referenzen :
//-- Manchmal geben SeriesInfoInteger mit SERIES_LASTBAR_DATE einen Fehler zurück,
Das ist schon lange her und ich benutze/teste diese Funktion schon seit Jahren nicht mehr, also ist es vielleicht nicht mehr der Fall. Aber wenn man sie zur Erkennung eines neuen Taktes verwenden will, ist es wahrscheinlich besser, das zu überprüfen ;-)
Nur zur Information, ich habe den folgenden Hinweis in meinen Referenzen :
//-- Manchmal gibt SeriesInfoInteger mit SERIES_LASTBAR_DATE einen Fehler zurück,
Das ist schon lange her und ich benutze/teste diese Funktion schon seit Jahren nicht mehr, also ist es vielleicht nicht mehr der Fall. Aber wenn man sie benutzen will, um einen neuen Takt zu erkennen, ist es wahrscheinlich besser, das zu überprüfen ;-)
Das ist sehr kryptisch, Alain! Welche Art von Fehlern?
In diesem Fall sollte man bei Gürtel'n'Klammern entweder SeriesInfoInteger >0 und/oder ResetLastError vor dem Aufruf prüfen und dann _LastError nach dem Aufruf prüfen.
Oder holen Sie sich die Zeitquelle woanders, z.B. time[], wenn in OnCalculate, oder CopyTime etc etc.
Warum nicht einfach etwas wie dieses verwenden:
datetime lastTime[1];
if (CopyTime(_Symbol,_Period,0,1,lastTime)==1 && prevTime!=lastTime[0])
{
prevTime=lastTime[0];
// ...
}
Das ist sehr kryptisch, Alain! Welche Art von Fehlern?
In diesem Fall sollten Sie bei Gürtel und geschweiften Klammern entweder SeriesInfoInteger >0 und/oder ResetLastError vor dem Aufruf prüfen und dann _LastError nach dem Aufruf prüfen.
Oder holen Sie sich die Zeitquelle woanders, z.B. time[], wenn in OnCalculate, oder CopyTime etc etc.
Ich will damit nur sagen, dass SeriesInfoInteger(), als ich es vor Jahren benutzte, nicht wirklich zuverlässig war. Es bleibt Ihnen überlassen, was Sie mit dieser Information anfangen :-D
Nicht viel TBH - Ich brauche nicht zu erkennen, eine neue Bar in MT5
Aber danke für den Austausch - Ich werde es im Hinterkopf für die Zukunft.
Ich habe nur versucht, etwas zu vereinfachen, das die Leute anscheinend zu kompliziert machen.
Dennoch bleibt das Prinzip bestehen: Zeit nutzen. Caveat: Wählen Sie Ihre Methode zur Zeitbeschaffung auf eigene Gefahr, wenn Sie Alains unvollständige historische Notizen berücksichtigen (wie sieht es übrigens mit XP Service Pack 1 aus?)
Nicht viel TBH - Ich brauche nicht zu erkennen, eine neue Bar in MT5 Aber danke für den Austausch - Ich werde es im Auge behalten für die Zukunft.
Ich habe nur versucht, etwas zu vereinfachen, das die Leute anscheinend zu kompliziert gemacht haben.
Das Prinzip bleibt jedoch bestehen: die Zeit nutzen. Caveat: Wählen Sie Ihre Methode, die Zeit zu erhalten, auf eigene Gefahr, angesichts der unvollständigen historischen Notizen von Alain (wie sieht es übrigens mit XP Service Pack 1 aus?)