i-Moving_Average_all_TF_Real_v6xx

Author: Copyright � 2014, MetaQuotes Software Corp.
Indicators Used
Moving average indicatorMoving average indicator
Miscellaneous
It issuies visual alerts to the screenImplements a curve of type %1
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 supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---