//+------------------------------------------------------------------+ //| Market Way Multi.mq4 | //| Copyright © 2010, O.Konovalov aka Regul | //+------------------------------------------------------------------+ #property copyright "Copyright © 2010 O.Konovalov" #property link "E-mail:O_Konovalov@ukr.net" #property link "E-mail:RegulStar@gmail.com" #property indicator_separate_window #property indicator_buffers 8 #property indicator_color1 SteelBlue #property indicator_color2 Goldenrod #property indicator_color3 BlueViolet #property indicator_color4 YellowGreen #property indicator_color5 DeepPink #property indicator_color6 OrangeRed #property indicator_color7 DarkOliveGreen #property indicator_color8 MediumPurple //---- input parameters extern int IdMain = 12; // main line extern int IdMulti = 12; // multi line extern int IdBull = 0; // bull line extern int IdBear = 0; // bear line extern int IdArray=12; // all sma line extern int Pairs=14;//необходимо для правильного расчета индекса, при изменение количества пар, меняем данное число extern string Pair1 = "GBPUSD"; extern string Pair2 = "EURGBP"; extern string Pair3 = "GBPJPY"; extern string Pair4 = "USDCHF"; extern string Pair5 = "NZDUSD"; extern string Pair6 = "AUDJPY"; extern string Pair7 = "EURJPY"; extern string Pair8 = "EURUSD"; extern string Pair9 = "USDJPY"; extern string Pair10 = "AUDUSD"; extern string Pair11 = "NZDJPY"; extern string Pair12 = "GBPCHF"; extern string Pair13 = "CHFJPY"; extern string Pair14 = "EURCHF"; //---- buffers double ExtMapBuffer[]; double ExtMapBuffer1[]; double ExtMapBuffer2[]; double ExtMapBuffer3[]; double ExtMapBuffer4[]; double ExtMapBuffer5[]; double ExtMapBuffer6[]; double ExtMapBuffer7[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- параметры индикаторов SetIndexStyle(0,DRAW_LINE,0,1); SetIndexBuffer(0,ExtMapBuffer); SetIndexArrow(0,158); //--- SetIndexStyle(1,DRAW_LINE,0,1); SetIndexBuffer(1,ExtMapBuffer1); SetIndexArrow(1,158); //--- SetIndexStyle(2,DRAW_LINE,0,2); SetIndexBuffer(2,ExtMapBuffer2); SetIndexArrow(2,158); //--- SetIndexStyle(3,DRAW_LINE,0,1); SetIndexBuffer(3,ExtMapBuffer3); //--- SetIndexStyle(4,DRAW_LINE,0,1); SetIndexBuffer(4,ExtMapBuffer4); //--- SetIndexStyle(5,DRAW_LINE,0,2); SetIndexBuffer(5,ExtMapBuffer5); SetIndexArrow(5,158); //--- SetIndexStyle(6,DRAW_LINE,0,1); SetIndexBuffer(6,ExtMapBuffer6); SetIndexArrow(3,158); //--- SetIndexStyle(7,DRAW_LINE,0,1); SetIndexBuffer(7,ExtMapBuffer7); //--- Наименование индикатора и параметры значений на экране IndicatorShortName("Market Way Multi"); //--- SetIndexLabel(0,"Multi Line"); SetIndexLabel(1,"Multi SMA Line"); SetIndexLabel(2,"Main Line"); SetIndexLabel(3,"Bull Accumulation"); SetIndexLabel(4,"Bear Accumulation"); SetIndexLabel(5,"Main SMA Line"); SetIndexLabel(6,"Bull SMA Line"); SetIndexLabel(7,"Bear SMA Line"); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { double bull,bear,faster,fast,main,mainmulti,mc,mo; //---- int counted_bars=IndicatorCounted(); if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; int limit=Bars-counted_bars; if(counted_bars==0) limit-=1+MathMax(MathMax(IdBull,IdBear),MathMax(IdMain,IdMulti)); int i=limit; //***********************************************БУФЕРА ДЛЯ РАСЧЕТОВ********************************************** while(i>=0) { //--- MW2 БУФЕР СУММАРНАЯ(Быки и Медведи) аккумуляция направления движения рынка //то же что и пара двух IdMain-ти периодных (SMA) расчитаных по открытиям и закрытиям //положителные значения указывают на нахождение SMA от Close выше чем SMA от Open, отрицательные наоборот! //Bull's & Bear's accumulation //However, that and a pair of two IdMain-tee time periods (SMA) is apply for the opening and closing main=0; for(int m=0;m=0 //only Bull's bars accumulation //calculated only bullish & doji bars for the periods IdBull. fulfill the condition (Close-Open>=0). bull=0; for(int bu=0;bu=0) bull=bull+(Close[i+bu]-Open[i+bu]); } ExtMapBuffer3[i]=NormalizeDouble(bull/MarketInfo(Symbol(),MODE_POINT),Digits); //--- MW4 БУФЕР Медвежья аккумуляция направления движения (то же, что и SМА от Open) //здесь расчитаны только медвежьи бары и дожи за указаный период, т.е. те, которые твечают условию Close-Open<=0 //only Bear's bars accumulation //calculated only bearish & doji bars for the periods IdBear. fulfill the condition (Close-Open<=0). bear=0; for(int be=0;be