shickman Posted August 15, 2017 Report Share Posted August 15, 2017 Hello coders I have 2 indicators that I really rely on and need them so much not a very complicated one at all but very important to me I ask you to PLEASE PLEASE help me and convert them to mql5 I can't thank you enough for this thank you here is the first one: /* Generated by EX4-TO-MQ4 decompiler V4.0.225.1g [] Website: http://purebeam.biz E-mail : [email protected] */ #property copyright "Copyright © 2008, 2hrfx.com" #property link "http://www.2hrfx.com" #property indicator_chart_window #property indicator_buffers 3 #property indicator_color1 Red #property indicator_color2 White #property indicator_color3 Magenta #property indicator_width2 4 #property indicator_width3 4 extern int Price = 0; extern int Length = 20; extern int Displace = 0; extern int Filter = 0; extern int Color = 1; extern int ColorBarBack = 1; extern double Deviation = 0.0; double g_ibuf_108[]; double g_ibuf_112[]; double g_ibuf_116[]; double g_ibuf_120[]; double gda_124[]; int g_index_128; int gi_132; int gi_136; int gi_140 = 4; double gd_144; double gd_152; double gd_160; double gd_168; double gd_176; double gd_184; double gd_192 = 3.1415926535; int init() { IndicatorBuffers(4); SetIndexStyle(0, DRAW_LINE); SetIndexBuffer(0, g_ibuf_108); SetIndexStyle(1, DRAW_LINE); SetIndexBuffer(1, g_ibuf_112); SetIndexStyle(2, DRAW_LINE); SetIndexBuffer(2, g_ibuf_116); SetIndexBuffer(3, g_ibuf_120); IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS)); string ls_0 = "SaneFX(" + Length + ")"; IndicatorShortName(ls_0); SetIndexLabel(0, "SaneFX"); SetIndexLabel(1, "Up"); SetIndexLabel(2, "Dn"); SetIndexShift(0, Displace); SetIndexShift(1, Displace); SetIndexShift(2, Displace); SetIndexEmptyValue(0, EMPTY_VALUE); SetIndexEmptyValue(1, EMPTY_VALUE); SetIndexEmptyValue(2, EMPTY_VALUE); SetIndexDrawBegin(0, Length * gi_140 + Length); SetIndexDrawBegin(1, Length * gi_140 + Length); SetIndexDrawBegin(2, Length * gi_140 + Length); gd_144 = 3.0 * gd_192; gi_132 = Length - 1; gi_136 = Length * gi_140 + gi_132; ArrayResize(gda_124, gi_136); gd_176 = 0; for (g_index_128 = 0; g_index_128 < gi_136 - 1; g_index_128++) { if (g_index_128 <= gi_132 - 1) gd_160 = 1.0 * g_index_128 / (gi_132 - 1); else gd_160 = (g_index_128 - gi_132 + 1) * (2.0 * gi_140 - 1.0) / (gi_140 * Length - 1.0) + 1.0; gd_152 = MathCos(gd_192 * gd_160); gd_184 = 1.0 / (gd_144 * gd_160 + 1.0); if (gd_160 <= 0.5) gd_184 = 1; gda_124[g_index_128] = gd_184 * gd_152; gd_176 += gda_124[g_index_128]; } return (0); } int start() { int li_12; double ld_16; int l_ind_counted_8 = IndicatorCounted(); if (l_ind_counted_8 > 0) li_12 = Bars - l_ind_counted_8; if (l_ind_counted_8 < 0) return (0); if (l_ind_counted_8 == 0) li_12 = Bars - gi_136 - 1; if (l_ind_counted_8 < 1) { for (int l_index_0 = 1; l_index_0 < Length * gi_140 + Length; l_index_0++) { g_ibuf_108[bars - l_index_0] = 0; g_ibuf_112[bars - l_index_0] = 0; g_ibuf_116[bars - l_index_0] = 0; } } for (int li_4 = li_12; li_4 >= 0; li_4--) { gd_168 = 0; for (l_index_0 = 0; l_index_0 <= gi_136 - 1; l_index_0++) { if (Price == 0) ld_16 = Close[li_4 + l_index_0]; else { if (Price == 1) ld_16 = Open[li_4 + l_index_0]; else { if (Price == 2) ld_16 = High[li_4 + l_index_0]; else { if (Price == 3) ld_16 = Low[li_4 + l_index_0]; else { if (Price == 4) ld_16 = (High[li_4 + l_index_0] + (Low[li_4 + l_index_0])) / 2.0; else { if (Price == 5) ld_16 = (High[li_4 + l_index_0] + (Low[li_4 + l_index_0]) + (Close[li_4 + l_index_0])) / 3.0; else if (Price == 6) ld_16 = (High[li_4 + l_index_0] + (Low[li_4 + l_index_0]) + 2.0 * (Close[li_4 + l_index_0])) / 4.0; } } } } } gd_168 += gda_124[l_index_0] * ld_16; } if (gd_176 > 0.0) g_ibuf_108[li_4] = (Deviation / 100.0 + 1.0) * gd_168 / gd_176; if (Filter > 0) if (MathAbs(g_ibuf_108[li_4] - (g_ibuf_108[li_4 + 1])) < Filter * Point) g_ibuf_108[li_4] = g_ibuf_108[li_4 + 1]; if (Color > 0) { g_ibuf_120[li_4] = g_ibuf_120[li_4 + 1]; if (g_ibuf_108[li_4] - (g_ibuf_108[li_4 + 1]) > Filter * Point) g_ibuf_120[li_4] = 1; if (g_ibuf_108[li_4 + 1] - g_ibuf_108[li_4] > Filter * Point) g_ibuf_120[li_4] = -1; if (g_ibuf_120[li_4] > 0.0) { g_ibuf_112[li_4] = g_ibuf_108[li_4]; if (g_ibuf_120[li_4 + ColorBarBack] < 0.0) g_ibuf_112[li_4 + ColorBarBack] = g_ibuf_108[li_4 + ColorBarBack]; g_ibuf_116[li_4] = EMPTY_VALUE; } if (g_ibuf_120[li_4] < 0.0) { g_ibuf_116[li_4] = g_ibuf_108[li_4]; if (g_ibuf_120[li_4 + ColorBarBack] > 0.0) g_ibuf_116[li_4 + ColorBarBack] = g_ibuf_108[li_4 + ColorBarBack]; g_ibuf_112[li_4] = EMPTY_VALUE; } } } return (0); } and this is the second one needed: #property copyright "eevviill" #property link "http://alievtm.blogspot.com" #property version "3.0" #property strict #property indicator_chart_window #property indicator_buffers 8 #property indicator_color1 clrRed #property indicator_color2 clrDeepSkyBlue #property indicator_color3 clrRed #property indicator_color4 clrDeepSkyBlue #property indicator_width1 4 #property indicator_width2 4 #property indicator_width3 1 #property indicator_width4 1 //yell #property indicator_color5 clrYellow #property indicator_color6 clrYellow #property indicator_color7 clrYellow #property indicator_color8 clrYellow #property indicator_width5 4 #property indicator_width6 4 #property indicator_width7 1 #property indicator_width8 1 extern int Number_of_candles = 3; extern int Candle_shift = 5; extern bool use_revers = false; extern ENUM_TIMEFRAMES Time_frame1 = 1440; extern ENUM_TIMEFRAMES Time_frame2 = 240; extern ENUM_TIMEFRAMES Time_frame3 = 60; extern ENUM_TIMEFRAMES Time_frame4 = 1440; extern ENUM_TIMEFRAMES Time_frame5 = 1440; extern ENUM_TIMEFRAMES Time_frame6 = 1440; extern ENUM_TIMEFRAMES Time_frame7 = 1440; extern ENUM_TIMEFRAMES Time_frame8 = 1440; extern ENUM_TIMEFRAMES Time_frame9 = 1440; double body_up[]; double body_down[]; double shadow_up[]; double shadow_down[]; //yell double yell_body_up[]; double yell_body_down[]; double yell_shadow_up[]; double yell_shadow_down[]; datetime prevtime; ENUM_TIMEFRAMES Time_frames[9]; ///////////////////////////////////////////////////////////////// int OnInit() { if(Number_of_candles>9) Number_of_candles=9; Time_frames[0]=Time_frame1; Time_frames[1]=Time_frame2; Time_frames[2]=Time_frame3; Time_frames[3]=Time_frame4; Time_frames[4]=Time_frame5; Time_frames[5]=Time_frame6; Time_frames[6]=Time_frame7; Time_frames[7]=Time_frame8; Time_frames[8]=Time_frame9; SetIndexBuffer(0,body_up); SetIndexStyle(0,DRAW_HISTOGRAM); SetIndexShift(0,Candle_shift+Number_of_candles); SetIndexBuffer(1,body_down); SetIndexStyle(1,DRAW_HISTOGRAM); SetIndexShift(1,Candle_shift+Number_of_candles); SetIndexBuffer(2,shadow_up); SetIndexStyle(2,DRAW_HISTOGRAM); SetIndexShift(2,Candle_shift+Number_of_candles); SetIndexBuffer(3,shadow_down); SetIndexStyle(3,DRAW_HISTOGRAM); SetIndexShift(3,Candle_shift+Number_of_candles); //yell SetIndexBuffer(4,yell_body_up); SetIndexStyle(4,DRAW_HISTOGRAM); SetIndexShift(4,Candle_shift+Number_of_candles); SetIndexBuffer(5,yell_body_down); SetIndexStyle(5,DRAW_HISTOGRAM); SetIndexShift(5,Candle_shift+Number_of_candles); SetIndexBuffer(6,yell_shadow_up); SetIndexStyle(6,DRAW_HISTOGRAM); SetIndexShift(6,Candle_shift+Number_of_candles); SetIndexBuffer(7,yell_shadow_down); SetIndexStyle(7,DRAW_HISTOGRAM); SetIndexShift(7,Candle_shift+Number_of_candles); 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[]) { //new bar if (Time[0] != prevtime) { ArrayInitialize(body_up,EMPTY_VALUE); ArrayInitialize(body_down,EMPTY_VALUE); ArrayInitialize(shadow_up,EMPTY_VALUE); ArrayInitialize(shadow_down,EMPTY_VALUE); ArrayInitialize(yell_body_up,EMPTY_VALUE); ArrayInitialize(yell_body_down,EMPTY_VALUE); ArrayInitialize(yell_shadow_up,EMPTY_VALUE); ArrayInitialize(yell_shadow_down,EMPTY_VALUE); prevtime = Time[0]; } int i2=0; for(int i=0;i<Number_of_candles;i++) { i2=i; if(use_revers) i2=Number_of_candles-i; double open_=iOpen(Symbol(),Time_frames,0); double close_=iClose(Symbol(),Time_frames,0); //main if(close_!=open_) { yell_body_up[i2]=EMPTY_VALUE; yell_body_down[i2]=EMPTY_VALUE; yell_shadow_up[i2]=EMPTY_VALUE; yell_shadow_down[i2]=EMPTY_VALUE; body_up[i2]=open_; body_down[i2]=close_; if(close_<open_) { shadow_up[i2]=iHigh(Symbol(),Time_frames,0); shadow_down[i2]=iLow(Symbol(),Time_frames,0); } if(close_>open_) { shadow_up[i2]=iLow(Symbol(),Time_frames,0); shadow_down[i2]=iHigh(Symbol(),Time_frames,0); } } //yell if(close_==open_) { body_up[i2]=EMPTY_VALUE; body_down[i2]=EMPTY_VALUE; shadow_up[i2]=EMPTY_VALUE; shadow_down[i2]=EMPTY_VALUE; yell_body_up[i2]=open_; yell_body_down[i2]=close_; yell_shadow_up[i2]=iHigh(Symbol(),Time_frames,0); yell_shadow_down[i2]=iLow(Symbol(),Time_frames,0); } } return(rates_total); } that's it, thank you for this Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.