//+---------------------------------------------------------------------+ //| Aggressiveness2.mq4 | //| Copyright © Trofimov 2009 | //+---------------------------------------------------------------------+ //| Агрессивность2 | //| | //| Описание: Показывает сколько пунктов проходит инструмент | //| за одну свечу в среднем за последние nDays дней. | //| Индикатор следует запускать только на таймфреймах мельче, чем D! | //| | //| Авторское право принадлежит Трофимову Евгению Витальевичу, 2009 | //+---------------------------------------------------------------------+ #property copyright "Copyright © Evgeniy Trofimov, 2009" #property link "http://TrofimovVBA.narod.ru/" //---- Свойства индикатора #property indicator_separate_window #property indicator_buffers 2 #property indicator_color1 MidnightBlue #property indicator_width1 1 #property indicator_color2 Maroon #property indicator_width2 1 //---- Входящие параметры extern int nDays=22; // - количество анализируемых дней extern int Future=3; // - на сколько свечей вперёд показывать double Buff_line1[]; double Buff_line2[]; double CUp, CDn; int CandlesInDay; //+------------------------------------------------------------------+ //| Функция инициализации индикатора | //+------------------------------------------------------------------+ int init() { IndicatorBuffers(2); IndicatorDigits(0); //---- параметры рисования (установка начального бара) //SetIndexDrawBegin(0,MyPeriod); //---- x распределенных буфера индикатора SetIndexBuffer(0,Buff_line1); SetIndexBuffer(1,Buff_line2); SetIndexStyle(0, DRAW_HISTOGRAM, EMPTY, EMPTY); SetIndexStyle(1, DRAW_HISTOGRAM, EMPTY, EMPTY); SetIndexShift(0, Future); SetIndexShift(1, Future); SetIndexLabel(0, "Up"); SetIndexLabel(1, "Dn"); //---- имя индикатора и подсказки для линий IndicatorShortName("Aggressiveness2("+nDays+", "+Future+")"); switch(Period()){ case PERIOD_M1: CandlesInDay=1440; break; case PERIOD_M5: CandlesInDay=288; break; case PERIOD_M15: CandlesInDay=96; break; case PERIOD_M30: CandlesInDay=48; break; case PERIOD_H1: CandlesInDay=24; break; case PERIOD_H4: CandlesInDay=6; break; default: CandlesInDay=1; break; } return(0); }//init() //+------------------------------------------------------------------+ //| Функция индикатора | //+------------------------------------------------------------------+ int start() { int counted_bars = IndicatorCounted(); if(counted_bars < 0) return(-1); if(counted_bars > 0) counted_bars--; int BeginBar = Bars - counted_bars; if(counted_bars==0) BeginBar-=(1+Future+nDays*CandlesInDay); //---- основные переменные double B; for(int t=BeginBar; t>=0; t--) { LengthCandle(t-Future); Buff_line1[t]=CUp; Buff_line2[t]=-CDn; }//Next t return(0); } //start() //+------------------------------------------------------------------+ int LengthCandle(int CurrenCandle) { int i, DayUp, DayDn; CUp=0; CDn=0; for(i=CurrenCandle+nDays*CandlesInDay;i>CurrenCandle;i=i-CandlesInDay) { // - номер свечи if(Open[i]