MA_PriceCcross2BcloseD

Author:
MA_PriceCcross2BcloseD
Indicators Used
Moving average indicator
Miscellaneous
Implements a curve of type %1
0 Views
0 Downloads
0 Favorites
MA_PriceCcross2BcloseD
//+------------------------------------------------------------------+
//|                                                            MA_xP |
//+------------------------------------------------------------------+
//2008fxtsd    ki
#property copyright ""
#property link      ""

#property indicator_chart_window
#property indicator_buffers 3

#property indicator_color1 DarkSlateGray
#property indicator_color2 OrangeRed
#property indicator_color3 DeepSkyBlue



extern int ma_period =9;
extern int ma_method =1;
extern int ma_price  =0;

extern int breakBars =1;
extern bool drawLine = false;

double Buffer1[];
double Buffer2[];
double Buffer3[];



//+---

int init()
  {

  SetIndexBuffer(0,Buffer1); SetIndexStyle(0,DRAW_LINE);
  SetIndexBuffer(1,Buffer2);  
  SetIndexBuffer(2,Buffer3); 
   
   if (drawLine)  {SetIndexStyle(1,DRAW_LINE);SetIndexStyle(2,DRAW_LINE);}
   else           {
   SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1,158); SetIndexEmptyValue (1,EMPTY_VALUE);
   SetIndexStyle(2,DRAW_ARROW); SetIndexArrow(2,158); SetIndexEmptyValue (2,EMPTY_VALUE);
                   }


   return(0);
  }

//+----


int start()
{
   int i,limit;
   int 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--)
   {

   double MA =iMA(NULL,0,ma_period,0,ma_method,ma_price,i) ;
   double MA1=iMA(NULL,0,ma_period,0,ma_method,ma_price,i+1) ;
   double MA2=iMA(NULL,0,ma_period,0,ma_method,ma_price,i+2) ;

   Buffer1[i] = MA;   
   Buffer2[i] = EMPTY_VALUE; 
   Buffer3[i] = EMPTY_VALUE;

      
      int BreakBars=MathAbs(breakBars);
      
      if (BreakBars==0)
      {
      if (Close[i]<MA) Buffer2[i]= MA;   
      if (Close[i]>MA) Buffer3[i]= MA;
      }

      if (BreakBars==1)
      {   
      if (Close[i]<MA &&Close[i+1]<MA1) Buffer2[i]= MA;   
      if (Close[i]>MA &&Close[i+1]>MA1) Buffer3[i]= MA;
      }                     

      if (BreakBars==2)
      {   
      if (Close[i]<MA &&Close[i+1]<MA1 &&Close[i+2]<MA2) Buffer2[i]= MA;   
      if (Close[i]<MA &&Close[i+1]<MA1 &&Close[i+2]>MA2) Buffer3[i]= MA;
      }                     

      if (BreakBars>=2)BreakBars=2;


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