Download MACDdtLSMA indicators

macccThis MACDdtLSMA really peaked our interest after experiencing such an incredible indicator which was sold for free. We would be silly to not consider this currency exchange indicator as totally free.

Conclusively this indicator worked with other indicators such as Meta Trader 4 and MT5 (Metatrader 5), the opportunity of it working with other variations of metatrader is high. With this, you can be certain that you will not experience any compatibility problems.

If you find MACDdtLSMA as helpful indicator for Forex, then you can rate the indicator and give several comments and opinions and post it to the comment area. We will be pleased if you do that. Additionally, you can help other FX investors to try out such indicators with your comments, ratings, and testimonials.

As to the nature of the work, foreign currency investors will ultimately choose the product that give just the very best and trustworthy results . Henceforth our goal will be to enhance the experience to give the traders the best experience possible We’re also also steadily searching for the best Forex indicators just like the MACDdtLSMA. Which we will eventually upload to our website for the traders to download and make use of to their hearts content.

 

[php]</pre>
//+——————————————————————+
//| Zigzag-fractals.mq4 |
//| Copyright © 2005-2007, MetaQuotes Software Corp. |
//| http://www.metaquotes.net/ |
//+——————————————————————+
#property copyright “Copyright © 2007, MetaQuotes Software Corp.”
#property link “http://www.metaquotes.net/”

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Gold

//—- indicator parameters

&nbsp;

//—- indicator buffers
double ZigzagBuffer[];

double HighMapBuffer[];
double LowMapBuffer[];

int level=3; // recounting’s depth
bool downloadhistory=false;

//+——————————————————————+
//| Custom indicator initialization function |
//+——————————————————————+
int init()
{
IndicatorBuffers(3);
//—- drawing settings
SetIndexStyle(0,DRAW_SECTION);
//—- indicator buffers mapping
SetIndexBuffer(0,ZigzagBuffer);

SetIndexBuffer(1,HighMapBuffer);
SetIndexBuffer(2,LowMapBuffer);
SetIndexEmptyValue(0,0.0);

&nbsp;

//—- indicator short name
IndicatorShortName(“ZigZag-fractal”);
//—- initialization done
return(0);
}
//+——————————————————————+
//| |
//+——————————————————————+
int start()
{
int i, counted_bars = IndicatorCounted();
int limit,counterZ,whatlookfor;
int shift,back,lasthighpos,lastlowpos;
double val,res;
double curlow,curhigh,lasthigh,lastlow;

if (counted_bars==0 && downloadhistory) // history was downloaded
{
ArrayInitialize(ZigzagBuffer,0.0);

ArrayInitialize(HighMapBuffer,0.0);
ArrayInitialize(LowMapBuffer,0.0);
}
if (counted_bars==0)
{
limit=Bars-12;
downloadhistory=true;
}
if (counted_bars>0)
{
while (counterZ<3 && i<100)
{
res=ZigzagBuffer[i];
if (res!=0) counterZ++;
i++;
}
i–;
limit=i;
if (LowMapBuffer[i]!=0)
{
curlow=LowMapBuffer[i];
whatlookfor=1;
}
else
{
curhigh=HighMapBuffer[i];
whatlookfor=-1;
}
for (i=limit-1;i>=0;i–)
{
ZigzagBuffer[i]=0.0;
LowMapBuffer[i]=0.0;
HighMapBuffer[i]=0.0;
}
}

for(shift=limit; shift>=0; shift–)
{
val=iFractals(NULL, 0, MODE_LOWER, shift);//Low[iLowest(NULL,0,MODE_LOW,12,shift)];
if(val==lastlow) val=0.0;
else
{
lastlow=val;
if((Low[shift]-val)>(1*Point)) val=0.0;
else
{
for(back=1; back<=1; back++)
{
res=LowMapBuffer[shift+back];
if((res!=0)&&(res>val)) LowMapBuffer[shift+back]=0.0;
}
}
}
LowMapBuffer[shift]=val;

//— high
val=iFractals(NULL, 0, MODE_UPPER, shift);//High[iHighest(NULL,0,MODE_HIGH,12,shift)];//iFractals(NULL, 0, MODE_UPPER, 3);

if(val==lasthigh) val=0.0;
else
{
lasthigh=val;
if((val-High[shift])>(1*Point)) val=0.0;
else
{
for(back=1; back<=1; back++)
{
res=HighMapBuffer[shift+back];
if((res!=0)&&(res<val)) HighMapBuffer[shift+back]=0.0;
}
}
}
HighMapBuffer[shift]=val;

}

// final cutting
if (whatlookfor==0)
{
lastlow=0;
lasthigh=0;
}
else
{
lastlow=curlow;
lasthigh=curhigh;
}
for (shift=limit;shift>=0;shift–)
{
res=0.0;
switch(whatlookfor)
{
case 0: // look for peak or lawn
if (lastlow==0 && lasthigh==0)
{
if (HighMapBuffer[shift]!=0)
{
lasthigh=High[shift];
lasthighpos=shift;
whatlookfor=-1;
ZigzagBuffer[shift]=lasthigh;

res=1;
}
if (LowMapBuffer[shift]!=0)
{
lastlow=Low[shift];
lastlowpos=shift;
whatlookfor=1;
ZigzagBuffer[shift]=lastlow;

res=1;
}
}
break;
case 1: // look for peak
if (LowMapBuffer[shift]!=0.0 && LowMapBuffer[shift]<lastlow && HighMapBuffer[shift]==0.0)
{
ZigzagBuffer[lastlowpos]=0.0;
lastlowpos=shift;
lastlow=LowMapBuffer[shift];
ZigzagBuffer[shift]=lastlow;

res=1;
}
if (HighMapBuffer[shift]!=0.0 && LowMapBuffer[shift]==0.0)
{
lasthigh=HighMapBuffer[shift];
lasthighpos=shift;
ZigzagBuffer[shift]=lasthigh;

whatlookfor=-1;
res=1;
}
break;
case -1: // look for lawn
if (HighMapBuffer[shift]!=0.0 && HighMapBuffer[shift]>lasthigh && LowMapBuffer[shift]==0.0)
{
ZigzagBuffer[lasthighpos]=0.0;
lasthighpos=shift;
lasthigh=HighMapBuffer[shift];
ZigzagBuffer[shift]=lasthigh;

}
if (LowMapBuffer[shift]!=0.0 && HighMapBuffer[shift]==0.0)
{
lastlow=LowMapBuffer[shift];
lastlowpos=shift;
ZigzagBuffer[shift]=lastlow;

whatlookfor=1;
}
break;
default: return;
}
}

return(0);
}
//+——————————————————————+
<pre>[/php]

Click Here to Download

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *