//+------------------------------------------------------------------+ //| MultiCCI PRICE_v5.mq4 | //| 26.04.2010г. costy_ | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ #property copyright "26.04.2010г. costy_" #property link "http://www.mql4.com/ru/users/costy_" #property indicator_separate_window #property indicator_buffers 8 #property indicator_level1 150 #property indicator_level2 100 #property indicator_level3 50 #property indicator_level4 0 #property indicator_level5 -50 #property indicator_level6 -100 #property indicator_level7 -150 extern bool Создавать_подписи=true; extern string xxxxxxхxxxxxxxxxxxxxxxxxxxxxxx="---------------------------------------------------------"; extern string _0_CCI_PRICE__1_CCI=" 2 RSI 3 MFI 4 WPR"; extern int Индикатор=0; extern string xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx="---------------------------------------------------------"; extern int Период_CCI=55;//0 1 extern int Период_RSI=14;//2 extern int Период_MFI=14;//3 extern int Период_WPR=14;//4 extern string xxxxxxxxxxxxxxxxxxxxxxxxxxxxxх="---------------------------------------------------------"; extern string Метод_вычисления= "0 Прост 1 Экс 2 Сгл 3 Лин-взвешенное"; extern int Метод_Вычисления=0; extern string xxхxxxxxxxxxxxxxxxxxxxxxxxxxxх="---------------------------------------------------------"; extern string Используемая_цена= "0CLOSE,1OPEN,2HIGH,3LOW,4MEDIAN,5TYPICAL"; extern int Используемая_цeна=0; extern string xxxxxxxxxxxxxxxxxxxхxxxxxxxxxx="---------------------------------------------------------"; extern string Т="Таймфрейм 0-текущий"; extern int T=0; extern string Только_для_CCI_PRICE="Коэф. Шума "; extern int X=3; extern color Color1 = Red; extern color Color2 = Chocolate; extern color Color3 = Orange; extern color Color4 = ForestGreen; extern color Color5 = RoyalBlue; extern color Color6 = Blue; extern color Color7 = DarkOrchid; extern color Color8 = Magenta; //---- int Расстояние_меж_значками=13; int толщина=1,толщина_текущего_фин=3,разшриф=10,разшриф_текущего_фин=12; double ind_buf_1[],ind_buf_2[],ind_buf_3[],ind_buf_4[],ind_buf_5[],ind_buf_6[],ind_buf_7[],ind_buf_8[],ind_buf[][8]; color colore[8]; string name_object[8],Short,SymbolsList[],text[8]; int i,buf,labe[8]; //+------------------------------------------------------------------+ int init() { SetIndexBuffer(0,ind_buf_1); SetIndexBuffer(1,ind_buf_2); SetIndexBuffer(2,ind_buf_3); SetIndexBuffer(3,ind_buf_4); SetIndexBuffer(4,ind_buf_5); SetIndexBuffer(5,ind_buf_6); SetIndexBuffer(6,ind_buf_7); SetIndexBuffer(7,ind_buf_8); switch(Индикатор) { case 0: Short="MultiCCI PRICE #"+MathRand(); break; case 1: Short="MultiCCI("+Период_CCI+") #" +MathRand(); break; case 2: Short="MultiRSI("+Период_RSI+") #" +MathRand(); break; case 3: Short="MultiMFI("+Период_MFI+") #" +MathRand(); break; case 4: Short="Период_WPR("+Период_WPR+") #"+MathRand(); break; default: Индикатор=0; Short="MultiCCI PRICE #"+MathRand(); break; } IndicatorShortName(Short); for(int dd=0; dd<8; dd++)labe[dd]=dd*Расстояние_меж_значками; if(SymbolsList(SymbolsList,true)==-1){ Alert("Ошибка открытия файла в SymbolsList(string &Symbols[], bool Selected)"); return(-1);} colore[0]=Color1;colore[1]=Color2;colore[2]=Color3;colore[3]=Color4; colore[4]=Color5;colore[5]=Color6;colore[6]=Color7;colore[7]=Color8; for(i=0; i<8; i++) { name_object[i]="label "+MathRand()+i; SetIndexLabel(i,SymbolsList[i]); if(SymbolsList[i]==Symbol()){ SetIndexStyle(i,DRAW_LINE,STYLE_SOLID,толщина_текущего_фин,colore[i]); continue;} SetIndexStyle(i,DRAW_LINE,STYLE_SOLID,толщина,colore[i]); } return(0); } //+------------------------------------------------------------------+ int deinit() { for(i=0; i<50000; i++)ObjectDelete(name_object[i]);Comment(""); return(0); } //+------------------------------------------------------------------+ int SymbolsList(string &Symbols[],bool Selected) { int Offset,SymbolsNumber; string SymbolsFileName; if(Selected) SymbolsFileName="symbols.sel"; else SymbolsFileName="symbols.raw"; int hFile=FileOpenHistory(SymbolsFileName,FILE_BIN|FILE_READ); if(hFile<0) return(-1); if(Selected) { SymbolsNumber=(FileSize(hFile)-4)/128; Offset=116; } else { SymbolsNumber=FileSize(hFile)/1936; Offset=1924; } ArrayResize(Symbols,SymbolsNumber); if(Selected) FileSeek(hFile,4,SEEK_SET); for(i=0; i5) counted_bars-=5; int limit=Bars-counted_bars; if(counted_bars==0) limit--; // т.к индикатор мультивалютный, проверим доступную историю if(limit>5) for(buf=0; bufi)limit=i-5; break;} if(limit<5)Alert("Слишком мало истории, проверьте архив котировок!"); ArrayResize(ind_buf,limit); // заполним двумерный массив значениями индекс - индикатор соответственно for(buf=0; buf