La nueva MT5 soporta estas características por defecto, por lo que puede simplemente eliminarlos del código.
Recargado.
Hola
por alguna razón el indicador no aparece en el navegador mt5 después de copiarlo en la carpeta de indicadores.
compilar tampoco ayuda.
¿alguna solución?
Hola
por alguna razón el indicador no aparece en el navegador mt5 después de copiarlo en la carpeta de indicadores.
compilar tampoco ayuda.
¿alguna solución?
Hola ,
He modificado este script y lo he probado. Me ha funcionado.
Descargado el script.
Probablemente el autor no volvió a subir el código EA o alguna otra razón, pero el script del 27-03-2023 no funciona.
Después de la compilación, apareció un mensaje sobre 14 errores.
Leí los comentarios anteriores.
Comenté tres bloques de código, sobre los cuales el autor escribió que podían ser borrados.
Después de eso, apareció un error de sintaxis durante la compilación (una coma de más en la línea 220).
Quité la coma y compilé el código.
Todos los errores desaparecieron y el script funciona ahora en el gráfico.
El código corregido está más abajo:
//+------------------------------------------------------------------+ //|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; //Número de días extern string comm0=""; //- - -- ---- Semanas ---- -- - - - - extern color W1_Color=LimeGreen; //W1 Color de las líneas input int W1_Width=3; //W1 Ancho de línea extern ENUM_LINE_STYLE W1_style=STYLE_SOLID; //W1 Estilo de las líneas extern string comm1=""; //- - -- ---- Meses ---- -- - - - - extern color MN1_Color=Orange; //MN1 Color de las líneas input int MN1_Width=3; //MN1 Ancho de línea extern ENUM_LINE_STYLE MN1_style=STYLE_SOLID;//MN1 Estilo de las líneas enum choice0 {Trend_Line=0,Horizontal_Line=1}; input choice0 object=Trend_Line; //Tendencia o Línea horizontal datetime ArrDate[1]; double ArrDouble[1]; MqlDateTime time; //+------------------------------------------------------------------+ //| Función de inicio del programa de script| //+------------------------------------------------------------------+ 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); } //// Crear una línea 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); } } //+------------------------------------------------------------------+
Descargado el guión.
Probablemente el autor no reupload el código EA o alguna otra razón, pero la secuencia de comandos en 27-03-2023 no funciona.
Después de la compilación, un mensaje sobre 14 errores apareció.
El archivo Zip no está actualizado, contiene la primera versión.
Todo lo demás compila sin errores (Preview y archivo .mq5).
El archivo Zip no está actualizado, contiene la primera versión.
Todo lo demás compila sin errores (Vista previa y archivo .mq5).
No sabía que las actualizaciones están disponibles a través de la revisión de código.
Así que me sorprendió ver tantos errores después de la compilación.
Gracias por la aclaración.
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Monthly Weekly Levels:
El script representa en el gráfico los niveles mensuales y semanales.
Autor: Taras Slobodyanik