Indicators Used
Miscellaneous
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 Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---