Скачать MetaTrader 5

Программисты помогите..ну никак в голову решение не приходит..

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Макс
123
Макс  

Ничего придумать не могу с индикатором(.. подскажите пожалуйста что добавить надо....индикатор ставится на дневной график, но работает с данными часового периода....суть такая - индикатор должен чертить линию по точкам, полученных в результате разности количества бычьих и медвежьих свечей за каждый день, при открытии новой дневной свечи... как диаграмма в exel. вот с этим кодом ничего не рисует...нужно реализовать как то обнуление перменных b, h вначале каждого дня..потому что к ним добавляются новые значения сейчас. хоть намекните если не трудно где это сделать и что добавить...спаисбо за терпение

int start()
{
int i,counted_bars=IndicatorCounted();

i=Bars-counted_bars-1;
while(i>=1)
{
for(j=1;j<24;j++){

if((iClose(Symbol(),PERIOD_H1,j) - iOpen(Symbol(),PERIOD_H1,j))>0) b++; //подсчёт количества бычьих свечей за последний день
if((iClose(Symbol(),PERIOD_H1,j) - iOpen(Symbol(),PERIOD_H1,j))<0) h++; //подсчёт количества медвежьих свечей за последний день

}

r=b-h;
ExtMapBuffer1[i]=r; //рисование линии

i--;


}
//----
return(0);

Всеволод
648
Всеволод  
int start()
{
int i,counted_bars=IndicatorCounted();

i=Bars-counted_bars-1;
while(i>=1)
{ 
b=0; 
h=0;
int sh=iBarsShift(Symbol(),60,Time[i]);
for(j=sh;j<sh+24;j++){

if((iClose(Symbol(),PERIOD_H1,j) - iOpen(Symbol(),PERIOD_H1,j))>0) b++; //подсчёт количества бычьих свечей за последний день
if((iClose(Symbol(),PERIOD_H1,j) - iOpen(Symbol(),PERIOD_H1,j))<0) h++; //подсчёт количества медвежьих свечей за последний день

}

r=b-h;
ExtMapBuffer1[i]=r; //рисование линии

i--;


}
//----
return(0);
Что-то вроде такого в первом приближении, на косяки проверяй сам.
Макс
123
Макс  
о..спасибо большое...ща разберусь.
Макс
123
Макс  
хоть пока также линию не рисует..но уже есть в каком направлении работать) спасибо
Всеволод
648
Всеволод  
Ну разумеется iBarShift, чуть опечатался, ради интереса сделал индикатор, вполне работает и линию даже рисует... правда там еще есть несколько логических косячков.
Макс
123
Макс  
а ради интереса сюда его выложить не можешь? я вот с индикаторами вообще не дружу..советники ещё программирую а индюки ступор вообще.
Всеволод
648
Всеволод  
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red

double ExtMapBuffer[];
double ExtMapBuffer2[];

int init()
  {
   SetIndexBuffer(0,ExtMapBuffer);
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(1,ExtMapBuffer2);
   SetIndexStyle(1,DRAW_LINE);
   return(0);
  }
int deinit()
  {
   return(0);
  }

int start()
{
int i,counted_bars=IndicatorCounted();

i=Bars-counted_bars-1;
while(i>0)
{ 
int b=0; 
int h=0;
int sh=iBarShift(Symbol(),60,Time[i]);
for(int j=sh;j>sh-24;j--){

if((iClose(Symbol(),PERIOD_H1,j) - iOpen(Symbol(),PERIOD_H1,j))>0) b++; //подсчёт количества бычьих свечей за последний день
if((iClose(Symbol(),PERIOD_H1,j) - iOpen(Symbol(),PERIOD_H1,j))<0) h++; //подсчёт количества медвежьих свечей за последний день

}
ExtMapBuffer[i]=b;
ExtMapBuffer2[i]=-h;

i--;
}
return(0);
}
За написанием индюков в учебник, ну или разобрать любой из стандартных.
Макс
123
Макс  
ух..чётко...спасибо..помог..прям очень
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий