MA_Level_v2

Author: Grell
Indicators Used
Moving average indicator
Miscellaneous
Implements a curve of type %1
0 Views
0 Downloads
0 Favorites
MA_Level_v2
//+------------------------------------------------------------------+
//|                                                  MA_Level_v2.mq4 |
//|                                                            Grell |
//|                                                dwgrell@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Grell"
#property link      "dwgrell@gmail.com"
#property indicator_separate_window //Â îòäåëüíîì îêíå
#property indicator_buffers 1 //Êîëè÷åñòâî áóôåðîâ
#property indicator_color1 Red //Öâåò îòîáðàæåíèÿ
//Âõîäíûå ïàðàìåòðû
extern int       period=24;
extern int       method_ma=0;
extern int       ap_price=1;
//Áóôåðû
double MA_L[];
//+------------------------------------------------------------------+
//| Èíèöèàëèçàöèÿ èíäèêàòîðà                                         |
//+------------------------------------------------------------------+
int init()
  {
//èíäèêàòîðû
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,MA_L);
   return(0);
  }
//+------------------------------------------------------------------+
//| Äåèíèöèàëèçàöèÿ èíäèêàòîðà                                       |
//+------------------------------------------------------------------+
int deinit()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| Ðàñ÷åò èíäèêàòîðà                                                |
//+------------------------------------------------------------------+
int start()
  {
   if(method_ma>3 || method_ma<0)method_ma=0;
   if(ap_price>6 || ap_price<0)ap_price=1;
   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-=1+period+1;

   for(int i=0; i<limit; i++)//Ãëàâíûé öèêë
     {
      MA_L[i]=0;
      for(int j=0;j<period;j++)//Âíóòðåííèé öèêë
        {
         double ma0=iMA(NULL,0,period,0,method_ma,ap_price,i+j);//Òåêóùàÿ ñðåäíÿÿ
         double ma1=iMA(NULL,0,period,0,method_ma,ap_price,i+j+1);//Ïðåäûäóùàÿ ñðåäíÿÿ
         double open0=Open[i+j];//Òåêóùàÿ öåíà îòêðûòèÿ
         double open1=Open[i+j+1];//Ïðåäûäóùàÿ öåíà îòêðûòèÿ
         MA_L[i]+=Calc(ma0,ma1,open0,open1);
        }
      MA_L[i]=MA_L[i]/period;
     }
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int Calc(double ma0,double ma1,double open0,double open1)
  {
   if(ma0<open0 && ma0>ma1 && open0>open1)return(2);//Ñðåäíÿÿ ïîä öåíîé, âîçðàñòàåò âìåñòå ñ öåíîé
   if(ma0<open0 && ma0>ma1)return(1);//Ñðåäíÿÿ ïîä öåíîé, âîçðàñòàåò
   if(ma0>ma1&&open0>open1)return(1);//Ñðåäíÿÿ âîçðàñòàåò âìåñòå ñ öåíîé
   if(ma0>open0 && ma0<ma1 && open0<open1)return(-2);//Ñðåäíÿÿ íàä öåíîé, óáûâàåò âìåñòå ñ öåíîé
   if(ma0>open0 && ma0<ma1)return(-1);//Ñðåäíÿÿ íàä öåíîé, óáûâàåò
   if(ma0<ma1&&open0<open1)return(-1);//Ñðåäíÿÿ óáûâàåò âìåñòå ñ öåíîé
   return(0);
  }
//+------------------------------------------------------------------+

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 ---