#define OP_BUY 0 #define OP_SELL 1 #define OP_BUYLIMIT 2 #define OP_SELLLIMIT 3 #define OP_BUYSTOP 4 #define OP_SELLSTOP 5 #define MODE_OPEN 0 #define MODE_LOW 1 #define MODE_HIGH 2 #define MODE_CLOSE 3 #define MODE_VOLUME 4 #define MODE_TIME 5 #define MODE_TRADES 0 #define MODE_HISTORY 1 #define SELECT_BY_POS 0 #define SELECT_BY_TICKET 1 #define LONG_VALUE 4 #define FLOAT_VALUE 4 #define DOUBLE_VALUE 8 #define CHART_BAR 0 #define CHART_CANDLE 1 #define MODE_ASCEND 1 #define MODE_DESCEND 2 #define MODE_BID 9 #define MODE_ASK 10 #define MODE_POINT 11 #define MODE_DIGITS 12 #define MODE_SPREAD 13 #define MODE_STOPLEVEL 14 #define MODE_LOTSIZE 15 #define MODE_TICKVALUE 16 #define MODE_TICKSIZE 17 #define MODE_SWAPLONG 18 #define MODE_SWAPSHORT 19 #define MODE_STARTING 20 #define MODE_EXPIRATION 21 #define MODE_TRADEALLOWED 22 #define MODE_MINLOT 23 #define MODE_LOTSTEP 24 #define MODE_MAXLOT 25 #define MODE_SWAPTYPE 26 #define MODE_PROFITCALCMODE 27 #define MODE_MARGINCALCMODE 28 #define MODE_MARGININIT 29 #define MODE_MARGINMAINTENANCE 30 #define MODE_MARGINHEDGED 31 #define MODE_MARGINREQUIRED 32 #define MODE_FREEZELEVEL 33 #define MODE_CLOSEBY_ALLOWED 34 #define EMPTY -1 #define MODE_MAIN 0 #define MODE_SIGNAL 1 #define MODE_PLUSDI 1 #define MODE_MINUSDI 2 #define MODE_UPPER 1 #define MODE_LOWER 2 #define MODE_GATORJAW 1 #define MODE_GATORTEETH 2 #define MODE_GATORLIPS 3 #define MODE_TENKANSEN 1 #define MODE_KIJUNSEN 2 #define MODE_SENKOUSPANA 3 #define MODE_SENKOUSPANB 4 #define MODE_CHIKOUSPAN 5 #define MODE_CHINKOUSPAN 5 #define OBJPROP_TIME1 2000 #define OBJPROP_PRICE1 2001 #define OBJPROP_TIME2 2002 #define OBJPROP_PRICE2 2003 #define OBJPROP_TIME3 2004 #define OBJPROP_PRICE3 2005 #define OBJPROP_FIBOLEVELS 2006 // +----------------------------------------------------------------------------------------+ // // | XARD | // // |----------------------------------------------------------------------------------------| // // | Programming language: MQL4 | // // | Development platform: MetaTrader 4 | // // | End product: Indicator for MetaTrader 4 designed | // // +----------------------------------------------------------------------------------------+ // #property indicator_chart_window #property indicator_buffers 7 #property indicator_plots 4 #property indicator_color1 Gold #property indicator_color2 Gold #property indicator_color3 Blue #property indicator_color4 C'0xE1,0x00,0x00' input int Length = 21; input int Shuffle = 6; input double Deviation = 4.0; input bool AlertsOn = TRUE; input bool AlertsOnCurrent = TRUE; input bool AlertsMessage = FALSE; input bool AlertsSound = TRUE; input bool AlertsEmail = FALSE; int Gi_112 = 0; int Gi_116 = 0; double G_ibuf_120[]; double G_ibuf_124[]; double G_ibuf_128[]; double G_ibuf_132[]; double G_ibuf_136[]; double G_ibuf_140[]; double G_ibuf_144[]; int G_timeframe_148; string Gs_152; string Gs_nothing_160 = "nothing"; datetime G_time_168; void OnInit() { ObjectCreate("7",(ENUM_OBJECT)OBJ_LABEL,0,10,10); ObjectSet("7",OBJPROP_XDISTANCE,2); ObjectSet("7",OBJPROP_YDISTANCE,27); ObjectSet("7",OBJPROP_CORNER,CORNER_LEFT_LOWER); ObjectSetText("7","More free good indicators to go FX141 download FX141.COM",11,"SimSun",Yellow); ObjectCreate("9",(ENUM_OBJECT)OBJ_LABEL,0,10,10); ObjectSet("9",OBJPROP_XDISTANCE,2); ObjectSet("9",OBJPROP_YDISTANCE,12); ObjectSet("9",OBJPROP_CORNER,CORNER_LEFT_LOWER); ObjectSetText("9","Indicator Source FX141 Network Free Download FX141.COM",11,"SimSun",DeepPink); SetIndexStyle(0,DRAW_LINE); SetIndexShift(0,Gi_116); SetIndexStyle(1,DRAW_LINE); SetIndexShift(1,Gi_116); SetIndexStyle(2,DRAW_LINE); SetIndexShift(2,Gi_116); SetIndexStyle(3,DRAW_LINE); SetIndexShift(3,Gi_116); SetIndexStyle(4,DRAW_NONE); SetIndexShift(4,Gi_116); SetIndexStyle(5,DRAW_NONE); SetIndexShift(5,Gi_116); SetIndexBuffer(6,G_ibuf_144,INDICATOR_DATA,true); IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)); if (Length < 2) Length = 12; int Li_0 = Length - 1; string Ls_4 = "Gold_Bands("; IndicatorShortName(Ls_4 + Length + ")"); SetIndexDrawBegin(0,Li_0); SetIndexBuffer(0,G_ibuf_136,INDICATOR_DATA,true); SetIndexDrawBegin(1,Li_0); SetIndexBuffer(1,G_ibuf_140,INDICATOR_DATA,true); SetIndexDrawBegin(2,Li_0); SetIndexBuffer(2,G_ibuf_128,INDICATOR_DATA,true); SetIndexDrawBegin(3,Li_0); SetIndexBuffer(3,G_ibuf_132,INDICATOR_DATA,true); SetIndexDrawBegin(4,Li_0); SetIndexBuffer(4,G_ibuf_120,INDICATOR_DATA,true); SetIndexDrawBegin(5,Li_0); SetIndexBuffer(5,G_ibuf_124,INDICATOR_DATA,true); switch (G_timeframe_148) { case PERIOD_M1: Gs_152 = " M1"; break; case PERIOD_M5: Gs_152 = " M5"; break; case PERIOD_M15: Gs_152 = " M15"; break; case PERIOD_M30: Gs_152 = " M30"; break; case PERIOD_H1: Gs_152 = " H1"; break; case PERIOD_H4: Gs_152 = " H4"; break; case PERIOD_D1: Gs_152 = " D1"; break; case PERIOD_W1: Gs_152 = " W1"; break; case PERIOD_MN1: Gs_152 = " MN1"; break; default: G_timeframe_148 = Period(); init(); return; } return; } void OnDeinit() { ObjectsDeleteAll(1,OBJ_LABEL); return; } int OnCalculate(const int _rates_total, // size of input time series const int _prev_calculated, // bars handled in previous call const datetime& _time[], // Time const double& _open[], // Open const double& _high[], // High const double& _low[], // Low const double& _close[], // Close const long& _tick_volume[], // Tick Volume const long& _volume[], // Real Volume const int& _spread[] // Spread ) { FXD_ONCALCULATE_FAIL = false; // will be set to true if some indicator won't load int Bars = _rates_total; int Li_0; double Ld_4; double Ld_12; double Ld_20; double Ld_28; Gold_Bands(); sma(); if (Bars <= Shuffle) return (0); int ind_counted_36 = ((_prev_calculated>0)?_prev_calculated-1:0); for (int Li_40 = 1; Li_40 <= Shuffle; Li_40++) { G_ibuf_124[Bars - Li_40] = EMPTY_VALUE; G_ibuf_136[Bars - Li_40] = EMPTY_VALUE; G_ibuf_140[Bars - Li_40] = EMPTY_VALUE; G_ibuf_128[Bars - Li_40] = EMPTY_VALUE; G_ibuf_132[Bars - Li_40] = EMPTY_VALUE; } int Li_44 = Bars - ind_counted_36; if (ind_counted_36 > 0) Li_44++; Li_40 = Bars - Shuffle + 1; if (ind_counted_36 > Shuffle - 1) Li_40 = Bars - ind_counted_36 - 1; while (Li_40 >= 0) { Ld_12 = 0.0; Li_0 = Li_40 + Shuffle - 1; Ld_20 = G_ibuf_124[Li_40]; while (Li_0 >= Li_40) { Ld_28 = G_ibuf_120[Li_0] - Ld_20; Ld_12 += Ld_28 * Ld_28; Li_0--; } Ld_4 = Deviation * MathSqrt(Ld_12 / Shuffle); G_ibuf_136[Li_40] = Ld_20 + Ld_4; G_ibuf_140[Li_40] = Ld_20 - Ld_4; Li_40--; } Li_40 = Bars - Shuffle + 1; if (ind_counted_36 > Shuffle - 1) Li_40 = Bars - ind_counted_36 - 1; while (Li_40 >= 0) { G_ibuf_144[Li_40] = G_ibuf_144[Li_40 + 1]; if (G_ibuf_124[Li_40] < G_ibuf_120[Li_40]) { G_ibuf_128[Li_40] = G_ibuf_124[Li_40]; G_ibuf_132[Li_40] = EMPTY_VALUE; if (G_ibuf_128[Li_40] == G_ibuf_124[Li_40] && G_ibuf_132[Li_40] == EMPTY_VALUE) G_ibuf_144[Li_40] = 1; if (G_ibuf_128[Li_40 + 1] == EMPTY_VALUE) G_ibuf_128[Li_40 + 1] = G_ibuf_124[Li_40 + 1]; } else { G_ibuf_144[Li_40] = G_ibuf_144[Li_40 + 1]; if (G_ibuf_124[Li_40] > G_ibuf_120[Li_40]) { G_ibuf_132[Li_40] = G_ibuf_124[Li_40]; G_ibuf_128[Li_40] = EMPTY_VALUE; if (G_ibuf_132[Li_40] == G_ibuf_124[Li_40] && G_ibuf_128[Li_40] == EMPTY_VALUE) G_ibuf_144[Li_40] = -1; if (G_ibuf_132[Li_40 + 1] == EMPTY_VALUE) G_ibuf_132[Li_40 + 1] = G_ibuf_124[Li_40 + 1]; } } Li_40--; manageAlerts(); } if (FXD_ONCALCULATE_FAIL) {return -1;} return _rates_total; return (0); } void Gold_Bands() { int Bars = _rates_total; double close_0; double Ld_8 = 0.0; double Ld_16 = 0.0; int Li_24 = 0; int Li_28 = Bars - Gi_112 - 1; if (Li_28 < Length) Li_28 = Length; int Li_32 = 1; while (Li_32 <= Length) { close_0 = iClose(_Symbol,_Period,Li_28); Ld_8 += close_0 * Li_32; Ld_16 += close_0; Li_24 += Li_32; Li_32++; Li_28--; } Li_28++; Li_32 = Li_28 + Length; while (Li_28 >= 0) { G_ibuf_120[Li_28] = Ld_8 / Li_24; if (Li_28 == 0) break; Li_28--; Li_32--; close_0 = iClose(_Symbol,_Period,Li_28); Ld_8 = Ld_8 - Ld_16 + close_0 * Length; Ld_16 -= iClose(_Symbol,_Period,Li_32); Ld_16 += close_0; } if (Gi_112 < 1) for (Li_32 = 1; Li_32 < Length; Li_32++) G_ibuf_120[Bars - Li_32] = 0; } void sma() { int Bars = _rates_total; double Ld_0 = 0; int Li_8 = Bars - Gi_112 - 1; if (Li_8 < Shuffle) Li_8 = Shuffle; int Li_12 = 1; while (Li_12 < Shuffle) { Ld_0 += G_ibuf_120[Li_8]; Li_12++; Li_8--; } while (Li_8 >= 0) { Ld_0 += G_ibuf_120[Li_8]; G_ibuf_124[Li_8] = Ld_0 / Shuffle; Ld_0 -= G_ibuf_120[Li_8 + Shuffle - 1]; Li_8--; } if (Gi_112 < 1) for (Li_12 = 1; Li_12 < Shuffle; Li_12++) G_ibuf_124[Bars - Li_12] = 0; } void manageAlerts() { int Li_0; if (AlertsOn) { if (AlertsOnCurrent) Li_0 = 0; else Li_0 = 1; Li_0 = iBarShift(NULL,0,iTime(NULL,0,Li_0)); if (G_ibuf_144[Li_0] != G_ibuf_144[Li_0 + 1]) { if (G_ibuf_144[Li_0] == 1.0) doAlert(Li_0,"up"); if (G_ibuf_144[Li_0] == -1.0) doAlert(Li_0,"down"); } } } void doAlert(int Ai_0, string As_4) { string str_concat_12; if (Gs_nothing_160 != As_4 || G_time_168 != iTime(_Symbol,_Period,Ai_0)) { Gs_nothing_160 = As_4; G_time_168 = iTime(_Symbol,_Period,Ai_0); str_concat_12 = (string)(Symbol())+(string)(" ")+(string)(Gs_152)+(string)(" GoldBands : direction changed to ")+(string)(As_4); if (AlertsMessage) Alert(str_concat_12); if (AlertsEmail) { SendMail(str_concat_12,str_concat_12 + "\nLocal time " + TimeToStr(TimeLocal(),TIME_SECONDS) + "" + "\nBroker time " + TimeToStr(TimeCurrent(),TIME_SECONDS)); } if (AlertsSound) PlaySound("good-bad-ugly.wav"); } } //== fxDreema MQL4 to MQL5 Converter ==// //-- Global Variables int FXD_SELECTED_TYPE = 0; // Indicates what is selected by OrderSelect(), 1 for trade, 2 for pending order, 3 for history trade ulong FXD_SELECTED_TICKET = 0; // The ticket number selected by OrderSelect() bool FXD_ONCALCULATE_FAIL = false; // Flag that causes OnCalculate() to return nothing if some indicator is used and failed to load, which means that indicator calculations must be repeated //-- Functions string TimeToStr(datetime value, int mode = TIME_DATE|TIME_MINUTES) { return TimeToString(value, mode); } int ObjectsDeleteAll(int window=EMPTY, int type=EMPTY) { return ObjectsDeleteAll(0, window, type); } bool ObjectCreate(string name, ENUM_OBJECT type, int window, datetime time1, double price1, datetime time2=0, double price2=0, datetime time3=0, double price3=0) { return(ObjectCreate(0,name,type,window,time1,price1,time2,price2,time3,price3)); } bool ObjectSet(string name, int index, double value) { switch(index) { case OBJPROP_TIME1: ObjectSetInteger(0,name,OBJPROP_TIME,0,(int)value);return(true); case OBJPROP_PRICE1: ObjectSetDouble(0,name,OBJPROP_PRICE,0,value);return(true); case OBJPROP_TIME2: ObjectSetInteger(0,name,OBJPROP_TIME,1,(int)value);return(true); case OBJPROP_PRICE2: ObjectSetDouble(0,name,OBJPROP_PRICE,1,value);return(true); case OBJPROP_TIME3: ObjectSetInteger(0,name,OBJPROP_TIME,2,(int)value);return(true); case OBJPROP_PRICE3: ObjectSetDouble(0,name,OBJPROP_PRICE,2,value);return(true); case OBJPROP_COLOR: ObjectSetInteger(0,name,OBJPROP_COLOR,(int)value);return(true); case OBJPROP_STYLE: ObjectSetInteger(0,name,OBJPROP_STYLE,(int)value);return(true); case OBJPROP_WIDTH: ObjectSetInteger(0,name,OBJPROP_WIDTH,(int)value);return(true); case OBJPROP_BACK: ObjectSetInteger(0,name,OBJPROP_BACK,(int)value);return(true); case OBJPROP_RAY: ObjectSetInteger(0,name,OBJPROP_RAY_RIGHT,(int)value);return(true); case OBJPROP_ELLIPSE: ObjectSetInteger(0,name,OBJPROP_ELLIPSE,(int)value);return(true); case OBJPROP_SCALE: ObjectSetDouble(0,name,OBJPROP_SCALE,value);return(true); case OBJPROP_ANGLE: ObjectSetDouble(0,name,OBJPROP_ANGLE,value);return(true); case OBJPROP_ARROWCODE: ObjectSetInteger(0,name,OBJPROP_ARROWCODE,(int)value);return(true); case OBJPROP_TIMEFRAMES: ObjectSetInteger(0,name,OBJPROP_TIMEFRAMES,(int)value);return(true); case OBJPROP_DEVIATION: ObjectSetDouble(0,name,OBJPROP_DEVIATION,value);return(true); case OBJPROP_FONTSIZE: ObjectSetInteger(0,name,OBJPROP_FONTSIZE,(int)value);return(true); case OBJPROP_CORNER: ObjectSetInteger(0,name,OBJPROP_CORNER,(int)value);return(true); case OBJPROP_XDISTANCE: ObjectSetInteger(0,name,OBJPROP_XDISTANCE,(int)value);return(true); case OBJPROP_YDISTANCE: ObjectSetInteger(0,name,OBJPROP_YDISTANCE,(int)value);return(true); case OBJPROP_FIBOLEVELS: ObjectSetInteger(0,name,OBJPROP_LEVELS,(int)value);return(true); case OBJPROP_LEVELCOLOR: ObjectSetInteger(0,name,OBJPROP_LEVELCOLOR,(int)value);return(true); case OBJPROP_LEVELSTYLE: ObjectSetInteger(0,name,OBJPROP_LEVELSTYLE,(int)value);return(true); case OBJPROP_LEVELWIDTH: ObjectSetInteger(0,name,OBJPROP_LEVELWIDTH,(int)value);return(true); default: return(false); } return(false); } bool ObjectSetText(string name, string text, int font_size, string font="", color text_color=CLR_NONE) { int tmpObjType = (int)ObjectGetInteger(0,name,OBJPROP_TYPE); if (tmpObjType!=OBJ_LABEL && tmpObjType!=OBJ_TEXT) return(false); if (StringLen(text)>0 && font_size>0) { if (ObjectSetString(0,name,OBJPROP_TEXT,text)==true && ObjectSetInteger(0,name,OBJPROP_FONTSIZE,font_size)==true) { if(StringLen(font)>0 && ObjectSetString(0,name,OBJPROP_FONT,font)==false) return(false); if(text_color>-1 && ObjectSetInteger(0,name,OBJPROP_COLOR,text_color)==false) return(false); return(true); } return(false); } return(false); } bool IndicatorBuffers(int count) { // this function has no equivalent in MQL5 return true; } void SetIndexStyle( int index, int type, int style=EMPTY, int width=EMPTY, color clr=clrNONE) { if(width>-1) PlotIndexSetInteger(index,PLOT_LINE_WIDTH,width); if(clr!=CLR_NONE) PlotIndexSetInteger(index,PLOT_LINE_COLOR,clr); switch(type) { case 0: PlotIndexSetInteger(index,PLOT_DRAW_TYPE,DRAW_LINE); break; case 1: PlotIndexSetInteger(index,PLOT_DRAW_TYPE,DRAW_SECTION); break; case 2: PlotIndexSetInteger(index,PLOT_DRAW_TYPE,DRAW_HISTOGRAM); break; case 3: PlotIndexSetInteger(index,PLOT_DRAW_TYPE,DRAW_ARROW); break; case 4: PlotIndexSetInteger(index,PLOT_DRAW_TYPE,DRAW_ZIGZAG); break; case 12: PlotIndexSetInteger(index,PLOT_DRAW_TYPE,DRAW_NONE); break; default: PlotIndexSetInteger(index,PLOT_DRAW_TYPE,DRAW_LINE); } switch(style) { case 0: PlotIndexSetInteger(index,PLOT_LINE_STYLE,STYLE_SOLID); break; case 1: PlotIndexSetInteger(index,PLOT_LINE_STYLE,STYLE_DASH); break; case 2: PlotIndexSetInteger(index,PLOT_LINE_STYLE,STYLE_DOT); break; case 3: PlotIndexSetInteger(index,PLOT_LINE_STYLE,STYLE_DASHDOT); break; case 4: PlotIndexSetInteger(index,PLOT_LINE_STYLE,STYLE_DASHDOTDOT); break; default: return; } } void SetIndexShift(int index, int shift) { PlotIndexSetInteger(index, PLOT_SHIFT, shift); } bool SetIndexBuffer( int index, double &buffer[], ENUM_INDEXBUFFER_TYPE data_type, bool set_as_series ) { bool ret = SetIndexBuffer(index, buffer, data_type); if (ret) { ArraySetAsSeries(buffer, true); } return ret; } void IndicatorDigits(int digits) { IndicatorSetInteger(INDICATOR_DIGITS, digits); } double MarketInfo(string symbol, int type) { switch(type) { case 1://MODE_LOW: return(SymbolInfoDouble(symbol,SYMBOL_LASTLOW)); case 2://MODE_HIGH: return(SymbolInfoDouble(symbol,SYMBOL_LASTHIGH)); case 5://MODE_TIME: return((double)SymbolInfoInteger(symbol,SYMBOL_TIME)); case 9: {//MODE_BID: MqlTick last_tick; SymbolInfoTick(symbol, last_tick); return(last_tick.bid); } case 10:{//MODE_ASK: MqlTick last_tick; SymbolInfoTick(symbol, last_tick); return(last_tick.ask); } case 11://MODE_POINT: return(SymbolInfoDouble(symbol,SYMBOL_POINT)); case 12://MODE_DIGITS: return((double)SymbolInfoInteger(symbol,SYMBOL_DIGITS)); case 13://MODE_SPREAD: return((double)SymbolInfoInteger(symbol,SYMBOL_SPREAD)); case 14://MODE_STOPLEVEL: return((double)SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL)); case 15://MODE_LOTSIZE: return(SymbolInfoDouble(symbol,SYMBOL_TRADE_CONTRACT_SIZE)); case 16://MODE_TICKVALUE: return(SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_VALUE)); case 17://MODE_TICKSIZE: return(SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_SIZE)); case 18://MODE_SWAPLONG: return(SymbolInfoDouble(symbol,SYMBOL_SWAP_LONG)); case 19://MODE_SWAPSHORT: return(SymbolInfoDouble(symbol,SYMBOL_SWAP_SHORT)); case 20://MODE_STARTING: return((double)SymbolInfoInteger(symbol,SYMBOL_START_TIME)); case 21://MODE_EXPIRATION: return((double)SymbolInfoInteger(symbol,SYMBOL_EXPIRATION_TIME)); case 22://MODE_TRADEALLOWED: return(SymbolInfoInteger(symbol, SYMBOL_TRADE_MODE) != SYMBOL_TRADE_MODE_DISABLED); case 23://MODE_MINLOT: return(SymbolInfoDouble(symbol,SYMBOL_VOLUME_MIN)); case 24://MODE_LOTSTEP: return(SymbolInfoDouble(symbol,SYMBOL_VOLUME_STEP)); case 25://MODE_MAXLOT: return(SymbolInfoDouble(symbol,SYMBOL_VOLUME_MAX)); case 26://MODE_SWAPTYPE: return((double)SymbolInfoInteger(symbol,SYMBOL_SWAP_MODE)); case 27://MODE_PROFITCALCMODE: return((double)SymbolInfoInteger(symbol,SYMBOL_TRADE_CALC_MODE)); case 28://MODE_MARGINCALCMODE: return((double)SymbolInfoInteger(symbol,SYMBOL_TRADE_CALC_MODE)); case 29://MODE_MARGININIT: return((double)SymbolInfoDouble(symbol,SYMBOL_MARGIN_INITIAL)); case 30://MODE_MARGINMAINTENANCE: return((double)SymbolInfoDouble(symbol,SYMBOL_MARGIN_MAINTENANCE)); case 31://MODE_MARGINHEDGED: return((double)SymbolInfoDouble(symbol,SYMBOL_MARGIN_HEDGED)); case 32:{//MODE_MARGINREQUIRED: //double freeMargin = AccountInfoDouble(ACCOUNT_FREEMARGIN); double margin = 0.0; if (OrderCalcMargin(0, symbol, 1, SymbolInfoDouble(symbol, SYMBOL_ASK), margin)) return(margin); else return(0); } case 33://MODE_FREEZELEVEL: return((double)SymbolInfoInteger(symbol,SYMBOL_TRADE_FREEZE_LEVEL)); case 34://MODE_CLOSEBY_ALLOWED: return(0); default: return(0); } return(0); } void IndicatorShortName(string name) { IndicatorSetString(INDICATOR_SHORTNAME, name); } void SetIndexDrawBegin(int index, int begin) { PlotIndexSetInteger(index, PLOT_DRAW_BEGIN, begin); } //== fxDreema MQL4 to MQL5 Converter ==//