MultiCCI_PRICE_v5

Author: 26.04.2010�. costy_
Price Data Components
Series array that contains close prices for each bar
Indicators Used
Moving average indicatorCommodity channel indexRelative strength indexMoney flow indexLarry William percent range indicator
Miscellaneous
It issuies visual alerts to the screenImplements a curve of type %1It reads information from a file
1 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

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---