Fehler, Irrtümer, Fragen - Seite 94

 
vdv2001:

Ich bin auf ein solches Problem gestoßen, ein Bekannter bat mich, einen Experten zu schreiben, um die TS-Funktionalität zu überprüfen. Ich dachte, ich würde es in 5 schreiben (es ist bequemer, es + Debugger zu schreiben). Ich habe geschrieben und das Ergebnis erhalten:

Ich denke, es ist gut, ich kann es für 4 umschreiben.

Ich habe ihn 1:1 umgeschrieben. Dieser TS hat keine Indikatoren, nur Zeit und Preisspanne. Das Ergebnis hat mich sehr überrascht:

Der Testzeitraum erstreckt sich vom 1.01.2000 bis heute.

Ich frage mich, welches Testgerät das richtige Ergebnis anzeigt?

Die Zahl der Abschlüsse ist sehr groß, so dass sich die Frage nach den Spreads stellt - sind sie bei beiden Tests gleich?

 

Wie weise ich einem zweidimensionalen Array einen Wert zu? Ich schreibe so:

positions[j, 0]=PositionGetInteger(POSITION_MAGIC);

Das Ergebnis ist ein Fehler: ',' - unerwartetes Token''.


 
EvgeTrofi:

Wie weise ich einem zweidimensionalen Array einen Wert zu? Ich schreibe so:

Das Ergebnis ist ein Fehler: ',' - unexpected token'.


Machen Sie es so:

   double array[2][4];
   array[1][0]=5;
PS. Beispiele für Array-Deklarationen finden Sie in der Hilfe.
 

Wie kann ich einen Datentyp korrekt in einen anderen übersetzen?

Runden Sie zum Beispiel einen Fließkommawert auf und übertragen Sie ihn in eine Variable mit ganzzahligem Datentyp.

Wenn Sie dies versuchen:

   double Close = iCloseMQL4(Symbol(),Period(), 1);
   double Open =  iOpenMQL4(Symbol(),Period(), 1);
   int Midle=MathRound(MathAbs(Close-Open)/_Point);

In der letzten Zeile des Kompiliervorgangs erscheint eine Warnung:"möglicher Datenverlust aufgrund der Typkonvertierung".

Gibt es eine Möglichkeit, dies zu vermeiden?

 
Rosh:

Machen Sie es so:

PS. Beispiele für Array-Deklarationen finden Sie in der Hilfe.
Danke! Es hat funktioniert. Aber es ist genau die gleiche Zeile wie in der Hilfe
array[1][0]=5;
Ich konnte es nicht finden!
 
EvgeTrofi:
Danke! Es funktioniert. Aber ich konnte eine solche Zeichenfolge in der Hilfe nicht finden!

Es wird zwar nicht direkt geschrieben, aber es gibt ein Beispiel für die Deklaration eines mehrdimensionalen Arrays, und es gibt ein Beispiel für den Verweis auf ein Array-Element im Text:

Arrays

Ein Array ist eine indizierte Sammlung von identischen Daten:

int a[50]; // Ein eindimensionales Array mit 50 ganzen Zahlen.
double m[7][50];// Ein zweidimensionales Feld mit sieben Feldern,
// jeweils bestehend aus 50 Zahlen.
MyTime t[100];// Array mit Elementen vom Typ MyTime

Ein Array-Index kann nur eine ganze Zahl sein. Es sind nicht mehr als vierdimensionale Arrays erlaubt. Die Elemente eines Arrays werden mit 0 beginnend nummeriert. Das letzte Element eines eindimensionalen Arrays ist um 1 kleiner als die Array-Größe, d. h. der Zugriff auf das letzte Element eines Arrays mit 50 ganzen Zahlen sieht aus wie a[49]. Dasselbe gilt für mehrdimensionale Arrays, wobei eine Dimension von 0 bis Dimensionsgröße-1 indiziert wird. Das letzte Element des zweidimensionalen Arrays aus dem Beispiel wird wie m[6][49] aussehen.

 
EvgeTrofi:

Wie kann ich einen Datentyp korrekt in einen anderen übersetzen?

Runden Sie zum Beispiel einen Fließkommawert auf und übertragen Sie ihn in eine Variable mit ganzzahligem Datentyp.

Wenn Sie dies versuchen:

Beim Kompilieren erscheint in der letzten Zeile eine Warnung:

Gibt es eine Möglichkeit, dies zu vermeiden?

Ja, führen Sie eine explizite Typkonvertierung durch.
Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - Документация по MQL5
 
Rosh:
Ja, führen Sie eine explizite Typkonvertierung durch.
Ich danke Ihnen! Ich habe es herausgefunden!!! :)
 
Rosh:

Die Zahl der Abschlüsse ist sehr hoch, so dass sich die Frage nach den Spreads stellt - sind sie bei beiden Tests gleich?

Währungspaar EURJPY in Five test nach Ihren Daten.

Vier ist Alpari, die Minutendaten wurden von Ihrem Server über Angebotsarchiv -> Download heruntergeladen.

Offensichtlich gibt es einen Unterschied in den Spreads, aber das Ergebnis ist sehr unterschiedlich.

Bei 2500 Geschäften sollte der Unterschied höchstens 2500$-5000$ betragen, aber es sind 10000$, wie man sagt, traue deinen Augen nicht.

Übrigens gibt es 1 Handel pro Tag unter der Bedingung eines Gewinns von nicht weniger als 8 (80 - fünfstellig) Pips.

 
Wie kann ich meine E-Mail-Adresse in meinem Profil ändern?