![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Und so. Es ist soweit! Nicht einmal ein Jahr später. Ich habe mich entschieden! Ich habe die Dokumentation von MQL5 geprüft. Ich habe ganz klein angefangen: Ich habe den Code eines Indikators minimiert, um seine Struktur und Funktionsweise zu vereinfachen und zu verstehen. Dann wurde ich benommen.
Zuerst habe ich Fractals gegraben - es schien unerwartet klein und sehr einfach zu sein. Dann habe ich logisch gedacht: Es ist nicht sinnvoll, diesen Code von einem Programm zum anderen zu ziehen, ich sollte einfach diesen Indikator aufrufen, kopieren und die fertig berechneten Pufferwerte verwenden. Wenn ich mich nicht irre, wurde ich zu einem Beispiel mit iFractals geführt ("Habe ich es richtig gemacht?"). (c)). Ich habe den Code so weit wie möglich reduziert, alles Unnötige und konventionell Unnötige gestrichen und nur das Wesentliche übrig gelassen. Und was habe ich gefunden? Der Code des Indikatoraufrufs ist in Bezug auf Größe und Lesbarkeit nicht kompakter als der ursprüngliche Code des Indikators selbst.
Die Fragen.
1. Was ist die Bedeutung von iFractals?
2. Was ist los mit mir?
Danke!
P.S.: Oder handelt es sich nur um einen Sonderfall, bei dem die Menge des zweiten Codes keinen Vorteil bringt?
2. Was ist los mit mir?
Seien Sie bei Ihren Fragen konkreter.
Es ist eine Frage der
von Leben und Tod...
Was ist die nicht-kriminelle Weg, um den Wert der offenen [15625] bar H1 von Zeitrahmen zu erhalten
Ich habe es versucht, egal wie sehr ich es versucht habe, aber es meldet einen kritischen Fehler... Ich habe alles versucht, also wer weiß... Ich weiß, es sind 3 Zeilen Code... aber welche... das Recht... das Recht... damit es keine Fehlermeldung gibt...
Es ist eine Frage der
von Leben und Tod...
Welche nicht-kriminelle Weise zu bekommen offen [15625] bar Wert der H1-Zeitrahmen
Ich habe versucht, es zu bekommen, aber es meldet einen kritischen Fehler... Ich habe alles Mögliche ausprobiert, also wer weiß... Ich weiß, es sind 3 Zeilen Code... aber welche... das Recht... das Recht... damit es keine Fehlermeldung gibt...
Bitte geben Sie mir Ihren Code.
Bitte geben Sie uns Ihren Code.
hier ist
double MTime ( int mode )
{
double iOpen_min [], iOpen_hour [], iOpen_4hour [];
ArraySetAsSeries ( iOpen_min, true );ArraySetAsSeries ( iOpen_hour, true );
ArraySetAsSeries ( iOpen_4hour, true );
int rates_open_min, rates_open_hour, rates_open_4hour;
int err = 0;
tun
{
rates_open_min = CopyOpen ( NULL, PERIOD_M1, 0, 7501, iOpen_min );
rates_open_hour = CopyOpen ( NULL, PERIOD_H1, 0, 20000, iOpen_hour );
rates_open_4hour = CopyOpen ( NULL, PERIOD_H4, 0, 10000, iOpen_4hour );
err ++;
}
while ( ( rates_open_min <= 0 || rates_open_hour <= 0 || rates_open_4hour <= 0) && err <= 10 );
double Minute2 = iOpen_min [ 0 ] - iOpen_min [ 2 ];
double Minute12 = iOpen_min [ 0 ] - iOpen_min [ 12 ];
double Hour = iOpen_min [ 0 ] - iOpen_min [ 60 ]; // Hour
double Hour5 = iOpen_min [ 0 ] - iOpen_min [ 300 ]; // 5 Hour
double Day = iOpen_min [ 0 ] - iOpen_min [ 1500 ]; // Day
double Week = iOpen_min [ 0 ] - iOpen_min [ 7500 ]; // Week
double Month = iOpen_hour [ 0 ] - iOpen_hour [ 625 ]; // Monat
double Month5 = iOpen_hour [ 0 ] - iOpen_hour [ 3125 ]; // halbes Jahr
double Month25 = iOpen_hour [ 0 ] - iOpen_hour [ 15625 ]; // 3 Jahre
in der letzten Zeile des letzten Operators gibt es immer einen kritischen Fehler... Es kann sogar vorkommen, dass der Expert Advisor im Strategietester zu handeln beginnt und dann, nach anderthalb Jahren, einen Fehler erzeugt und abstürzt
der kritische Fehler ist die Überschreitung der Grenzen des Arrays.
Sie könnten dies versuchen:
Kritischer Fehler - Überschreitung der Array-Grenzen.
Irgendwie können wir es auf diese Weise versuchen:
Das ändert aber nichts am Kern des Problems... Wenn er die Daten nicht weiter kopiert... Der Expert Advisor handelt nicht mehr wie zuvor, aber ohne Fehler...
Das Problem ist, warum diese Situation überhaupt auftritt, wenn die Geschichte riesig ist... und du kannst es nicht benutzen...
Bitte geben Sie Ihren Code an.
Nun, da es keine Antwort gibt, gebe ich einfach )))) manuell ein, da es nur einen Wert gibt.
Sie haben keine Kontrollen in Ihrem Code. Was wollen Sie dann?
Das ändert aber nichts an dem Problem... wenn er die Daten nicht weiter kopiert... Der Expert Advisor handelt nicht mehr wie zuvor, aber ohne Fehler...
Das Problem ist, warum diese Situation überhaupt auftritt, wenn die Geschichte riesig ist... und du kannst es nicht benutzen...
Die Daten werden zwar kopiert, aber nicht immer beim ersten Versuch ... und nach einem kritischen Fehler funktioniert der Expert Advisor nicht mehr.
while( ... rates_open_hour <= 0 // Es wird nur die Menge an Daten kopiert, die im Moment verfügbar ist, so dass das Array weniger als 15625 sein kann.
Die Situation entsteht durch mangelndes Lesen der Handbücher :)