Download StochasticTrad indicators

stochWe have tested this mq4 code and it functions perfectly with MT4 and MT5 (Metatrader 5) system and probably will work on all Meta Trader systems.

In case you really like or find this StochasticTrad is an excellent indicator for Forex please don’t forget to rate the indicator. Please comment in our posts concerning RS indicator. Maybe, you’d post on using it properly or just what the best way for trading with it. The honest rating and evaluations you give really matters as it will likely be advantageous to currency traders in their task in taking or choosing indicators.

Definitely, what Forex currency investors want are remarkable indicators that are capable enough in aiding them to trade more in a precise way. This is where cost-free StochasticTrad indicator is needed. It can help traders in doubling the profit that they can have in their internet business. What’s more, we make it a point the Forex indicators like StochasticTrad are posted in our internet site. With that being said, it’s possible for web marketers to download it without having to spend money making them to come up with savvy decisions . Thus, they’ll turn out to be remarkable traders.

 

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

#property indicator_separate_window
#property indicator_minimum -50
#property indicator_maximum 50
#property indicator_buffers 3
#property indicator_color1 LightSeaGreen
#property indicator_color2 Red
#property indicator_color3 Blue
//—- input parameters
extern int KPeriod=14;
extern int DPeriod=3;
extern int Slowing=3;
//—- buffers
double MainBuffer[];
double SignalBuffer[];
double HistoBuffer[];
double HighesBuffer[];
double LowesBuffer[];
//—-
int draw_begin1=0;
int draw_begin2=0;
int draw_begin3=0;
//+——————————————————————+
//| Custom indicator initialization function |
//+——————————————————————+
int init()
{
string short_name;
//—- 2 additional buffers are used for counting.
IndicatorBuffers(5);
SetIndexBuffer(3, HighesBuffer);
SetIndexBuffer(4, LowesBuffer);
//—- indicator lines
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0, MainBuffer);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1, SignalBuffer);
SetIndexStyle(2,DRAW_HISTOGRAM);
SetIndexBuffer(2, HistoBuffer);
//—- name for DataWindow and indicator subwindow label
short_name=”Sto(“+KPeriod+”,”+DPeriod+”,”+Slowing+”)”;
IndicatorShortName(short_name);
SetIndexLabel(0,short_name);
SetIndexLabel(1,”Signal”);
//—-
draw_begin1=KPeriod+Slowing;
draw_begin2=draw_begin1+DPeriod;
draw_begin3=draw_begin1+DPeriod;
SetIndexDrawBegin(0,draw_begin1);
SetIndexDrawBegin(1,draw_begin2);
SetIndexDrawBegin(2,draw_begin3);
//—-
return(0);
}
//+——————————————————————+
//| Stochastic oscillator |
//+——————————————————————+
int start()
{
int i,k;
int counted_bars=IndicatorCounted();
double price;
//—-
if(Bars<=draw_begin2) return(0);
//—- initial zero
if(counted_bars<1)
{
for(i=1;i<=draw_begin1;i++) MainBuffer[Bars-i]=0;
for(i=1;i<=draw_begin2;i++) SignalBuffer[Bars-i]=0;
}
//—- minimums counting
i=Bars-KPeriod;
if(counted_bars>KPeriod) i=Bars-counted_bars-1;
while(i>=0)
{
double min=1000000;
k=i+KPeriod-1;
while(k>=i)
{
price=Low[k];
if(min>price) min=price;
k–;
}
LowesBuffer[i]=min;
i–;
}
//—- maximums counting
i=Bars-KPeriod;
if(counted_bars>KPeriod) i=Bars-counted_bars-1;
while(i>=0)
{
double max=-1000000;
k=i+KPeriod-1;
while(k>=i)
{
price=High[k];
if(max<price) max=price;
k–;
}
HighesBuffer[i]=max;
i–;
}
//—- %K line
i=Bars-draw_begin1;
if(counted_bars>draw_begin1) i=Bars-counted_bars-1;
while(i>=0)
{
double sumlow=0.0;
double sumhigh=0.0;
for(k=(i+Slowing-1);k>=i;k–)
{
sumlow+=Close[k]-LowesBuffer[k];
sumhigh+=HighesBuffer[k]-LowesBuffer[k];
}
if(sumhigh==0.0) MainBuffer[i]=100.0-50;
else MainBuffer[i]=sumlow/sumhigh*100-50;
i–;
}
//—- last counted bar will be recounted
if(counted_bars>0) counted_bars–;
int limit=Bars-counted_bars;
//—- signal line is simple movimg average
for(i=0; i<limit; i++)
SignalBuffer[i]=iMAOnArray(MainBuffer,Bars,DPeriod,0,MODE_SMA,i);
for(i=0; i<limit; i++)
HistoBuffer[i]=MainBuffer[i]-SignalBuffer[i];
//—-
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 *