Der neue MT5 unterstützt diese Funktionen standardmäßig, Sie können sie also einfach aus dem Code entfernen.
Neu hochgeladen.
Hallo
aus irgendeinem Grund wird der Indikator nicht im mt5-Navigator angezeigt, nachdem ich ihn in den Indikatorenordner kopiert habe.
Auch das Kompilieren hilft nicht.
Gibt es eine Lösung?
Hallo
aus irgendeinem Grund wird der Indikator nicht im mt5-Navigator angezeigt, nachdem er in den Indikatorenordner kopiert wurde.
Kompilieren hilft auch nicht.
jede Lösung?
Hallo ,
Ich habe dieses Skript modifiziert und getestet. Hat bei mir funktioniert.
Habe das Skript heruntergeladen.
Wahrscheinlich hat der Autor den EA-Code nicht neu hochgeladen oder aus einem anderen Grund, aber das Skript vom 27-03-2023 funktioniert nicht.
Nach dem Kompilieren erschien eine Meldung über 14 Fehler.
Ich habe die vorherigen Kommentare gelesen.
Ich habe drei Codeblöcke auskommentiert, zu denen der Autor schrieb, dass sie gelöscht werden können.
Daraufhin erschien beim Kompilieren ein Syntaxfehler (ein zusätzliches Komma in Zeile 220).
Ich habe das Komma entfernt und den Code kompiliert.
Alle Fehler sind verschwunden, und das Skript funktioniert jetzt im Diagramm.
Der korrigierte Code steht unten:
//+------------------------------------------------------------------+ //|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; //Anzahl der Tage extern string comm0=""; //- - - -- ---- Wochen ---- -- - - - - extern color W1_Color=LimeGreen; //W1 Farbe der Linien input int W1_Width=3; //W1 Zeilenbreite extern ENUM_LINE_STYLE W1_style=STYLE_SOLID; //W1 Stil der Zeilen extern string comm1=""; //- - - -- ---- Monate ---- -- - - - - extern color MN1_Color=Orange; //MN1 Farbe der Linien input int MN1_Width=3; //MN1 Zeilenbreite extern ENUM_LINE_STYLE MN1_style=STYLE_SOLID;//MN1 Stil der Zeilen enum choice0 {Trend_Line=0,Horizontal_Line=1}; input choice0 object=Trend_Line; //Trend oder Horizontale Linie datetime ArrDate[1]; double ArrDouble[1]; MqlDateTime time; //+------------------------------------------------------------------+ //| Skript-Programmstartfunktion| //+------------------------------------------------------------------+ 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); } //// Erstellen einer Zeile 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); } } //+------------------------------------------------------------------+
Ich habe das Skript heruntergeladen.
Wahrscheinlich hat der Autor den EA-Code nicht neu hochgeladen oder einen anderen Grund, aber das Skript auf 27-03-2023 funktioniert nicht.
Nach der Kompilierung erschien eine Meldung über 14 Fehler.
Zip-Archiv ist nicht aktualisiert, es enthält die allererste Version.
Alles andere kompiliert ohne Fehler (Vorschau und .mq5-Datei).
Das Zip-Archiv wird nicht aktualisiert, es enthält die allererste Version.
Alles andere kompiliert ohne Fehler (Vorschau und .mq5-Datei).
Ich wusste nicht, dass Updates durch Code Review verfügbar sind.
Daher war ich überrascht, dass ich nach der Kompilierung so viele Fehler sah.
Danke für die Klarstellung.
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Monthly Weekly Levels:
Das Skript zeigt die monatlichen und wöchentlichen Levels am Chart.
Autor: Taras Slobodyanik