Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 182

 

Hallo.

Es gibt eine Funktion NewBar(sy, TF). Es sieht so aus, als ob eine neue Bar eröffnet wurde. Ich benötige ein Signal auf dem Stundenchart über das Erscheinen eines neuen Balkens mit einer Verzögerung von 5 Minuten. Ich möchte das Signal bei 0,05, 1,05, 2,05, ..........., 10,05, 11,05, usw. erhalten.


Wie kann dies geschehen? Vielleicht kann die Funktion selbst in irgendeiner Weise umgestaltet werden?

 
hoz:

Nun, ich habe die #property-Bibliothek entfernt , aber es gab keine Warnung, während es keine Startfunktion gibt...

Warnungen vor was?
 
Vinin:

Warnungen vor was?


Was ist mit... Hier:

sergeev:
Sie brauchen es, wenn Sie keine Warnungen über einen fehlenden Start sehen wollen

 
gince:

Hallo.

Es gibt eine Funktion NewBar(sy, TF). Sie prüft, ob eine neue Bar geöffnet wurde. Ich benötige ein Signal auf dem Stundenchart über das Erscheinen eines neuen Balkens mit einer Verzögerung von 5 Minuten. Ich möchte das Signal bei 0,05, 1,05, 2,05, ..........., 10,05, 11,05, usw. erhalten.


Wie kann dies geschehen? Ist es möglich, die Funktion selbst zu ändern?


Sie deklarieren es global:

datetime = bdt_lastBarTime;

IN INIT:

bdt_lastBarTime = 0;

IN START:

if (g_lastBarTime == Time[0])         // На текущем баре все необходимые действия..
       return (0);                    // ..уже были выполнены

// если ...
//.. бар новый...
//.. делаем то..
//.. что нужно выполнить на очередном..
//.. новом баре

g_lastBarTime = Time[0];               // На текущем баре все необходимые действия..
                                       // .. успешно выполнены

Anstelle von Time[0]; können Sie iTime() markieren, um einen neuen Balken für einen anderen Zeitrahmen als den aktuellen zu erhalten.

 
hoz:


Sie deklarieren sie global:

INIT:

IN START:

Sie können iTime() anstelle von Time[0]; markieren, um einen neuen Balken für einen anderen Zeitrahmen als den aktuellen zu erhalten.


Das einzige Problem ist. Die Variablennamen stimmen nicht überein. Autsch, autsch. Entweder ist es Unaufmerksamkeit oder Gewohnheit.
 
Vinin:

Aber hier ist das Problem. Die Variablennamen stimmen nicht überein. Oh je. Entweder Unachtsamkeit oder Gewohnheit

Das ist Unaufmerksamkeit. Berichtigung.

Sie geben eine globale Erklärung ab:

datetime = bdt_lastBarTime;

IN INIT:

bdt_lastBarTime = 0;

IN START:

if (bdt_lastBarTime == Time[0])         // На текущем баре все необходимые действия..
       return (0);                    // ..уже были выполнены

// если ...
//.. бар новый...
//.. делаем то..
//.. что нужно выполнить на очередном..
//.. новом баре

bdt_lastBarTime = Time[0];               // На текущем баре все необходимые действия..
                                       // .. успешно выполнены

Anstelle von Time[0]; können Sie iTime() markieren, um einen neuen Balken für einen anderen Zeitrahmen als den aktuellen zu erhalten.

 

auf einen Blick, nur speziell für diese Aufgabe.

bool NewBar05()
{
static bool newbar;
if (Minute()==5 && !newbar) 
   {
   newbar=true;
   return true;
   } 
if (Minute()>5 && newbar)  newbar=false;
   return  false;
}
    
 
xxxKillxxx:

Genosse, entschuldigen Sie mich noch einmal, aber ich habe ein Problem.... Ich habe es geschafft, alle Blöcke zu überprüfen, ohne Fehler oder Warnungen zu schließen, und ich bekomme keine Syntax, aber ich bekomme keine Signale, wenn ich meinen EA starte, meine Trades werden nicht wie erwartet geschlossen. Das Problem ist, dass ich nicht den Code des EA, und das Problem zu lösen, auch sehr viel benötigt, wenn Sie nichts dagegen haben, auf mich wieder Ihre kostbare Zeit zu verbringen, sagen Sie mir bitte, welche Optionen sein kann, um das Problem anzugehen, wenn es wichtig ist, kann ich nur sagen, dass die EA wurde auf Forex Generator 4 erstellt.

Ich möchte Sie bitten, die Gründe dafür zu erläutern (vorzugsweise mit den Fingern und mit einem Augenzwinkern, da ich nur diese Art von Programmierung betreibe) Danke im Voraus.


Nun, mein Code oder bereits Teil Ihrer Expert Advisor schließt den angegebenen Gewinn von 0,1% und mehr. Konnten Sie beim Forex-Generator 4 etwas tun, damit das Eigenkapital höher ist als der Saldo?
 
Roger:

auf einen Blick, speziell für diese Aufgabe.


Ich danke Ihnen allen für Ihre Hilfe.

Die Frage lautete wie folgt.

<Es gibt eine Funktion NewBar(sy, TF). Sie prüft, ob eine neue Bar geöffnet wurde. Ich benötige ein Signal auf dem Stundenchart über das Erscheinen eines neuen Balkens mit einer Verzögerung von 5 Minuten. Das heißt, ich möchte ein Signal bei 0,05, 1,05, 2,05, ..........., 10,05, 11,05, usw. erhalten. >

Um die Frage zu klären. Die Funktion sollte stündlich true zurückgeben, allerdings mit einer Verzögerung von 5 Minuten. D.h. wenn die Bildung des Balkens 1.05 beendet ist und der Balken 2.05 erscheint, gibt die Funktion true zurück, wenn letzterer erscheint. Die Funktion liefert true, wenn der Balken bei 1,10, 2,10 usw. erscheint.

In der Abbildung zeigt die gelbe Linie, dass der nächste Balken wahr war.

Nach Ihrem Tipp habe ich es auf diese Weise versucht, aber es funktioniert nicht.

bool isNewBar5 ()
{

    static int   LastBar = 0; 
    datetime      curbar = iTime (Symbol(), 60, 0) +300; 
    int                h = Hour();
    if (LastBar != curbar && h == h + 1 && Minute() == 5)
    {
        LastBar = curbar;
        return (true);
    }
    else
    {return (false);}
}
 
gince:

Hallo.

Die Funktion NewBar(sy, TF) ist verfügbar. Sie prüft, ob eine neue Bar geöffnet wurde. Ich brauche ein Signal für einen neuen Balken auf dem Stundenchart mit einer Verzögerung von 5 Minuten. Ich möchte das Signal bei 0,05, 1,05, 2,05, ..........., 10,05, 11,05, usw. erhalten.


Wie kann dies geschehen? Vielleicht kann die Funktion selbst umgeschrieben werden?


int bt=((TimeCurrent()-5*60)/3600)*3600;

Der Wert von bt ändert sich alle 5 Minuten zu jeder Stunde. Es ist möglich, am Ende nicht mit 3600 zu multiplizieren, es wird die Taktnummer vom Beginn der Epoche sein, das reicht, um einen neuen Takt zu definieren.

Grund der Beschwerde: