Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
Fast - MACD
/*
* Watts MACD: the MACD indicator as shwon in Watts scalping system.
* However, I added a style input choice. Style 0 will plot MACD histograms
* in two different colors based on if the histogram bar is > or < 0. The
* style choice of 1 will plot MACD histograms in two different colors based
* on if current histogram bar is > or < than previous histogram bar.
* Style 0 is the original style of Watts system.
*
* Use it at your own risk.
*
* Author: Peter Chen
*
* History:
* 6/13/2008: First Verision.
*/
//---- indicator settings
#property indicator_separate_window
//Buffers needed to draw indicators
#property indicator_buffers 5
//Histograms
#property indicator_color1 Gray
#property indicator_color2 Lime
#property indicator_color3 Red
//MA lines on histograms
#property indicator_color4 Lime
#property indicator_color5 DeepPink
#property indicator_width1 1
#property indicator_width2 1
#property indicator_width3 1
#property indicator_width4 2
#property indicator_width5 2
//---- indicator parameters
extern int FastEMA = 34;
extern int SlowEMA = 89;
extern int SignalEMA = 13;
extern int HistoSMA1 = 1;
extern int HistoSMA5 = 5;
extern int Style = 1; //0 or 1
//---- indicator buffers
double HistoBuffer[];
double MacdBuffer[];
double SignalBuffer[];
//These are used for painting
double MA1Buffer[];
double MA5Buffer[];
double ExtBuffer0[];
double HistoUpBuffer[];
double HistoDnBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//3 additional buffers are used for a total of 8 buffers
IndicatorBuffers(8);
//---- drawing settings
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexStyle(1,DRAW_HISTOGRAM);
SetIndexStyle(2,DRAW_HISTOGRAM);
SetIndexStyle(3,DRAW_LINE);
SetIndexStyle(4,DRAW_LINE);
SetIndexDrawBegin(0,SlowEMA);
SetIndexDrawBegin(1,SlowEMA);
SetIndexDrawBegin(2,SlowEMA);
SetIndexDrawBegin(3,SlowEMA);
SetIndexDrawBegin(4,SlowEMA);
IndicatorDigits(Digits+2);
SetIndexBuffer(0,ExtBuffer0);
SetIndexBuffer(1,HistoUpBuffer);
SetIndexBuffer(2,HistoDnBuffer);
SetIndexBuffer(3,MA1Buffer);
SetIndexBuffer(4,MA5Buffer);
SetIndexBuffer(5,HistoBuffer);
SetIndexBuffer(6,MacdBuffer);
SetIndexBuffer(7,SignalBuffer);
//---- name for DataWindow and indicator subwindow label
IndicatorShortName("Watts_MACD("+FastEMA+","+SlowEMA+","+SignalEMA+")");
//---- initialization done
return(0);
}
//+------------------------------------------------------------------+
//| Moving Average of Oscillator |
//+------------------------------------------------------------------+
int start()
{
int limit;
double current = 0;
double prev = 0;
int counted_bars=IndicatorCounted();
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
for(int i=0; i<limit; i++)
MacdBuffer[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
for(i=0; i<limit; i++)
SignalBuffer[i]=iMAOnArray(MacdBuffer,Bars,SignalEMA,0,MODE_EMA,i);
for(i=0; i<limit; i++)
HistoBuffer[i]=MacdBuffer[i]-SignalBuffer[i];
for(i=0; i<limit; i++) {
MA1Buffer[i]=iMAOnArray(HistoBuffer,Bars,HistoSMA1,0,MODE_SMA,i);
}
for(i=0; i<limit; i++) {
MA5Buffer[i]=iMAOnArray(HistoBuffer,Bars,HistoSMA5,0,MODE_SMA,i);
}
//Paint the bars
for (i = 0; i < limit; i++) {
current = HistoBuffer[i];
prev = HistoBuffer[i+1];
if (Style == 0) {
if (current > 0) {
HistoUpBuffer[i] = current;
HistoDnBuffer[i] = 0.0;
ExtBuffer0[i] = 0.0;
} else if (current < 0) {
HistoUpBuffer[i] = 0.0;
HistoDnBuffer[i] = current;
ExtBuffer0[i] = 0.0;
} else {
HistoUpBuffer[i] = 0.0;
HistoDnBuffer[i] = 0.0;
ExtBuffer0[i] = current;
}
} else { //Assume 1
if (current > prev) {
HistoUpBuffer[i] = current;
HistoDnBuffer[i] = 0.0;
ExtBuffer0[i] = 0.0;
} else if (current < prev) {
HistoUpBuffer[i] = 0.0;
HistoDnBuffer[i] = current;
ExtBuffer0[i] = 0.0;
} else {
HistoUpBuffer[i] = 0.0;
HistoDnBuffer[i] = 0.0;
ExtBuffer0[i] = current;
}
}
}
//---- done
return(0);
}
//+------------------------------------------------------------------+
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---