Forum on trading, automated trading systems and testing trading strategies
When you post code please use the CODE button (Alt-S)!
@PipiBrasci
i suggest that you search the documents pages for OnCalculate
Oh okay. Thanks for the response, Can you be pf help to me pls. i know nothing about programming but just trying to see if I can tweek something out. As i am also trying to create custom arrows on Eabuilder it kept saying it doesnt support the old ex.4 that there is a new MQL4 language and can only work if the custom indicator is updated to the MQL4 language. That's my dilema at the moment. how to convert the old ex.4 files into the new MQL4 language 600.
@PipiBrasci
i suggest that you search the documents pages for OnCalculate
Pls how do i do that??
Click "New" to start the wizard to create a template for the indicator.
You don't need to modify anything from "Properties" to "OnInit".
Hi,
I think, this way it will work:
#property indicator_separate_window #property indicator_buffers 3 #property indicator_color1 Black #property indicator_color2 Lime #property indicator_color3 Red extern int period = 10; double ExtBuffer0[]; double ExtBuffer1[]; double ExtBuffer2[]; int OnInit() { SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2,Red); SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,2,Lime); SetIndexStyle(2,DRAW_HISTOGRAM); IndicatorDigits(Digits+1); SetIndexBuffer(0,ExtBuffer0); SetIndexBuffer(1,ExtBuffer1); SetIndexBuffer(2,ExtBuffer2); IndicatorShortName("Fisher"); SetIndexLabel(1,NULL); SetIndexLabel(2,NULL); return(INIT_SUCCEEDED); } int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //int period=10; int limit; int counted_bars=IndicatorCounted(); double prev,current,old; double Value=0,Value1=0,Value2=0,Fish=0,Fish1=0,Fish2=0; double price; double MinL=0; double MaxH=0; if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; for(int i=0; i<limit; i++) { MaxH = High[Highest(NULL,0,MODE_HIGH,period,i)]; MinL = Low[Lowest(NULL,0,MODE_LOW,period,i)]; price = (High[i]+Low[i])/2; Value = 0.33*2*((price-MinL)/(MaxH-MinL)-0.5) + 0.67*Value1; Value=MathMin(MathMax(Value,-0.999),0.999); ExtBuffer0[i]=0.5*MathLog((1+Value)/(1-Value))+0.5*Fish1; Value1=Value; Fish1=ExtBuffer0[i]; } bool up=true; for(int i=limit-2; i>=0; i--) { current=ExtBuffer0[i]; prev=ExtBuffer0[i+1]; if (((current<0)&&(prev>0))||(current<0)) up= false; if (((current>0)&&(prev<0))||(current>0)) up= true; if(!up) { ExtBuffer2[i]=current; ExtBuffer1[i]=0.0; } else { ExtBuffer1[i]=current; ExtBuffer2[i]=0.0; } } return(rates_total); }
Best regards
Hi,
I think, this way it will work:
Best regards
Thansk Werner for the kindness and time to help me out. Much appreciated. Thank you so much but it just has one more error and i dont want to make a mess of it. pls.
You don't need to modify anything from "Properties" to "OnInit".
Ok, thank you so much for the response.
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
I need help with the fisher indicator. i tired to convert to the new MQL4 but doesnt seem to work. Im a newbie in programming but giving a shot at it. Can anyone pls hlep with it? This is what i did so far. but yet it s giving me errors.
Error message: