The new MT5 supports these features by default, so you can just remove them from the code.
Reuploaded.
Hi
for some reason the indicator won't show up in the mt5 navigator after copying it into the indicators folder.
compiling also doesn't help.
any solution?
Hi
for some reason the indicator won't show up in the mt5 navigator after copying it into the indicators folder.
compiling also doesn't help.
any solution?
Hi ,
I have modified this script and tested it. Worked for me.
Downloaded the script.
Probably the author did not reupload the EA code or some other reason, but the script on 27-03-2023 does not work.
After compilation, a message about 14 errors appeared.
I read the previous comments.
I commented out three code blocks, about which the author wrote that they could be deleted.
After that, a syntax error appeared during compilation (an extra comma in line 220).
I removed the comma and compiled the code.
All the errors disappeared and the script now works on the chart.
The corrected code is below:
//+------------------------------------------------------------------+ //|MN1_W1_Levels.mq4 | //|© Tecciztecatl | //+------------------------------------------------------------------+ #property copyright "© Tecciztecatl 2016" #property link "113411@bk.ru" #property version "1.00" #property description "The script shows the highs and lows of weeks and months." #property script_show_inputs #property strict input int days=200; //Number of days extern string comm0=""; //- - - -- ---- Weeks ---- -- - - - - extern color W1_Color=LimeGreen; //W1 Color of lines input int W1_Width=3; //W1 Line Width extern ENUM_LINE_STYLE W1_style=STYLE_SOLID; //W1 Style of lines extern string comm1=""; //- - - -- ---- Months ---- -- - - - - extern color MN1_Color=Orange; //MN1 Color of lines input int MN1_Width=3; //MN1 Line Width extern ENUM_LINE_STYLE MN1_style=STYLE_SOLID;//MN1 Style of lines enum choice0 {Trend_Line=0,Horizontal_Line=1}; input choice0 object=Trend_Line; //Trend or Horizontal line datetime ArrDate[1]; double ArrDouble[1]; MqlDateTime time; //+------------------------------------------------------------------+ //| Script programme start function| //+------------------------------------------------------------------+ void OnStart() { DelObject(); int weeks=(int)MathCeil(days/7)+1; if(weeks>Bars(_Symbol,PERIOD_W1)) weeks=Bars(_Symbol,PERIOD_W1)-1; if(weeks<0) {Alert("No historical data!"); return;} for(int i=weeks; i>=0; i--) { datetime w1=iTime(_Symbol,PERIOD_W1,i); TimeToStruct(w1,time); if(object==Trend_Line) { SetTrendLine("W1_High_"+(string)i+"_ln", w1+86400, iHigh(_Symbol,PERIOD_W1,i), w1+7*86400, W1_Color, W1_Width, W1_style, 0x0007ffff); SetTrendLine("W1_Low_"+(string)i+"_ln", w1+86400, iLow(_Symbol,PERIOD_W1,i), w1+7*86400, W1_Color, W1_Width, W1_style, 0x0007ffff); } else { SetHLine("W1_High_"+(string)i+"_ln", iHigh(_Symbol,PERIOD_W1,i), W1_Color, W1_Width, W1_style); SetHLine("W1_Low_"+(string)i+"_ln", iLow(_Symbol,PERIOD_W1,i), W1_Color, W1_Width, W1_style); } } TimeToStruct(TimeCurrent(),time); int month=(int)MathCeil((days-time.day)/30)+1; if(month>Bars(_Symbol,PERIOD_MN1)) month=Bars(_Symbol,PERIOD_MN1)-1; if(month<0) {Alert("No historical data!"); return;} for(int i=month; i>=0; i--) { datetime mn=iTime(_Symbol,PERIOD_MN1,i); TimeToStruct(mn,time); if(object==Trend_Line) { SetTrendLine("MN1_High_"+(string)i+"_ln", mn, iHigh(_Symbol,PERIOD_MN1,i), mn+DayMonth(time.mon,mn)*86400, MN1_Color, MN1_Width, MN1_style, 0x000fffff); SetTrendLine("MN1_Low_"+(string)i+"_ln", mn, iLow(_Symbol,PERIOD_MN1,i), mn+DayMonth(time.mon,mn)*86400, MN1_Color, MN1_Width, MN1_style, 0x000fffff); } else { SetHLine("MN1_High_"+(string)i+"_ln", iHigh(_Symbol,PERIOD_MN1,i), MN1_Color, MN1_Width, MN1_style); SetHLine("MN1_Low_"+(string)i+"_ln", iLow(_Symbol,PERIOD_MN1,i), MN1_Color, MN1_Width, MN1_style); } } ChartRedraw(); } //+------------------------------------------------------------------+ //|| //+------------------------------------------------------------------+ int DayMonth(int mon,datetime ttime) { int leap_year; TimeToStruct(ttime,time); switch(mon) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return(31); case 2: leap_year=time.year; if(time.year%100==0) leap_year/=100; return((leap_year%4==0)? 29 : 28); case 4: case 6: case 9: case 11: return(30); } return(0); } //// Creating a line void SetTrendLine( const string name, datetime time1, double price1, datetime time2, color cvet, int widthL, ENUM_LINE_STYLE styleL, int hide_TF ) { if(ObjectFind(0,name)<0) ObjectCreate(0,name,OBJ_TREND,0,time1,price1,time2,price1); ObjectMove(0,name,0,time1,price1); ObjectMove(0,name,1,time2,price1); ObjectSetInteger(0,name,OBJPROP_COLOR,cvet); ObjectSetInteger(0,name,OBJPROP_STYLE,styleL); ObjectSetInteger(0,name,OBJPROP_WIDTH,widthL); ObjectSetInteger(0,name,OBJPROP_SELECTABLE,false); ObjectSetInteger(0,name,OBJPROP_SELECTED,false); ObjectSetInteger(0,name,OBJPROP_BACK,false); ObjectSetInteger(0,name,OBJPROP_ZORDER,1); ObjectSetInteger(0,name,OBJPROP_RAY_RIGHT,false); ObjectSetInteger(0,name,OBJPROP_HIDDEN,true); ObjectSetInteger(0,name,OBJPROP_TIMEFRAMES,hide_TF); } //+------------------------------------------------------------------+ //|| //+------------------------------------------------------------------+ /* datetime iTime(string symbol,ENUM_TIMEFRAMES timeframe,int index) { if(index<0) index=0; if(CopyTime(symbol,timeframe,index,1,ArrDate)>0) return(ArrDate[0]); else return(-1); } */ //+------------------------------------------------------------------+ //|| //+------------------------------------------------------------------+ /* double iLow(string symbol,ENUM_TIMEFRAMES timeframe,int index) { if(index < 0) return(-1); if(CopyLow(symbol,timeframe,index,1,ArrDouble)>0) return(ArrDouble[0]); else return(-1); } */ //+------------------------------------------------------------------+ //|| //+------------------------------------------------------------------+ /* double iHigh(string symbol,ENUM_TIMEFRAMES timeframe,int index) { if(index < 0) return(-1); if(CopyHigh(symbol,timeframe,index,1,ArrDouble)>0) return(ArrDouble[0]); else return(-1); } */ //+------------------------------------------------------------------+ //|| //+------------------------------------------------------------------+ void SetHLine( const string name, double price1, color cvet, int widthL, ENUM_LINE_STYLE styleL ) { if(ObjectFind(0,name)<0) ObjectCreate(0,name,OBJ_HLINE,0,0,price1); ObjectSetDouble(0,name,OBJPROP_PRICE,price1); ObjectSetInteger(0,name,OBJPROP_COLOR,cvet); ObjectSetInteger(0,name,OBJPROP_STYLE,styleL); ObjectSetInteger(0,name,OBJPROP_WIDTH,widthL); ObjectSetInteger(0,name,OBJPROP_SELECTABLE,false); ObjectSetInteger(0,name,OBJPROP_SELECTED,false); ObjectSetInteger(0,name,OBJPROP_BACK,false); ObjectSetInteger(0,name,OBJPROP_ZORDER,1); ObjectSetInteger(0,name,OBJPROP_RAY_RIGHT,false); ObjectSetInteger(0,name,OBJPROP_HIDDEN,true); } //+------------------------------------------------------------------+ //|| //+------------------------------------------------------------------+ void DelObject() { for(int i=ObjectsTotal(0,0,-1)-1;i>=0;i--) { string temp=ObjectName(0,i,0,-1); if(StringFind(temp,"_ln",0)>=0) ObjectDelete(0,temp); } } //+------------------------------------------------------------------+
Downloaded the script.
Probably the author did not reupload the EA code or some other reason, but the script on 27-03-2023 does not work.
After compilation, a message about 14 errors appeared.
Zip archive is not updated, it contains the very first version.
Everything else compiles without errors (Preview and .mq5 file).
Zip archive is not updated, it contains the very first version.
Everything else compiles without errors (Preview and .mq5 file).
I didn't know that updates are available through code review.
So I was surprised to see so many errors after compilation.
Thanks for the clarification.
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
Monthly Weekly Levels:
The script displays the monthly and weekly levels on the chart.
Author: Taras Slobodyanik