MultiCCI_PRICE_v5

Author: 26.04.2010�. costy_
9 Views
1 Downloads
0 Favorites
MultiCCI_PRICE_v5
//+------------------------------------------------------------------+
//|                                            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; i<SymbolsNumber; i++){Symbols[i]=FileReadString(hFile,12); FileSeek(hFile,Offset,SEEK_CUR);}
   FileClose(hFile);
   return(SymbolsNumber);
  }
//+------------------------------------------------------------------+
int start()
  {
// îãðàíè÷èì ïåðåñ÷åò ïîñëåäíèì áàðîì
   int    counted_bars=IndicatorCounted();
   if(counted_bars>5) counted_bars-=5;
   int limit=Bars-counted_bars;
   if(counted_bars==0) limit--;
// ò.ê èíäèêàòîð ìóëüòèâàëþòíûé, ïðîâåðèì äîñòóïíóþ èñòîðèþ   
   if(limit>5)
      for(buf=0; buf<ArrayRange(ind_buf,1); buf++)
         for(i=0; i<limit; i++)
               if(iClose(SymbolsList[buf],0,i)==0){ if(limit>i)limit=i-5; break;}
   if(limit<5)Alert("Ñëèøêîì ìàëî èñòîðèè, ïðîâåðüòå àðõèâ êîòèðîâîê!");
   ArrayResize(ind_buf,limit);
// çàïîëíèì äâóìåðíûé ìàññèâ çíà÷åíèÿìè èíäåêñ - èíäèêàòîð ñîîòâåòñòâåííî 
   for(buf=0; buf<ArrayRange(ind_buf,1); buf++)
     {
      for(i=0; i<limit; i++)
         switch(Èíäèêàòîð)
           {
            case 0:         ind_buf[i][buf]=(iMA(SymbolsList[buf], T , X, 0, Ìåòîä_Âû÷èñëåíèÿ, Èñïîëüçóåìàÿ_öeíà, iBarShift(SymbolsList[i],T,Time[i],FALSE )) -iMA(SymbolsList[buf], T , Ïåðèîä_CCI, 0, Ìåòîä_Âû÷èñëåíèÿ, Èñïîëüçóåìàÿ_öeíà, iBarShift(SymbolsList[buf],T,Time[i],FALSE )))/MarketInfo(SymbolsList[buf],MODE_POINT);                   break;
            case 1:         ind_buf[i][buf]= iCCI(SymbolsList[buf], T , Ïåðèîä_CCI, Èñïîëüçóåìàÿ_öeíà, iBarShift(SymbolsList[buf],T,Time[i],FALSE ));      break;
            case 2:         ind_buf[i][buf]= iRSI(SymbolsList[buf], T , Ïåðèîä_RSI, Èñïîëüçóåìàÿ_öeíà, iBarShift(SymbolsList[buf],T,Time[i],FALSE ));          break;
            case 3:         ind_buf[i][buf]= iMFI(SymbolsList[buf], T , Ïåðèîä_MFI,  iBarShift(SymbolsList[buf],T,Time[i],FALSE ));         break;
            case 4:         ind_buf[i][buf]= iWPR(SymbolsList[buf], T , Ïåðèîä_WPR,  iBarShift(SymbolsList[buf],T,Time[i],FALSE ));       break;
           }
     }

// ïðèñâîèì çíà÷åíèÿ èíäèêàòîðíûì áóôåðàì
   for(i=0; i<limit; i++){ind_buf_1[i]=ind_buf[i][0];   ind_buf_2[i]=ind_buf[i][1];   ind_buf_3[i]=ind_buf[i][2];   ind_buf_4[i]=ind_buf[i][3];   ind_buf_5[i]=ind_buf[i][4];   ind_buf_6[i]=ind_buf[i][5];   ind_buf_7[i]=ind_buf[i][6];   ind_buf_8[i]=ind_buf[i][7];   }
   if(Ñîçäàâàòü_ïîäïèñè)CreateLabels();
   return(0);
  }
//+------------------------------------------------------------------+
void CreateLabels()
  {
// ïðèñâîèì çíà÷åíèÿ èíäèêàòîðíûõ áóôåðîâ òåêñòó ïîäïèñÿì
   for(buf=0; buf<8; buf++) text[buf]=DoubleToStr(ind_buf[0][buf],2);
// ñîçäàäèì ïîäïèñè
   for(i=0; i<ArrayRange(ind_buf,1); i++)
     {
      òîëùèíà=1;ðàçøðèô=10;
      if(SymbolsList[i]==Symbol()) {òîëùèíà=òîëùèíà_òåêóùåãî_ôèí;ðàçøðèô=ðàçøðèô_òåêóùåãî_ôèí;}
      ObjectDelete(name_object[i]);
      ObjectCreate(name_object[i],OBJ_LABEL,WindowFind(Short),0,0);
      ObjectSet(name_object[i],OBJPROP_CORNER,1);
      ObjectSet(name_object[i],OBJPROP_YDISTANCE,labe[i]+5);
      ObjectSet(name_object[i],OBJPROP_XDISTANCE,5);
      ObjectSetText(name_object[i],text[i]+"   "+SymbolsList[i],ðàçøðèô,"Times New Roman",colore[i]);
     }
  }
//+------------------------------------------------------------------+

Comments