Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
Moving_Average_CDlBSc
//***********************************************************************//
//***********************************************************************//
//* Moving_Average_CD(BS).mq4 *//
//* Copyright © 2009, BACKSPACE *//
//* Updating from 27.02.2010 *//
//***********************************************************************//
//***********************************************************************//
//* Òîðãóé òðåíäû *//
//* Óìåíüøàé ïîòåðè *//
//* Äàâàé ïðèáûëè ðàñòè *//
//* Óïðàâëÿé ðèñêàìè *//
//***********************************************************************//
//***********************************************************************//
#property copyright "Copyright © 2009, BACKSPACE" //
#property link "Updating from 27.02.2010" //
//
#property indicator_separate_window //
#property indicator_buffers 2 //
#property indicator_color1 Blue //
#property indicator_color2 Red //
//******************// Ââîä ïàðàìåòðîâ èíäèêàòîðà
extern int FastPeriod=12; // - ïåðèîä Fast Moving Average
extern int SlowPeriod=26; // - ïåðèîä Slow Moving Average
extern int SignalPeriod=9; // - ïåðèîä Signal Moving Average
extern double MARound=5; // - êîýôôèöèåíò îêðóãëåíèÿ
//******************// Ñîñòàâíûå ÷àñòè èíäèêàòîðà
double MACD[], // - Moving Average CD
SignalMA[], // - Signal Moving Average
MACDAle[], // - Slow Alert
MACDRond[]; // - Slow Ronding Off
//******************// Ãëîáàëüíûå ïåðåìåííûå
int Counter, // - ñ÷¸ò÷èê áàðîâ
FaPer, // - ïåðèîä Fast Moving Average
SlPer, // - ïåðèîä Slow Moving Average
SiPer; // - ïåðèîä Signal Moving Average
double MaRo; // - êîýôôèöèåíò îêðóãëåíèÿ
//***********************************************************************//
//**********************-Indicator Initialization-***********************//
//***********************************************************************//
//
int init() //
{ //******************// Íàñòðîéêè ãðàôè÷åñêîãî îòîáðàæåíèÿ
IndicatorBuffers(4); //
SetIndexLabel(0,"MACDRond"); //
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2); // SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexBuffer(0,MACDRond); //
SetIndexLabel(1,"SignalMA"); //
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2); //
SetIndexBuffer(1,SignalMA); //
SetIndexBuffer(2,MACD); //
SetIndexBuffer(3,MACDAle); //
//
//******************// Ïðîâåðêà ïåðèîäà èíäèêàòîðà
if(FastPeriod>=1 && FastPeriod<=48) //
FaPer=FastPeriod; //
else //
FaPer=12; //
if(SlowPeriod>=1 && SlowPeriod<=120) //
SlPer=SlowPeriod; //
else //
SlPer=26; //
if(SignalPeriod>=1 && SignalPeriod<=22) //
SiPer=SignalPeriod; //
else //
SiPer=9; //
//******************// Ïðîâåðêà âåëè÷èíû îêðóãëåíèÿ
if(MARound>=0 && MARound<=50) //
MaRo = Point*MARound; //
else //
MaRo = Point*5; //
//*********//
return(0); //
} //
//
//***********************************************************************//
//**************************-Moving_Average_CD-**************************//
//***********************************************************************//
//
int start() //
{ //
//******************// Ïðîâåðêà ðàáîòû èíäèêàòîðà
if(FaPer>Bars||SlPer>Bars||SiPer>Bars||MaRo>Bars) //
{ //
Alert("Íåäîñòàòî÷íî èíôîðìàöèè äëÿ ðàáîòû èíäèêàòîðà."); //
return(0); //
} //
int counted_bars = IndicatorCounted();
if(counted_bars < 0) return(-1);
if(counted_bars > 0) counted_bars--;
int limit = Bars - counted_bars;
if(counted_bars==0) limit--;
for(int macd=limit-1; macd>=0; macd--) //
{ //
Moving_Average_CD(macd); //******************// Moving Average CD
MACD_Rounding_Off(macd); //******************// MACD Rounding Off
} //
for(int sima=limit-1; sima>=0; sima--) //
{ //
SignalMA[sima]=iMAOnArray(MACD,Bars,SiPer,0,MODE_SMA,sima); //
} //
//*********//
return(0); //
} //
//
//***********************************************************************//
//******************************-SubPogramms-****************************//
//***********************************************************************//
//
//***********************************// Moving Average CD
double Moving_Average_CD(int ma) //
{ //
MACD[ma]=iMA(NULL,0,FaPer,0,MODE_EMA,PRICE_CLOSE,ma)- //
iMA(NULL,0,SlPer,0,MODE_EMA,PRICE_CLOSE,ma); //
//*********//
return(0); //
} //
//
//***********************************// MACD Rounding Off
double MACD_Rounding_Off(int mro) //
{ //
if(MACD[mro]>MACD[mro+1]+MaRo|| //
MACD[mro]<MACD[mro+1]-MaRo|| //
MACD[mro]>MACDRond[mro+1]+MaRo|| //
MACD[mro]<MACDRond[mro+1]-MaRo|| //
(MACD[mro]>MACDRond[mro+1] && MACDAle[mro+1]==1)|| //
(MACD[mro]<MACDRond[mro+1] && MACDAle[mro+1]==-1)) //
MACDRond[mro] =MACD[mro]; //
else //
MACDRond[mro]=MACDRond[mro+1]; //
if(MACDRond[mro]<MACDRond[mro+1]) MACDAle[mro]=-1; //
if(MACDRond[mro]>MACDRond[mro+1]) MACDAle[mro]=1; //
if(MACDRond[mro]==MACDRond[mro+1])MACDAle[mro]=MACDAle[mro+1]; //
//*********//
return(0); //
} //
//
//***********************************************************************//
//********************************************************************BS*//
//***********************************************************************//
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
---