SmoothCandle S v1.00

SmoothCandle S v1.00
Miscellaneous
Implements a curve of type %1
0 Views
0 Downloads
0 Favorites
SmoothCandle S v1.00
/*-----------------------------+
|			       |
| Shared by www.Aptrafx.com    |
|			       |
+------------------------------*/

//+------------------------------------------------------------------+
//|                                         SmoothCandle S v1.00.mq4 |
//|                                 Copyright © 2005, Varus Henschke |
//+------------------------------------------------------------------+
#property  copyright "Copyright © 2005, Varus Henschke"

//---- indicator settings
#property  indicator_separate_window
#property  indicator_buffers 4
#property  indicator_color1  Red
#property  indicator_color2  DimGray
#property  indicator_color3  DimGray
#property  indicator_color4  Blue

//---- indicator parameters
extern int SMA=5;

//---- indicator buffers
double     nOpen[];
double     nHigh[];
double     nLow[];
double     nClose[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicator line
   IndicatorBuffers(4);
   SetIndexStyle(0,DRAW_LINE);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexStyle(2,DRAW_LINE);
   SetIndexStyle(3,DRAW_LINE);
   
//---- line shifts when drawing
   SetIndexShift(0,SMA);
   SetIndexShift(1,SMA);
   SetIndexShift(2,SMA);
   SetIndexShift(3,SMA);

//---- indicator buffers mapping
   if(!SetIndexBuffer(0,nOpen) && !SetIndexBuffer(1,nHigh) && !SetIndexBuffer(2,nLow) && !SetIndexBuffer(3,nClose))
      Print("cannot set indicator buffers!");

//---- name for DataWindow and indicator subwindow label
   IndicatorShortName("SmoothCandle S SMA ( "+SMA+" )");
   
//---- initialization done
   return(0);
  }
  
//+------------------------------------------------------------------+
//| Moving Averages of Candlestick                                   |
//+------------------------------------------------------------------+

int start()
  {
   int limit;
   int counted_bars=IndicatorCounted();
   
//---- check for possible errors
   if(counted_bars<0) return(-1);
   
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars-SMA-1;

   for(int i=SMA; i<limit; i++){    // Does not work if i=0 so included SetIndexShift above.  That does my head in.
   
      nOpen[i]  = 0;
      nHigh[i]  = 0;
      nLow[i]   = 0;
      nClose[i] = 0;
      
      for(int j=i-SMA; j<i; j++){
      
         nOpen[i]  = nOpen[i]  + (Open[j]  / SMA);
         nHigh[i]  = nHigh[i]  + (High[j]  / SMA);
         nLow[i]   = nLow[i]   + (Low[j]   / SMA);
         nClose[i] = nClose[i] + (Close[j] / SMA);
      }
      
   }
 
 //---- done
   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 ---