MAX Moving Average_01

MAX Moving Average_01
Miscellaneous
Implements a curve of type %1
0 Views
0 Downloads
0 Favorites
MAX Moving Average_01
#property link      "http://www.themovingaverage.com"
#property indicator_chart_window

#property indicator_buffers 4
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_color3 Crimson
#property indicator_color4 DarkTurquoise

double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];

extern int firstback=50;
extern int secondback=14;
extern int countbars=5000;
extern int power=2;

int init()
  {
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,ExtMapBuffer2);
   
   SetIndexStyle(2,DRAW_ARROW);
   SetIndexBuffer(2,ExtMapBuffer3);
   SetIndexStyle(3,DRAW_ARROW);
   SetIndexBuffer(3,ExtMapBuffer4);

   SetIndexEmptyValue(2,0.0);
   SetIndexEmptyValue(3,0.0);
   SetIndexArrow(2,108);
   SetIndexArrow(3,108);
   return(0);
  }
int deinit()
  {
   return(0);
  }
int last = 0;

int start(){
   if(last == Bars) return (0);
   last = Bars;
   int counted_bars=IndicatorCounted();
   int pos;
   int cnt;
   int mult;
   double first,second;
   ArrayInitialize(ExtMapBuffer1,0);
   ArrayInitialize(ExtMapBuffer2,0);
   pos=countbars;
   while (pos>-1){
      mult=firstback+1;
      first=0;
      second=0;
      for (cnt=pos;cnt<pos+firstback;cnt++){
         mult--;
         first=first+(Close[cnt]*MathPow(mult,power));
         //Print (cnt);
         }
      mult=firstback+1;
      for (cnt=pos;cnt<pos+firstback;cnt++){
         mult--;
         second=second+MathPow(mult,power);
         }
      ExtMapBuffer1[pos]=first/second;
      pos--;
      }

   pos=countbars;
   while (pos>-1){
      mult=secondback+1;
      first=0;
      second=0;
      for (cnt=pos;cnt<pos+secondback;cnt++){
         mult--;
         first=first+(Close[cnt]*MathPow(mult,power));
         //Print (cnt);
         }
      mult=secondback+1;
      for (cnt=pos;cnt<pos+secondback;cnt++){
         mult--;
         second=second+MathPow(mult,power);
         }
      ExtMapBuffer2[pos]=first/second;
      if((ExtMapBuffer2[pos]-ExtMapBuffer1[pos])*(ExtMapBuffer2[pos+1]-ExtMapBuffer1[pos+1])<0){
         if((ExtMapBuffer2[pos]-ExtMapBuffer1[pos])<0)
            ExtMapBuffer3[pos] = ExtMapBuffer1[pos];
         else
            ExtMapBuffer4[pos] = ExtMapBuffer2[pos];
         }
      pos--;
      }
   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 ---