Hi. You are making a few errors defining buffers and using the iMAonArray function. You also need an explicit check for zero divide situations.
Anyway here is what results. Any pointers on its usage?
#property copyright "Metatrader4 Code by jjk2. Based on MBA Thesis from Simon Fraser University written by C.E. ALDEA."
#property link ""
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicator drawing
IndicatorBuffers(2);
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,3,Green);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexStyle(1,DRAW_NONE,STYLE_SOLID,3,Yellow);//DRAW_NONE,EMPTY,EMPTY);
SetIndexBuffer(1,ExtMapBuffer2);
///-----Name of Indicator
string short_name = "ZigZag BETA Current value calculated by indicator:";
IndicatorShortName(short_name);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars = IndicatorCounted();
int pos = Bars - counted_bars - 9;
int temp = pos;
//----
if (counted_bars<0) return(-1);
if (counted_bars>0) counted_bars--;
while(pos>0)
{
//string xxx = "pos";
double MACD = iMACD(NULL,0,12,26,9,PRICE_CLOSE,0,pos);
double Stoch = iStochastic(NULL,0,9,6,2,MODE_SMA,1,0,pos);
double RSI = iRSI(NULL,0,9,PRICE_CLOSE,pos);
double moment = (iMomentum(NULL,0,9,PRICE_CLOSE,pos));
//double momentum = (Close[pos]-Close[pos+9]);
//double Roc = (Close[pos]/Close[pos+9])*100;
double Volu = iVolume(NULL,0,pos);
//Main Forumla
//double preFormula = (/Momentum);
if (moment != 0)
ExtMapBuffer2[pos] = Stoch*(RSI)/moment;
//Alert("MACD: ", MACD," ","Stoch: ", Stoch," ", "RSI: ", RSI," ","Momentum: ", momentum," ","Volume: ", Volu);
//Alert(Stoch*(RSI)/Roc);
pos--;
}
while (temp > 0) {
double Formula = iMAOnArray(ExtMapBuffer2,0,2,0,MODE_SMA,temp);
ExtMapBuffer1[temp] = Formula;
temp--; }
//----
return(0);
}
//+------------------------------------------------------------------+From what I see in terms of usage, this indicator is showing some key pivots where some kind of reversal is going to happen, using it in conjunction with other tools could make it usefull... my question is, does it repaint ? did you try it on intraday data like 4 hours 1 hour charts ? its interesting to see it, would be nice to test it... cheers Walter.
I don't know if this indicator can make money or not, but wouldn't it better if hte histogram has 2 colors that can show whether the trend is up or down?
screenshot and a few other comments
deleted the crappier verison.
deleted the crappier verison.
indicator does not refresh
Hi,
The indicator still does not refresh. The current histogram does not form until after the candle closes.
Trader
hi
Hi,
The indicator still does not refresh. The current histogram does not form until after the candle closes.
Traderit should need some modification again I think
===================
i like the colour change idea AND it still doesnt update
but im not very good with Imaonarray stuff
![MQL5 - Language of trade strategies built-in the MetaTrader 5 client terminal](https://c.mql5.com/i/registerlandings/logo-2.png)
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
meatspin.com