917
//--------------------------------------------------------------- 1 --
// Функция слежения за событиями.
// Глобальные переменные:
// Level_new Новое значение минимальной дистанции
// Level_old Предыдущее значение минимальной дистанции
// Mas_Ord_New[31][9] Массив ордеров последний известный
// Mas_Ord_Old[31][9] Массив ордеров предыдущий (старый)
//--------------------------------------------------------------- 2 --
int Events() // Пользовательская функция
{
bool Conc_Nom_Ord; // Совпадение ордеров в ..
//.. старом и новом массивах
//--------------------------------------------------------------- 3 --
Level_new=MarketInfo(Symbol(),MODE_STOPLEVEL );// Последн.известное
if (Level_old!=Level_new) // Новое не равно старому..
{ // значит изменились условия
Level_old=Level_new; // Новое "старое значение"
Inform(10,Level_new); // Сообщение: новая дистанц.
}
//--------------------------------------------------------------- 4 --
// Поиск пропавших, поменявших тип, частично закрытых и переоткрытых
for(int old=1;old<=Mas_Ord_Old[0][0];old++)// По массиву старых
{ // Исходим из того, что..
Conc_Nom_Ord=false; // ..ордера не совпадают
//--------------------------------------------------------- 5 --
for(int new=1;new<=Mas_Ord_New[0][0];new++)//Цикл по массиву ..
{ //..новых ордеров
//------------------------------------------------------ 6 --
if (Mas_Ord_Old[old][4]==Mas_Ord_New[new][4])// Совпал номер
{ // Тип ордера стал ..
if (Mas_Ord_New[new][6]!=Mas_Ord_Old[old][6])//.. другим
Inform(7,Mas_Ord_New[new][4]);// Сообщение: преобраз.:)
Conc_Nom_Ord=true; // Ордер найден, ..
break; // ..значит выходим из ..
} // .. внутреннего цикла
//------------------------------------------------------ 7 --
// Не совпал номер ордера
if (Mas_Ord_Old[old][7]>0 && // MagicNumber есть, совпал
Mas_Ord_Old[old][7]==Mas_Ord_New[new][7])//.. со старым
{ //значит он переоткрыт или частично закрыт
// Если лоты совпадают,..
if (Mas_Ord_Old[old][5]==Mas_Ord_New[new][5])
Inform(8,Mas_Ord_Old[old][4]);// ..то переоткрытие
else // А иначе это было..
Inform(9,Mas_Ord_Old[old][4]);// ..частичное закрытие
Conc_Nom_Ord=true; // Ордер найден, ..