Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 474

 
@Konstantin Nikitin Verstanden, danke!
 
Rewerpool:
@Konstantin Nikitin Schlagen Sie vor, diese Parameter außerhalb des Funktionskörpers zu verwenden? Oder soll ich sie so lassen, wie ich sie auf dem letzten Screenshot dargestellt habe?
Sie müssen natürlich außerhalb der Funktion liegen. Sie aktualisieren und vergleichen sie ständig, indem Sie diese Funktion aufrufen.
 
Konstantin Nikitin:

Bringen Sie es auf die globale Ebene. Sie werden immer gleich 0 sein, da bei jedem Aufruf der Funktion eine neue deklariert wird.

Statisch - nein.
 
Konstantin Nikitin:
Das liegt natürlich außerhalb der Funktion. Sie aktualisieren und vergleichen sie ständig, indem Sie diese Funktion aufrufen.
Sie fordern sich selbst auf, ohne eine Vorstellung davon zu haben, was...
 
Artyom Trishkin:
Du erzählst dir selbst nach und nach, was...

Haben Sie sich ursprünglich die Funktion selbst angesehen?

void NOTIFICATION()
{

int DayT=0,BarTime;
 if(DayT!=Day())// Если новый день - нужно опросить
 {
 DayT=Day();
//......
}
if (BarTime==Time[0]) // Если новый бар - нужно опросить
{
   BarTime=Time[0];
//......
}
}

Und wie soll sich DayT BarTime hier verändern? Sie werden immer 0 gewickelt sein.

if(DayT!=Day())

Sie wird immer als Wahrheit gelten, und

if (BarTime==Time[0])

als eine Lüge.

 
Konstantin Nikitin:

Haben Sie sich die Funktion zunächst selbst angesehen?

Und wie soll sich DayT BarTime hier verändern? Sie werden immer 0 sein.
Sie sagten, sie in globale Variablen zu setzen. Das reicht aus, um sie statisch zu machen und nicht alles auf einen Haufen zu werfen.
 
Artyom Trishkin:
Sie sagten, sie sollten in globalen Variablen gespeichert werden. Es reicht aus, sie statisch zu machen, und nicht, sie alle auf einen Haufen zu legen.
Das ist Geschmackssache, aber sie wurden von vornherein nicht korrekt deklariert.
 

Es hat sich herausgestellt, dass man auch dies tun kann????

void NOTIFICATION()
{
static int DayT=0;
static datetime BarTime;

 if(DayT!=Day())// Если новый день - нужно опросить
 {
 DayT=Day();
if(Push_On&&DAY_HIGH())SendNotification("ДЕНЬ ЗАКРЫЛСЯ ВЫШЕ ЛИНИИ -" + Symbol());
if(Push_On&&DAY_LOW())SendNotification("ДЕНЬ ЗАКРЫЛСЯ НИЖЕ ЛИНИИ -" + Symbol());
}
if (BarTime==Time[0]) // Если новый бар - нужно опросить
{
   BarTime=Time[0];
if(Push_On&&DAY_HIGH()&&PATERN_BUY())SendNotification("ДЕНЬ ЗАКРЫЛСЯ ВЫШЕ ЛИНИИ + ПАТТЕРН -" + Symbol());
if(Push_On&&DAY_LOW()&&PATERN_SELL())SendNotification("ДЕНЬ ЗАКРЫЛСЯ НИЖЕ ЛИНИИ + ПАТТЕРН -" + Symbol());
}
}
 
Und wenn ich sie auf eine globale Ebene bringe, können sie auch von anderen Funktionen aus abgefragt werden
 
Rewerpool:
Und wenn ich sie auf eine globale Ebene stelle, können sie auch von anderen Funktionen aus abgefragt werden
Das ist nicht der richtige Ansatz.
Grund der Beschwerde: