[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 490

 
splxgf:

Normalerweise erstelle ich eine Variable LastBarAlert und schreibe Time[0] in diese Variable, wenn der Alarm ausgelöst wird.

Und dann elementar, der Alarm wird ausgegeben, wenn LastBarAlert!=Time[0]


Ich danke Ihnen. Es funktioniert wirklich. Aber warum speichert der Indikator den Wert der Variable LastBarAlert, aber nicht den Wert einer anderen Variablen. Ich habe es so gemacht. Es ist im Grunde dasselbe, aber aus irgendeinem Grund funktioniert es nicht.

if (Signal && AllowAlert = true){
Alert('Signal detected');
AllowAlert = false;
} 
 
sss2019:


Ich danke Ihnen. Es funktioniert wirklich. Aber warum speichert der Indikator den Wert der Variable LastBarAlert, aber nicht den Wert einer anderen Variablen. Ich habe es so gemacht. Es scheint auf die gleiche Weise zu funktionieren, aber aus irgendeinem Grund tut es das nicht.

Wo in Ihrem Code ist die Initialisierung der Variablen AllowAlert mit dem Wert true?

Wenn vor der Überprüfung des Signals und des Status dieser Variablen in der Zeile...

if (Signal && AllowAlert = true)

... ...dann wird ein weiteres Zurücksetzen der Flagge auf false nichts bewirken. Schließlich wird er vor dieser Prüfung wieder mit true initialisiert...

 
sss2019:


Ich danke Ihnen. Es funktioniert wirklich. Aber warum speichert der Indikator den Wert der Variable LastBarAlert, aber nicht den Wert einer anderen Variablen. Ich habe es so gemacht. Es ist im Grunde dasselbe, aber aus irgendeinem Grund funktioniert es nicht.

Das Problem muss in der Logik liegen... Wenn Sie eine Variable verwenden, die die Werte 0 und 1 annimmt, muss ihr Wert bei jedem neuen Balken zurückgesetzt werden, und das geschieht höchstwahrscheinlich nicht. Oder die Variable wird lokal beschrieben, ohne statisch zu sein, und ihr Wert wird zwischen Aufrufen nicht gespeichert. Ohne den Code ist es sinnlos zu raten.
 

Спасибо. Это действительно работает. Но почему индикатор сохраняет значение переменной LastBarAlert, а значение какой нибудь другой переменной не сохраняет. Я делал так. По сути получается точно так же, но почему то не работает.

if (Signal && AllowAlert = true){
Alert('Signal detected');
AllowAlert = false;
} 

Sie haben AllowAlert zum Zeitpunkt derÜberprüfung auf true gesetzt .Sie sollte wie folgt aussehen (doppelt =):

if (Signal && AllowAlert == true){
Alert('Signal detected'); 
AllowAlert = false;
}   

Oder besser so:

if (Signal && AllowAlert){
Alert('Signal detected');
AllowAlert = false; }   
 
leksiq:

Sie haben AllowAlert zum Zeitpunkt derÜberprüfung auf true gesetzt .Sie sollte wie folgt aussehen (doppelt =):

Oder besser so:




Im Grunde genommen wurde die Variable als statisch deklariert und nach einigen Takten zurückgesetzt. Die Bedingung lautete wie folgt.

static bool AllowAlert = true;

if(Time[i] == Time[2] && AllowAlert == true)
  {
  Alert("sdfsdf");
  AllowAlert = false;
  }

if(Time[i] != Time[2])
  {
  AllowAlert = true;
  }
Idealerweise sollte das Signal einmal auf dem aktuellen Balken ausgelöst werden, aber es wurde bei jedem Tick ausgelöst.
 
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool NewBar(){static int prevBar;
   if(prevBar!=Time[0]){
      prevBar =Time[0];
      return(true);
   }
   return(false);
}
//+------------------------------------------------------------------+
Werfen Sie doch einen ersten Blick auf diese Seite: https://www.mql5.com/ru/forum/131853.
 
FAQ:
Werfen Sie doch einen ersten Blick auf diese Seite: https://www.mql5.com/ru/forum/131853.

Ich bin nicht daran interessiert, wie man es macht, sondern warum mein Code nicht funktioniert. Genauer gesagt, warum es im EA funktioniert, aber nicht im Indikator.
 

Höchstwahrscheinlich, und dies wurde mir hier vorgeschlagen (in Ermangelung Ihres Codes)

Sie haben mehrere Ausschreibungen, auf die Sie alle dieselbe Statistikvariable anwenden

 

Hallo.

Kann mir das jemand sagen?

Wie bringe ich einen Bereich eines EAs zum Laufen?

eine Linie ziehen und sie in "buy_down" umbenennen.

Zeichnen Sie eine zweite Linie und benennen Sie sie in "buy_up" um.

und lassen Sie den EA nur zwischen diesen Linien handeln.

Ich kann keinen Unterschied zwischen ihnen erkennen.

 
TESKATLIPOKA:

Hallo.

Kann mir das jemand sagen?

Wie bringe ich einen Bereich eines EAs zum Laufen?

eine Linie ziehen und sie in "buy_down" umbenennen.

Zeichnen Sie die zweite Zeile und benennen Sie sie in "buy_up" um.

und lassen Sie den EA nur zwischen diesen Linien handeln.

Ich kann keinen Unterschied zwischen ihnen erkennen.


Hier geht es zu: https: //www.mql5.com/ru/job