Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
i-Moving_Average_all_TF_Real_v6xx
//+------------------------------------------------------------------+
//| i-Moving_Average_all_TF_Real_v6xx.mq4 |
//| Copyright © 2014, MetaQuotes Software Corp. |
//| "http://www.mql4.com/ru/users/costy_" |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
#property copyright "Copyright © 2014, MetaQuotes Software Corp."
#property link "http://www.mql4.com/ru/users/costy_"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- input parameters
extern ENUM_TIMEFRAMES tf=PERIOD_H1;
extern int MaPeriod=14;
extern ENUM_MA_METHOD MaMethod=MODE_EMA;
extern ENUM_APPLIED_PRICE price=PRICE_CLOSE;
extern int Shift=0;
double MaBuffer[],buf_arrey[];
datetime save_time=0;
int i=0;
string short_name="";
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void init()
{
ArraySetAsSeries(buf_arrey,true);
//if(tf<Period())tf=Period(); //ïî æåëàíèþ
//if(MaPeriod<2){MaPeriod=2; Alert("Ïðîâåðüòå ïðàâèëüíîñòü ââîäà MaPeriod");}//ïî æåëàíèþ
switch(MaMethod)
{
case 0: short_name="SMA("+TF()+", MaPeriod="+MaPeriod+")"; break;
case 1: short_name="EMA("+TF()+", MaPeriod="+MaPeriod+")"; break;
case 2: short_name="SMMA("+TF()+", MaPeriod="+MaPeriod+")"; break;
case 3: short_name="LWMA("+TF()+", MaPeriod="+MaPeriod+")"; break;
default : short_name="XHA"; Alert("Ïðîâåðüòå ïðàâèëüíîñòü ââîäà ìåòîäà ÌÀ");
}
IndicatorShortName(short_name);
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,MaBuffer);
SetIndexShift(0,Shift);
SetIndexLabel(0,short_name);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void start()
{
static bool in=true;
if(in)
{
ArrayFree(buf_arrey);
ArrayResize(buf_arrey,iBars(Symbol(),tf)-iBarShift(Symbol(),tf,Time[Bars-1]),50000);
for(int j=iBars(Symbol(),tf)-1-iBarShift(Symbol(),tf,Time[Bars-1]),v=iBars(Symbol(),tf)-1;j>0;j--)
buf_arrey[j]=iMA(Symbol(),tf,1,0,MODE_SMA,price,v);
save_time=iTime(Symbol(),tf,iBarShift(Symbol(),tf,Time[Bars-1]));
in=false;
}
//---
for(i=Bars-IndicatorCounted(); i>=0; i--)
{
if(save_time!=iTime(Symbol(),tf,iBarShift(Symbol(),tf,Time[i])))
{
save_time=iTime(Symbol(),tf,iBarShift(Symbol(),tf,Time[i]));
buf_arrey[0]=iMA(Symbol(),tf,1,0,MODE_SMA,price,1+iBarShift(Symbol(),tf,Time[i]));
ArrayResize(buf_arrey,ArraySize(buf_arrey)+1);
}
buf_arrey[0]=Price(price);
MaBuffer[i]=iMAOnArray(buf_arrey,0,MaPeriod,0,MaMethod,0);
}
}
//+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
// ôóíêöèÿ double Price(price);
//+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
double Price(int price_)
{
switch(price_)
{
case 0 : return (Close[i]);
case 1 : return (iMA(Symbol(),tf,1,0,0,PRICE_OPEN,iBarShift(Symbol(),tf,Time[i])));
case 2 : int kol_vo_pois=iBarShift(Symbol(),Period(),iTime(Symbol(),tf,iBarShift(Symbol(),tf,Time[i])))-i;
if(kol_vo_pois==0) return ( High[i]);
return ( High[iHighest(Symbol(),Period(),MODE_HIGH,kol_vo_pois,i)]);
case 3 : kol_vo_pois=iBarShift(Symbol(),Period(),iTime(Symbol(),tf,iBarShift(Symbol(),tf,Time[i])))-i;
if(kol_vo_pois==0) return ( Low[i]);
return ( Low[iLowest(Symbol(),Period(),MODE_LOW,kol_vo_pois,i)]);
case 4 : kol_vo_pois=iBarShift(Symbol(),Period(),iTime(Symbol(),tf,iBarShift(Symbol(),tf,Time[i])))-i;
if(kol_vo_pois==0) return ( (High[i]+Low[i])/2);
return ( (High[iHighest(Symbol(),Period(),MODE_HIGH,kol_vo_pois,i)]+Low[iLowest(Symbol(),Period(),MODE_LOW,kol_vo_pois,i)])/2);
case 5 : Print("Price not valide"); Comment("Price not valide"); return(0);
case 6 : Print("Price not valide"); Comment("Price not valide"); return(0);
}
return(0);
}
//+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
// ôóíêöèÿ string TF();
//+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
string TF()
{
switch(tf)
{
case 1 : return("M1"); case 5 : return("M5"); case 15 : return("M15");
case 30 : return("M30"); case 60 : return("H1"); case 240 : return("H4");
case 1440 : return("D1"); case 10080 : return("W1"); case 43200 : return("MN1");
default : return("Current");
}
return("Current");
}
//+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
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
---