//+------------------------------------------------------------------+
//| Bar_Stat_v1.mq4 |
//|Анализирует направление бара в зависимости от направления |
//|предыдущего бара |
//+------------------------------------------------------------------+
#property copyright "Анализирует направление бара в зависимости от направления предыдущего бара"
#property link "manin1@mail.ru"
#property show_inputs
int i;
string FileName;
int FileHandle;
int start()
{
double count_Up, Summ_Up, count_Down, Summ_Down;
FileName="Bar_Stat_v1_"+Symbol()+"_"+Period()+".csv";
FileHandle=FileOpen(FileName,FILE_WRITE | FILE_CSV,";");
if (FileHandle<1) {Print("Не удалось открыть файл, ошибка ",GetLastError()); return;}
// Заголовок файла
FileWrite(FileHandle,"Направление 1 бара","Кол-во вверх","%","Пунктов вверх","Пунктов на бар","Кол-во вниз","%","Пунктов вниз","Пунктов на бар");
//----------------------------------------------------------------------------------------------------------
count_Up=0;//Обнуляем счетчик баров вверх
Summ_Up=0; //Обнуляем сумму пунктов вверх
count_Down=0; //Обнуляем счетчик баров вниз
Summ_Down=0; //Обнуляем сумму пунктов вниз
for (i=Bars-2; i>0; i--) //Перебираем бары от второго в истории до предпоследнего (из прошлого к настоящему)
{
if(Open[i]<Close[i] && Open[i+1]<Close[i+1]) //Если исследуемый бар вверх и следующий за ним бар вверх
{
count_Up++;
Summ_Up=Summ_Up+((Close[i]-Open[i])/Point);
}
if(Open[i]>Close[i] && Open[i+1]<Close[i+1]) //Если исследуемый бар вверх а следующий за ним бар вниз
{
count_Down++;
Summ_Down=Summ_Down+((Open[i]-Close[i])/Point);
}
}
//Записываем результаты в файл
FileWrite(FileHandle,"Вверх",count_Up,count_Up*100/(count_Up+count_Down),Summ_Up,
Summ_Up/count_Up,count_Down,count_Down*100/(count_Up+count_Down),Summ_Down,Summ_Down/count_Down);
//----------------------------------------------------------------------------------------------------------
count_Up=0; Summ_Up=0; count_Down=0; Summ_Down=0;
for (i=Bars-2; i>0; i--)
{
if(Open[i]<Close[i] && Open[i+1]>Close[i+1])
{
count_Up++;
Summ_Up=Summ_Up+((Close[i]-Open[i])/Point);
}
if(Open[i]>Close[i] && Open[i+1]>Close[i+1])
{
count_Down++;
Summ_Down=Summ_Down+((Open[i]-Close[i])/Point);
}
}
FileWrite(FileHandle,"Вниз",count_Up,count_Up*100/(count_Up+count_Down),Summ_Up,
Summ_Up/count_Up,count_Down,count_Down*100/(count_Up+count_Down),Summ_Down,Summ_Down/count_Down);
//----------------------------------------------------------------------------------------------------------
return(0);
}
Alkor135