IBS_RSI_CCI_v4

Author: Martingeil
Indicators Used
Moving average indicatorCommodity channel indexRelative strength index
Miscellaneous
Implements a curve of type %1
1 Views
0 Downloads
0 Favorites
IBS_RSI_CCI_v4

/*Òðè ìåòîäèêè ðàñ÷¸òà IBS,RSI,CCI âñå ðàâíîïðàâíû â óïðàëÿåìîñòè, ó âñåõ åñòü ïåðåâîðîò ðàñ÷¸òà, 
êîýôôèöèåíò îòíîñèòåëüíîñòè è àïëèåäïðàéñ ( äëÿ IBS ýòî íå çíà÷àùèé ïàðàìåòð, íî ñòîèò äëÿ ñèììåòðèè ïàðàìåòðîâ).
Îòðèñîâêà ëèíèé èä¸ò êàê ñðåäíÿÿ îò òð¸õ IBS,RSI,CCI .
Âíóòðè êàê ïðÿìîãî òàê è ïåðåâ¸ðíóòîãî ìîæíî â ñâîþ î÷åðåäü ïåðåâåðíóòü îäèíó èç ìåòîäèê,
òå îíè íå çàâèñèìû êàê ïî ïåðåâîðîòó òàê è ïî îòíîñèòåëüíîñòè.
Òàê æå ÷åðåç Shift ëèíèè ìîæíî äâèãàòü (Shift íå ìîæåò áûòü îòðèöàòåëüíîé).
"âàðèàíò_1" óïðàâëÿåò âàðèàíòàìè ðàñ÷¸òà 1 èëè 2. Ïî óìîë÷àíèþ ñòîèò 2 --> "âàðèàíò_1 = false".
"positive" óïðàâëÿåò çåðêàëüíîñòüþ îòîáðàæåíèÿ. Ïî óìîë÷àíèþ ñòîèò íîðìàëüíîå îòîáðàæåíèå --> "positive = true".*/
//+------------------------------------------------------------------+
//|                                               IBS_RSI_CCI_v4.mq4 |
//|                                                       Martingeil |
//+------------------------------------------------------------------+
#property copyright "Martingeil"
#property link      "fx.09@mail.ru"
 
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Red   // áóôåð 0 - ñèãíàëüíàÿ ëèíèÿ
#property indicator_color2 Blue  // áóôåð 1 - ôèëüòð VKWB
#property indicator_width1 2
#property indicator_width2 2
#property indicator_level1 0.0
//---- ïàðàìåòðû ñðåäíåé ëèíèè -------------------------------
extern int      per_IBS  =   5; //ïåðèîä IBS
extern int      per_RSI  =  14; //ïåðèîä RSI 
extern int      per_CCI  =  14; //ïåðèîä CCI
extern int      porog    =  50; //ïîðîã
//---- ïàðàìåòð ôèëüòðà ëèíèè VKWB ---------------------------           
extern int      RangePeriod_VKWB  = 25;
extern int      SmoothPeriod_VKWB =  3;
//------------------------------------------------------------
double koef_ibs = 7.0;
double koef_rsi = 9.0;
double koef_cci = 1.0;
int ãëóøêà = 0;//ïóñòîå çíà÷åíèå äëÿ ñèììåòðèè ïàðàìåòðîâ 
int app_price_RSI = 0;//app_price
int app_price_CCI = 0;//app_price
bool ibs = true;//ïðèìåíÿòü ibs äëÿ ðàñ÷åòà ñðåäíåé ëèíèè
bool rsi = true;//ïðèìåíÿòü rsi äëÿ ðàñ÷åòà ñðåäíåé ëèíèè
bool cci = true;//ïðèìåíÿòü cci äëÿ ðàñ÷åòà ñðåäíåé ëèíèè
bool âàðèàíò_1 = false;//âûáîð âàðèàíòîâ ðàñ÷åòà èíäèêàòîðà, ïî óìîë÷àíèþ ñòîèò 2- âàðèàíò         
int Shift = 0;//ñäâèã ïî áàðó
bool positive = true;//çåðêàëî 
int SmoothMode_VKWB = 0;//Ìåòîäû ñêîëüçÿùèõ VKWB
//------------------------------------------------------------          
//---- buffers
double E0[], E1[], E2[], E3[], E4[], E5[], E6[], E7[];
int kibs=-1,kcci=-1,krsi=-1,posit=-1,xma1=1;
//------------------------------------------------------------
int init(){
//---- indicators
   IndicatorBuffers(8); 
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,E0);
   SetIndexStyle(1,DRAW_LINE); 
   SetIndexBuffer(1,E7); 

   SetIndexBuffer(2,E1);   
   SetIndexBuffer(3,E2);
   SetIndexBuffer(4,E3);
   SetIndexBuffer(5,E4);  
   SetIndexBuffer(6,E5);
   SetIndexDrawBegin(6,SmoothPeriod_VKWB);   
   SetIndexBuffer(7,E6);
   SetIndexDrawBegin(7,SmoothPeriod_VKWB); 
        
   if(cci)kcci=1; if(rsi)krsi=1; if(ibs)kibs=1; 
   if(âàðèàíò_1)xma1=0; if(positive)posit=1;   
//----       
return(0);}
//------------------------------------------------------------
int deinit(){return(0);}
//------------------------------------------------------------
int start()
  {
   int  cb=IndicatorCounted();
//----
   int i,limit,limit1,limit2,n_max,n_min;
   if(cb==0){limit=Bars-1; limit1=Bars-RangePeriod_VKWB; limit2=limit1-SmoothPeriod_VKWB;}
   if(cb>0) {limit=Bars-cb; limit1=Bars-cb; limit2=limit1;}  
   limit--;limit1--;limit2--;
   
   Delitel(E2,limit);
   for(i=limit;i>=0;i--)
      {E1[i]=posit*iMA_IBS_RSI_CCI( E2,
                                    per_IBS , per_RSI      , per_CCI      ,
                                    ãëóøêà  , app_price_RSI, app_price_CCI,
                                    koef_ibs, koef_rsi     , koef_cci     ,
                                    kibs    , krsi         , kcci         ,
                                    i+Shift);                   
      }
   for(i = limit;i>=0;i--)
      {E0[i]=E0[i+1];
       double raz10=E1[i]-E0[i];      
       if(MathAbs(raz10)>porog) 
      {if(raz10>0) E0[i]=E1[i]-porog*xma1;
       if(raz10<0) E0[i]=E1[i]+porog*xma1;
      }         
      } 
   for(i=limit1; i>=0;i--)
      {n_max=ArrayMaximum(E0,RangePeriod_VKWB,i);
       n_min=ArrayMinimum(E0,RangePeriod_VKWB,i);
       E3[i]=E0[n_max];
       E4[i]=E0[n_min];
      }
   for(i=limit2; i>=0;i--)
      {E5[i]=iMAOnArray(E3,0,SmoothPeriod_VKWB,0,SmoothMode_VKWB,i);
       E6[i]=iMAOnArray(E4,0,SmoothPeriod_VKWB,0,SmoothMode_VKWB,i);
      }   
   for(i=limit; i>=0;i--)
      {E7[i]=(E5[i]+E6[i])/2;
      }                             
//----
return(0);}
//------------------------------------------------------------
void Delitel(double& ExtMapBuffer[],int limit)
{
 double delitel;
 for(int i=limit;i>=0;i--)
    {delitel=High[i]-Low[i];
     if (delitel>0)  ExtMapBuffer[i]=(Close[i]-Low[i])/delitel;
     else ExtMapBuffer[i]=0.0;
    }
return;}
//------------------------------------------------------------ 
double iMA_IBS_RSI_CCI(double ExtMapBuffer[],
                      int per_IBS,int per_RSI,int per_CCI,
                      int ãëóøêà,int app_price_RSI,int app_price_CCI,
                      double koef_ibs,double koef_rsi,double koef_cci,
                      int kibs,int krsi,int kcci,
                      int i)
{
 double sum=0.0;
 sum+=kibs*(iMAOnArray(ExtMapBuffer,0,per_IBS,0,MODE_SMA,i)-0.5)*100.0*koef_ibs;
 sum+=kcci*iCCI(NULL,0,per_CCI,app_price_CCI,i)*koef_cci; 
 sum+=krsi*(iRSI(NULL,0,per_RSI,app_price_RSI,i)-50.0)*koef_rsi;
 sum*=1.0/3.0; 
return(sum);}
//------------------------------------------------------------

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 ---