Cześć chłopaki,

Czy ktoś mógłby mi z tym pomóc.

Gdy warunek jest spełniony dla wyskakującego alertu, ciągle pojawia się co kilka sekund dla okresu paska. Uruchomiłem to na wykresach jednogodzinnych, ale ciągle wymuszam wyskakiwanie okna alertu.

Ponadto, jeśli uda mi się zatrzymać pojawienie się (tak, że jestem tylko powiadomiony raz), resetuje alarm tak, jeśli zostanie wyzwolony w czasie 3 taktów, jeśli warunek będzie znowu prawdziwy.

Jeśli ktokolwiek będzie w stanie pomóc, docenię to.

pozdrowienia
Steve



// ----------------------------------------------- -------------------
//| My_First_Indior.mq4 |
//|
http://www.forex-tsd.com|
// ----------------------------------------------- -------------------
#property copyright Steve Dawson
#property indior_separate_window
#property indior_buffers 2
#property indior_color1 Czerwony
#property indior_color2 Zielony
//---- bufory
double ExtMapBuffer1 [];
double ExtMapBuffer2 [];
bool buf_alert_already_triggered;
// ----------------------------------------------- -------------------
//| Funkcja inicjalizacji wskaźnika niestandardowego |
// ----------------------------------------------- -------------------
int init ()
{
//---- wskaźniki
SetIndexStyle (0, DRAW_HISTOGRAM, EMPTY, 3);
SetIndexBuffer (0, ExtMapBuffer1);
SetIndexStyle (1, DRAW_HISTOGRAM, EMPTY, 3);
SetIndexBuffer (1, ExtMapBuffer2);
string short_name = MAX - Histogram OBOS z alertami !;
IndiorShortName (short_name);
return (1);
}
// ----------------------------------------------- -------------------
//| Funkcja dezinicjalizacji wskaźnika kalibracji |
// ----------------------------------------------- -------------------
int deinit ()
{
//----
//----
return (0);
}
// ----------------------------------------------- -------------------
//| Funkcja iteracji wskaźnika niestandardowego |
// ----------------------------------------------- -------------------
int start ()
{
int counted_bars = IndiorCounted ();
//---- sprawdź możliwe błędy
if (counted_barslt; 0) return (-1);
//---- ostatni zliczony pasek zostanie zliczony
if (counted_barsgt; 0) counted_bars--;
int pos = Bars-counted_bars;
podwójne dVal, dLow, dResult, value;
Komentarz (Cześć! Jestem tutaj na głównym oknie mapy!);
//---- główna pętla obliczeniowa do załadowania ArrayBsearch
while (posgt; = 0)
{
dVal = iCustom (NULL, 0, J_TPO, 13,0, pos);
if (dVal gt; 0)
{
dResult = 1;
}
jeszcze
{
dResult = -1;
}

//Tu jest kolor ustawiony
jeśli (dResult == 1)
{
ExtMapBuffer2 [pos] = dResult;
}
jeszcze
{
ExtMapBuffer1 [pos] = dResult;
}



//ExtMapBuffer1 [pos] = dResult;
poz = pos - 1;
}
//---- bufor został załadowany

//Wykonaj teraz alert
if (((((ExtMapBuffer1 [0] == 1) || (ExtMapBuffer2 [0] == 1)) ((ExtMapBuffer1 [1] == -1) || (ExtMapBuffer2 [1] == -1))) (buf_alert_already_triggered == 0))
{
Alert (Możliwa kasa dla, Symbol (), włączony, okres (), wykres!);
buf_alert_already_triggered = 1;
} else
{
buf_alert_already_triggered = 0;
}

if (((((ExtMapBuffer1 [0] == -1) || (ExtMapBuffer2 [0] == -1)) ((ExtMapBuffer1 [1] == 1)) || (ExtMapBuffer2 [1] == 1)) (buf_alert_already_triggered == 0))
{
Alert (Możliwa SPRZEDAĆ dla, Symbol (), włączony, Okres (), wykres!);
buf_alert_already_triggered = 1;
} else
{
buf_alert_already_triggered = 0;
}
//----
return (0);
}
// ----------------------------------------------- -------------------