//-------------------------------------------------------------------- // timetablenews.mq4 // Предназначен для использования в качестве примера в учебнике MQL4. //--------------------------------------------------------------- 1 -- int start() // Спец. функция start { //--------------------------------------------------------------- 2 -- int Handle, // Файловый описатель Stl; // Стиль вертикальной линии string File_Name="News.csv", // Имя файла Obj_Name, // Bмя объекта Instr, // Название валюты One,Two, // 1я и 2я чать названия инстр. Text, // Текст описания события Str_DtTm; // Дата и время события(строка) datetime Dat_DtTm; // Дата и время события(дата) color Col; // Цвет вертикальной линии //--------------------------------------------------------------- 3 -- Handle=FileOpen(File_Name,FILE_CSV|FILE_READ,";");// Открытие файла if(Handle<0) // Неудача при открытии файла { if(GetLastError()==4103) // Если файла не существует,.. Alert("Нет файла с именем ",File_Name);//.. извещаем трейдера else // При любой другой ошибке.. Alert("Ошибка при открытии файла ",File_Name);//..такое сообщ PlaySound("Bzrrr.wav"); // Звуковое сопровождение return; // Выход из start() } //--------------------------------------------------------------- 4 -- while(FileIsEnding(Handle)==false)// До тех пор, пока файловый .. { // ..указатель не в конце файла //--------------------------------------------------------- 5 -- Str_DtTm =FileReadString(Handle);// Дата и время события(дата) Text =FileReadString(Handle);// Текст описания события if(FileIsEnding(Handle)==true) // Файловый указатель в конце break; // Выход из чтения и рисования //--------------------------------------------------------- 6 -- Dat_DtTm =StrToTime(Str_DtTm); // Преобразование типа данных Instr =StringSubstr(Text,0,3);// Извлекаем первые 3 символа One=StringSubstr(Symbol(),0,3);// Извлекаем первые 3 символа Two=StringSubstr(Symbol(),3,3);// Извлекаем вторые 3 символа Stl=STYLE_DOT; // Для всех - стиль пунктир Col=DarkOrange; // Для всех - цвет такой if(Instr==One || Instr==Two) // А для событий по нашему .. { // .. финансовому инструменту.. Stl=STYLE_SOLID; // .. такой стиль.. Col=Red; // .. и такой цвет верт. линии } //--------------------------------------------------------- 7 -- Obj_Name="News_Line "+Str_DtTm; // Имя объекта ObjectCreate(Obj_Name,OBJ_VLINE,0,Dat_DtTm,0);//Создаем объект.. ObjectSet(Obj_Name,OBJPROP_COLOR, Col); // ..и его цвет,.. ObjectSet(Obj_Name,OBJPROP_STYLE, Stl); // ..стиль.. ObjectSetText(Obj_Name,Text,10); // ..и описание } //--------------------------------------------------------------- 8 -- FileClose( Handle ); // Закрываем файл PlaySound("bulk.wav"); // Звуковое сопровождение WindowRedraw(); // Перерисовываем объекты return; // Выход из start() } //--------------------------------------------------------------- 9 --