[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 674

 

Ich danke Ihnen.
 

Das ist ein Problem.

Ich habe begonnen, Expert Advisor aus dem Tutorial zu ändern - strings.mq4 (Link zu experthttp://c.mql4.com/book/mq4/experts/strings.mq4)

Ich habe ein paar Zeilen hinzugefügt, aber es funktioniert nicht. Ich weiß, dass ich einen Fehler gemacht habe, aber ich kann ihn nicht finden.

Also. Alle Änderungen sind in Block 10 konzentriert.

Hier ist das Original:

//-------------------------------------------------------------- 10 --
int Create(int Ind_Bar, int Line) // Benutzerdefinierte Funktion...
{ // ...Objekt erstellen
Farbe Farbe; // Objektfarbe
datetime T_Bar=Time [Ind_Bar]; // Öffnungszeit des Balkens
double O_Bar=Open [Ind_Bar]; // Bar open price
double C_Bar=Close[Ind_Bar]; // Schlusskurs eines Balkens
double H_Bar=High [Ind_Bar]; // Höchstkurs des Balkens
double L_Bar=Low [Ind_Bar]; // Minimaler Barpreis

string Nom_Lin =Line + "_"; // String - Zeilennummer
// string Nom_Lin = DoubleToStr(Line,0)+"_"; // Dies ist auch möglich
string Str_Time=TimeToStr(T_Bar); // String - offene Zeit.
string His_Name=Präfix+Nom_Lin+Str_Time;// Name des erstellten Objekts
if (O_Bar < C_Bar) Color=Blue; // Farbauswahl je nach...
if (O_Bar > C_Bar) Color=Red; // ... abhängig von den Eigenschaften des Balkens
if (O_Bar ==C_Bar) Farbe=Grün;

switch(Linie) // Dünne oder dicke Linie
{
Fall 1: // Dünne Linie
ObjectCreate(Sein_Name,OBJ_TREND,0,T_Bar,H_Bar,T_Bar,L_Bar);
break; // Beenden des Schalters
Fall 2: // dicke Linie
ObjectCreate(Sein_Name,OBJ_TREND,0,T_Bar,O_Bar,T_Bar,C_Bar);
ObjectSet( Sein_Name, OBJPROP_WIDTH, 3); // Stil
}
ObjectSet( Sein_Name,OBJPROP_COLOR,Farbe); // Farbe
ObjectSet( Sein_Name, OBJPROP_RAY, false); // Strahl
ObjectSetText(Sein_Name, "Objekt wurde vom Expert Advisor erstellt",10); // Beschreibung
return; // Beenden der Funktion

}

Und hier ist, was ich getan habe (kompiliert ohne Fehler): (siehe auch angehängte Datei)

//-------------------------------------------------------------- 10 --
int Create(int Ind_Bar, int Line) // Benutzerdefinierte Funktion...
{ // ...Objekterstellung
Farbe Farbe; // Objektfarbe
datetime T_Bar=Time [Ind_Bar]; // Öffnungszeit des Balkens
double O_Bar=Open [Ind_Bar]; // Bar open price
double C_Bar=Close[Ind_Bar]; // Schlusskurs eines Balkens
double H_Bar=High [Ind_Bar]; // Höchstkurs des Balkens
double L_Bar=Low [Ind_Bar]; // Minimaler Barpreis
//-------------------изменения---------------------------------------
double Macd_M_D1=iMACD(NULL,1440,12,26,9,PRICE_CLOSE,MODE_MAIN,0);
// oben - Zugriff auf die MAACD-Berechnung an den Tagen der Hauptlinie
double Macd_S_D1=iMACD(NULL,1440,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);
// Dies ist die Referenz zum MACD und die Berechnung der Signallinie an den Tagen
double Macd_M_H4=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);
// Dies ist der Verweis auf den MACD und die Berechnung der Hauptlinie für den aktuellen Zeitrahmen
double Macd_S_H4=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);
// Dies ist der Verweis auf den MACD und die Berechnung der Signallinie im aktuellen Zeitrahmen

string Nom_Lin =Line + "_"; // String - Nummer der Zeile
// string Nom_Lin = DoubleToStr(Line,0)+"_"; // Dies kann auch so gemacht werden
string Str_Time=TimeToStr(T_Bar); // String - offene Zeit.
string His_Name=Präfix+Nom_Lin+Str_Time;// Name des erstellten Objekts
if ((Macd_M_D1 < Macd_S_D1)&&(Macd_M_H4 < Macd_S_H4))Farbe=Blau;
if ((Macd_M_D1 > Macd_S_D1)&&(Macd_M_H4 > Macd_S_H4))Color=Red;
//
//if (O_Bar < C_Bar) Color=Blue; //Farbauswahl abhängig von...
//if (O_Bar > C_Bar) Color=Red; // ... abhängig von den Eigenschaften des Balkens
//if (O_Bar ==C_Bar) Farbe=Grün;

//-------------------изменения---------------------------------------

Wenn die MACD-Werte auf dem Tages- und dem aktuellen Zeitrahmen ähnlich sind, besteht das Ziel darin, die Kerze je nach Richtung entweder rot oder blau zu färben.

Dateien:
 

Sie können Arrays nicht wie folgt deklarieren

datetime T_Bar=Time [Ind_Bar]; // Время открытия бара
double O_Bar=Open [Ind_Bar]; // Цена открытия бара
double C_Bar=Close[Ind_Bar]; // Цена закрытия бара
double H_Bar=High [Ind_Bar]; // Максимальная цена бара
double L_Bar=Low [Ind_Bar]; // Минимальная цена бара

Der Compiler wird sehen, dass es eine Variable anstelle der Größe eines Arrays gibt. Es wird einfach nicht wissen, wie viel Speicher für das zukünftige Array zugewiesen werden soll. Deshalb funktioniert Ihr Code nicht

 
drknn:

Sie können Arrays nicht wie folgt deklarieren

Der Compiler sieht, dass es eine Variable anstelle der Größe des Arrays gibt. Es wird einfach nicht wissen, wie viel Speicher für das zukünftige Array zugewiesen werden soll. Und deshalb funktioniert Ihr Code nicht

Die Sache ist, ich habe nicht berühren, dass ein Teil der Expert Advisor - und es funktionierte gut - und der angegebene Teil des Codes wurde von der MQL4-Tutorial genommen - hier https://c.mql4.com/book/mq4/experts/strings.mq4

 
victor417:

Die Sache ist, ich habe nicht berühren diesen Teil des Expert Advisor - und es funktionierte alles - und der erwähnte Teil des Codes ist aus dem MQL4-Tutorial genommen - hier https://c.mql4.com/book/mq4/experts/strings.mq4


Wenn Arrays im Lernprogramm so deklariert werden, ist das ziemlich seltsam. Hätten Sie den Teil des Codes, den SIE beigetragen haben, mit einem Kommentar hervorgehoben?

Ich habe dieses Lehrbuch auch nicht gelesen. Und wie begründet der Autor die Legitimität der Array-Erklärung?

 

Mir ist eine merkwürdige Eigenschaft aufgefallen - je größer das Volumen der Zitate ist, desto langsamer wird das Prüfgerät... Wenn ich den Test ab 1999 starte, läuft er schnell, aber je näher ich der Gegenwart komme, desto härter werden die Bremsen... 2008 und näher an "heute" - im Visualisierungsmodus überhaupt nicht zu testen.

Wie bekämpfen Sie die Bremsen des Testers überhaupt?

 

drknn:

Sie können Arrays nicht wie folgt deklarieren

datetime T_Bar=Time [Ind_Bar]; // Время открытия бара
double O_Bar=Open [Ind_Bar]; // Цена открытия бара
double C_Bar=Close[Ind_Bar]; // Цена закрытия бара
double H_Bar=High [Ind_Bar]; // Максимальная цена бара
double L_Bar=Low [Ind_Bar]; // Минимальная цена бара

Der Compiler sieht, dass es eine Variable anstelle der Größe des Arrays gibt. Es wird einfach nicht wissen, wie viel Speicher für das zukünftige Array zugewiesen werden soll. Und deshalb funktioniert Ihr Code nicht.

Wenn Arrays im Lernprogramm so definiert sind, ist das wirklich seltsam. Hätten Sie den Teil des Codes, den Sie geschrieben haben, mit einem Kommentar versehen?

Ich habe dieses Lehrbuch auch nicht gelesen. Und wie begründet der Autor die Legitimität der Array-Erklärung?

Ich sehe die Initialisierung von Variablen. Wo sind die Arrays?

Zeitserie? ;)

 
Hallo, kann jemand einen Zickzack-Indikator, um den Strom bei einer minimalen Abweichung von der hohen lowe aber in Pips zu biegen... Zum Beispiel, wenn Sie eine Abweichung von 50 Pips, alles weniger als das, es gilt als Lärm... Ich weiß wirklich nicht, wie man für eine solche große kollichestvo Zeug auf dem Forum zu suchen... Vielen Dank im Voraus.
 

Können Sie mir bitte sagen, dass ich ein Problem mit dem Prüfgerät habe.

Der Bericht zeigt, dass der Gesamtverlust = 863 und der maximale Drawdown = 1427. wie kann das sein?

Wenn Sie sich die Gleichgewichtskurve ansehen, sehen Sie, dass die maximale Inanspruchnahme 863 beträgt.

Was für eine Art von Störung ist das, können Sie mir das bitte sagen, oder ist das vielleicht der Weg, wie es sein sollte?

Vielen Dank im Voraus)

 
Hallo! Könnte jemand hier einen Trailing-Stop hinzufügen; und der Stoploss ist jedes Mal anders gesetzt... Bitte beheben Sie das.
Dateien:
a_sidus_1.mq4  5 kb
Grund der Beschwerde: