Newton51Newton51 wrote: Sun May 21, 2017 2:46 pm I have this Deltaforce Indicator in ex4 format and it works perfectly. But the MQ4 when compiled will only show the positive values. I have been trying to find a working copy but found several references to this same phenomenon. It has been corrected by mladen but it is impossible to download because of some error.
Would it be possible to correct this version or post a working copy please??
Code: Select all
//+--------------------------------------------------------------------------------------+ //| Delta Force.mq4 | //| Copyright © 2004, MetaQuotes Software Corp. | //| | //+--------------------------------------------------------------------------------------+ #property copyright "Copyright © 2004, MetaQuotes Software Corp." #property link -------------------------------------------------- //---- indicator settings #property indicator_separate_window #property indicator_buffers 2 #property indicator_color1 MediumSeaGreen #property indicator_color2 Crimson //---- indicator buffers double ind_buffer1[]; double ind_buffer2[]; double ind_buffer3[]; //---- double CB = 0, valueh1 = 0, valuel = 0, valueh = 0, value = 0, price = 0, hi = 1, lo = 1; double resh = 0, resl = 0, deltah = 0, deltal = 0; int CurrentBar=0; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- 1 additional buffer used for counting. IndicatorBuffers(3); //---- drawing settings SetIndexStyle(0, DRAW_HISTOGRAM, STYLE_SOLID, 3); SetIndexStyle(1, DRAW_HISTOGRAM, STYLE_SOLID, 3); IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS) + 1); SetIndexDrawBegin(0, 34); SetIndexDrawBegin(1, 34); //---- 3 indicator buffers mapping if(!SetIndexBuffer(0, ind_buffer1) && !SetIndexBuffer(1, ind_buffer2) && !SetIndexBuffer(2, ind_buffer3)) Print("cannot set indicator buffers!"); //---- name for DataWindow and indicator subwindow label IndicatorShortName("DeltaForce"); SetIndexLabel(0, "DF1"); SetIndexLabel(1, "DF2"); //---- initialization done return(0); } //+------------------------------------------------------------------+ //| Delta Force | //+------------------------------------------------------------------+ int start() { for(CB = 0 ; CB <= Bars ; CB++) { CurrentBar = Bars - CB; if(Close[CurrentBar] > Close[CurrentBar+1]) { resl = 0; if(resh == 0) deltah = 0; deltah = deltah + (Close[CurrentBar] - Close[CurrentBar+1]); // valueh = High[CurrentBar]; resh= 1; } if(resh == 0) deltah = 0; ind_buffer1[CurrentBar] = deltah; if(Close[CurrentBar] < Close[CurrentBar+1] ) { resh = 0; if(resl == 0) deltal = 0; deltal = deltal + (Close[CurrentBar+1] - Close[CurrentBar]); //valuel = Low[CurrentBar]; resl= 1; } if(resl == 0 ) deltal=0; ind_buffer2[CurrentBar] = deltal; } //---- done return(0); } //+------------------------------------------------------------------+
Try it out now