#property copyright "Kamil Gazizullin" #property link "forexman77@yandex.ru" #property version "1.00" //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 Lime //--- input parameters //--- buffers double ExtMapBuffer1[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1); IndicatorDigits(Digits+1); return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(),limit; int Handle,kol_vo,m_start,m_count,d1_count; string Text,File_Name="file.csv",Str_DtTm; datetime Dat_DtTm; Handle=FileOpen(File_Name,FILE_CSV|FILE_READ,";");// Открываем файл if(Handle<0) // Failure when opening a file { if(GetLastError()==4103) Alert("There is no file named ",File_Name); else Alert("Error when opening a file ",File_Name); PlaySound("Bzrrr.wav"); return(0); } if(counted_bars>0) counted_bars--; limit=Bars-counted_bars-1; for(int i=limit;i>=0;i--) { while(FileIsEnding(Handle)==false) { m_start=i;//время цила индикатора m_count=1;//количество элементов для подсчета в открытом графике d1_count=1;//количество элементов для подсчета текущего дня открытого графика datetime m_tm[]; datetime d1_tm[]; ArraySetAsSeries(m_tm,true); ArraySetAsSeries(d1_tm,true); CopyTime(_Symbol,PERIOD_CURRENT,m_start,m_count,m_tm); //получили время текущего графика CopyTime(_Symbol,PERIOD_D1,m_tm[0],d1_count,d1_tm);//получили время открытия дневного бара //--------------------------------------------------------- 5 -- Str_DtTm =FileReadString(Handle);// строка дата Text =FileReadString(Handle);// строка число для буфера индикатора //--------------------------------------------------------- 6 -- Dat_DtTm=StrToTime(Str_DtTm); // конвертация строки в дату kol_vo=StringToInteger(Text); //конвертация строки в число для буфера //--------------------------------------------------------- 7 -- if(d1_tm[0]==Dat_DtTm)//время совпало с датой файла { ExtMapBuffer1[i]=kol_vo;//взяли число из файла if(FileIsEnding(Handle)==true) { Print("Время открытия дневного бара последнего дня из файла=",d1_tm[0]); } break; } } //--------------------------------------------------------------- 8 -- } if(Handle!=-1) FileClose(Handle); return(0); } //+------------------------------------------------------------------+