Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
IBS_RSI_CCI_v3
/*///+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
Òðè ìåòîäèêè ðàñ÷¸òà IBS,RSI,CCI âñå ðàâíîïðàâíû â óïðàëÿåìîñòè, ó âñåõ åñòü ïåðåâîðîò ðàñ÷¸òà,
êîýôôèöèåíò îòíîñèòåëüíîñòè è àïëèåäïðàéñ ( äëÿ IBS ýòî íå çíà÷àùèé ïàðàìåòð, íî ñòîèò äëÿ ñèììåòðèè ïàðàìåòðîâ).
Îòðèñîâêà ëèíèé èä¸ò êàê ñðåäíÿÿ îò òð¸õ IBS,RSI,CCI .
Âíóòðè êàê ïðÿìîãî òàê è ïåðåâ¸ðíóòîãî ìîæíî â ñâîþ î÷åðåäü ïåðåâåðíóòü îäèíó èç ìåòîäèê,
òå îíè íå çàâèñèìû êàê ïî ïåðåâîðîòó òàê è ïî îòíîñèòåëüíîñòè.
Òàê æå ÷åðåç Shift ëèíèè ìîæíî äâèãàòü (Shift íå ìîæåò áûòü îòðèöàòåëüíîé).
"âàðèàíò_1" óïðàâëÿåò âàðèàíòàìè ðàñ÷¸òà 1 èëè 2. Ïî óìîë÷àíèþ ñòîèò 2 --> "âàðèàíò_1 = false".
"positive" óïðàâëÿåò çåðêàëüíîñòüþ îòîáðàæåíèÿ. Ïî óìîë÷àíèþ ñòîèò íîðìàëüíîå îòîáðàæåíèå --> "positive = true".
Ìåòîäû ñêîëüçÿùèõ:
MODE_SMA 0 Ïðîñòîå ñêîëüçÿùåå ñðåäíåå
MODE_EMA 1 Ýêñïîíåíöèàëüíîå ñêîëüçÿùåå ñðåäíåå
MODE_SMMA 2 Ñãëàæåííîå ñêîëüçÿùåå ñðåäíåå
MODE_LWMA 3 Ëèíåéíî-âçâåøåííîå ñêîëüçÿùåå ñðåäíåå
app_price:
PRICE_CLOSE 0 Öåíà çàêðûòèÿ
PRICE_OPEN 1 Öåíà îòêðûòèÿ
PRICE_HIGH 2 Ìàêñèìàëüíàÿ öåíà
PRICE_LOW 3 Ìèíèìàëüíàÿ öåíà
PRICE_MEDIAN 4 Ñðåäíÿÿ öåíà, (high+low)/2
PRICE_TYPICAL 5 Òèïè÷íàÿ öåíà, (high+low+close)/3
PRICE_WEIGHTED 6 Âçâåøåííàÿ öåíà çàêðûòèÿ, (high+low+close+close)/4
ìîäèôèêàöèÿ èíäèêàòîðà WKBIBS, ïî ïðîñüáå Martingeila
/*///+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
//+------------------------------------------------------------------+
//| IBS_RSI_CCI_v3.mq4 |
//| Urain |
//+------------------------------------------------------------------+
#property copyright "Urain"
#property link ""
#property indicator_separate_window
//#property indicator_minimum 0
//#property indicator_maximum 100
#property indicator_buffers 3
#property indicator_color1 Yellow // áóôåð 0 - ñèãíàëüíàÿ ëèíèÿ
#property indicator_color2 Red // áóôåð 1 - íà ïðîäàæó âåðõíÿÿ ëèíèÿ
#property indicator_color3 Blue // áóôåð 2 - íà ïîêóïêó íèæíÿÿ ëèíèÿ
#property indicator_level1 0.0
//---- input parameters---------------------------------------
extern int per_IBS = 5;
extern int ãëóøêà = 0;
extern double koef_ibs = 7.0;
extern bool ibs =true;
extern int per_RSI = 14;
extern int app_price_RSI = 0; //app_price
extern double koef_rsi = 9.0;
extern bool rsi =true;
extern int per_CCI = 14;
extern int app_price_CCI = 0; //app_price
extern double koef_cci = 1.0;
extern bool cci =true;
extern int Shift = 0;
extern int porog = 50;
//---- input parameters---------------------------------------
extern bool âàðèàíò_1 =false;
extern bool positive =true;
extern int RangePeriod_VKWB = 25;
extern int SmoothPeriod_VKWB = 3;
extern int SmoothMode_VKWB = 0;//Ìåòîäû ñêîëüçÿùèõ
//---- buffers
double E0[], E1[], E2[], E3[], E4[], E5[], E6[];
int kibs=-1,kcci=-1,krsi=-1,posit=-1,xma1=1;
//+------------------------------------------------------------------+
int init()
{
//---- indicators
IndicatorBuffers(7);
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,E0);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,E5);
SetIndexDrawBegin(0,SmoothPeriod_VKWB);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,E6);
SetIndexDrawBegin(1,SmoothPeriod_VKWB);
SetIndexBuffer(3,E1);
SetIndexBuffer(4,E2);
SetIndexBuffer(5,E3);
SetIndexBuffer(6,E4);
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);
}
//----
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
---