Limiteddonchianchanel

Author: Copyright 2013, MetaQuotes Software Corp.
Limiteddonchianchanel
Price Data Components
Series array that contains the highest prices of each barSeries array that contains the lowest prices of each bar
Miscellaneous
Implements a curve of type %1
0 Views
0 Downloads
0 Favorites
Limiteddonchianchanel
//+------------------------------------------------------------------+
//|                                        Limiteddonchianchanel.mq4 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
//---- indicator settings
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Green
#property indicator_color2 Red
#property indicator_color3 DarkKhaki
#property  indicator_width1 2
#property  indicator_width2 2
#property  indicator_width3 1
//---- indicator parameters
extern int periods=50;
extern int distance=200;
extern bool fixed=false;
//---- indicator buffers
double upper[];
double lower[];
double middle[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
   {
//---- drawing settings
   SetIndexStyle(0,DRAW_LINE);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexStyle(2,DRAW_LINE,STYLE_DOT);
//---- indicator buffers mapping
   SetIndexBuffer(0,upper);
   SetIndexBuffer(1,lower);
   SetIndexBuffer(2,middle);
//---- name for DataWindow and indicator subwindow label
   IndicatorShortName("Limited Donchian Chanel("+periods+")");
   SetIndexLabel(0,"Upper");
   SetIndexLabel(1,"Lower");
   SetIndexLabel(2,"Middle");
//---- initialization done
   return(0);
   }
//+------------------------------------------------------------------+
//| Custom indicator start function                                  |
//+------------------------------------------------------------------+
int start()
   {
   int i=Bars-IndicatorCounted();
   while(i>=0)
      {
      double u=iHigh(NULL,0,iHighest(NULL,0,MODE_HIGH,periods,i));
      double l=iLow(NULL,0,iLowest(NULL,0,MODE_LOW,periods,i));
      if(iHigh(NULL,0,i)>upper[i+1] || iLow(NULL,0,i)<lower[i+1])
         {
         if(iHigh(NULL,0,i)>upper[i+1])
            {
            upper[i]=iHigh(NULL,0,i);
            if(upper[i]-lower[i+1]>distance*Point)
               lower[i]=upper[i]-distance*Point;
            else
               lower[i]=lower[i+1];
            }
         if(iLow(NULL,0,i)<lower[i+1])
            {
            lower[i]=iLow(NULL,0,i);
            if(upper[i]-lower[i+1]>distance*Point)
               upper[i]=lower[i]+distance*Point;
            else
               upper[i]=upper[i+1];
            }
         }
      else
         {
         upper[i]=upper[i+1];
         lower[i]=lower[i+1];
         }
      if(fixed==false)
         {
         if(upper[i]>u)
            upper[i]=u;
         if(lower[i]<l)
            lower[i]=l;
         }   
      middle[i]=(upper[i]+lower[i])/2;
      i--;
      }
   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 ---