Indicators Used
Miscellaneous
1
Views
0
Downloads
0
Favorites
MA_filter_6MA_FlatTrend_direct
//+------------------------------------------------------------------+
//| 4MAs Trend.mq4|
//| Flat Trend |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_minimum 0
#property indicator_maximum 1
#property indicator_buffers 3
#property indicator_color1 LimeGreen
#property indicator_color2 Red
#property indicator_color3 Gold
//---- input parameters
extern int Minutes=0;
extern int MA1_Period=7;
extern int MA1_Mode=3;
extern int MA2_Period=9;
extern int MA2_Mode=3;
extern int MA3_Period=11;
extern int MA3_Mode=3;
extern int MA4_Period=13;
extern int MA4_Mode=3;
extern int MA5_Period=15;
extern int MA5_Mode=3;
extern int MA6_Period=21;
extern int MA6_Mode=3;
extern bool DirectionFilterOn = true;
//extern int MaxBarsToCount=1000;
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
string TimeFrameStr;
double MA1,MA2,MA3,MA4,MA5,MA6;
double MA1p,MA2p,MA3p,MA4p,MA5p,MA6p;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,5,LimeGreen);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,5, Red);
SetIndexBuffer(1,ExtMapBuffer2);
SetIndexStyle(2,DRAW_HISTOGRAM,STYLE_SOLID,5, Gold);
SetIndexBuffer(2,ExtMapBuffer3);
for(int i=0; i<=indicator_buffers; i++) SetIndexLabel(i,NULL);
switch(Minutes)
{
case 1 : TimeFrameStr="M1"; break;
case 5 : TimeFrameStr="M5"; break;
case 15 : TimeFrameStr="M15"; break;
case 30 : TimeFrameStr="M30"; break;
case 60 : TimeFrameStr="H1"; break;
case 240 : TimeFrameStr="H4"; break;
case 1440 : TimeFrameStr="D1"; break;
case 10080 : TimeFrameStr="W1"; break;
case 43200 : TimeFrameStr="MN"; break;
default : TimeFrameStr="TF0"; Minutes=0;
}
if (DirectionFilterOn)string name = " Direction Filter On "; else name = "";
IndicatorShortName("Flat Trend w 6MA ["+TimeFrameStr+"] "+name);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int i,limit, counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit= Bars-counted_bars;
for(i=limit; i>=0; i--)
{
ExtMapBuffer1[i]=0.0; ExtMapBuffer2[i]=0.0; ExtMapBuffer3[i]=0.0;
MA1=iMA(NULL,Minutes,MA1_Period,0,MA1_Mode,5,i);
MA2=iMA(NULL,Minutes,MA2_Period,0,MA2_Mode,5,i);
MA3=iMA(NULL,Minutes,MA3_Period,0,MA3_Mode,5,i);
MA4=iMA(NULL,Minutes,MA4_Period,0,MA4_Mode,5,i);
MA5=iMA(NULL,Minutes,MA5_Period,0,MA5_Mode,5,i);
MA6=iMA(NULL,Minutes,MA6_Period,0,MA6_Mode,5,i);
if (DirectionFilterOn)
{
MA1p=iMA(NULL,Minutes,MA1_Period,0,MA1_Mode,5,i+1);
MA2p=iMA(NULL,Minutes,MA2_Period,0,MA2_Mode,5,i+1);
MA3p=iMA(NULL,Minutes,MA3_Period,0,MA3_Mode,5,i+1);
MA4p=iMA(NULL,Minutes,MA4_Period,0,MA4_Mode,5,i+1);
MA5p=iMA(NULL,Minutes,MA5_Period,0,MA5_Mode,5,i+1);
MA6p=iMA(NULL,Minutes,MA6_Period,0,MA6_Mode,5,i+1);
if(MA1>MA1p&&MA2>MA2p&&MA3>MA3p&&MA4>MA4p&&MA5>MA5p&&MA6>MA6p) ExtMapBuffer1[i] = 1;
else
if(MA1<MA1p&&MA2<MA2p&&MA3<MA3p&&MA4<MA4p&&MA5<MA5p&&MA6<MA6p) ExtMapBuffer2[i] = 1;
else ExtMapBuffer3[i] = 1;
}
else
{
if(MA1>MA2 && MA2>MA3 && MA3>MA4 && MA4>MA5 && MA5>MA6) ExtMapBuffer1[i] = 1;
else
if(MA1<MA2 && MA2<MA3 && MA3<MA4 && MA4<MA5 && MA5<MA6) ExtMapBuffer2[i] = 1;
else ExtMapBuffer3[i] = 1;
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
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
---