Jump to content

⤴️-Paid Ad- Check advertising disclaimer here. Add your banner here.🔥

Recommended Posts

Posted (edited)

Hello, I really like the attached indicator, problem is that it behaves differently for bullish blue bars / bearish red bars

 

I think the formulas for blue bars are different than for red bars.

 

I would really like the red bars to behave like blue bars...

 

http://www.4shared.com/file/d9MYfhmR/WPRslow.html

 

//+------------------------------------------------------------------+

//| WPRslow.mq4 |

//| |

//| Ramdass - Conversion only |

//+------------------------------------------------------------------+

#property copyright "Author - OlegVS"

 

#property indicator_separate_window

#property indicator_minimum -1.000000

#property indicator_maximum 1.000000

#property indicator_buffers 2

#property indicator_color1 Blue

#property indicator_color2 Red

//---- input parameters

extern int P=54;

extern int n1=9;

extern int n2=49;

extern int CountBars=300;

//---- buffers

double Up[];

double Down[];

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

string short_name;

//---- indicator line

IndicatorBuffers(2);

SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,5,Blue);

SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,5,Red);

SetIndexBuffer(0,Up);

SetIndexBuffer(1,Down);

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| WPRslow |

//+------------------------------------------------------------------+

int start()

{

if (CountBars>Bars) CountBars=Bars;

SetIndexDrawBegin(0,Bars-CountBars+P);

SetIndexDrawBegin(1,Bars-CountBars+P);

int i,counted_bars=IndicatorCounted();

double V1,V2;

//----

if(CountBars<=P) return(0);

//---- initial zero

if(counted_bars<1)

{

for(i=1;i<=P;i++) Up[CountBars-i]=0.0;

for(i=1;i<=P;i++) Down[CountBars-i]=0.0;

}

//----

i=CountBars-P-1;

while(i>=0)

{

Down=0.0; Up=0.0;

V1=iWPR(NULL,0,P,i)*iWPR(NULL,0,P,i)/100;

V2=MathCeil(V1);

if (V2<n1) {Up=V2;}

if (V2>n2) {Down=-(V2);}

 

i--;

}

return(0);

}

//+------------------------------------------------------------------+

Edited by camisa

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


⤴️-Paid Ad- Check advertising disclaimer here. Add your banner here.🔥

×
×
  • Create New...