![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
Hallo zusammen!
Bitte helfen Sie einem Neuling, die Verwendung von Arrays in Klassen zu verstehen. Schneiden Sie den Schlüsselcode in ein kleines Stück, um das Problem darzustellen:
Beim Ausführen wird ein Fehler Array außerhalb des Bereichs in der Zeichenfolge der geerbten Klasse, in der übergeordneten Klasse erhalte ich die erwartete 0.
2012.02.13 00:41:25 2011.01.01 00:00:00 Array außerhalb des Bereichs in 'test1.mq5' (29,36)
2012.02.13 00:41:25 2011.01.01 00:00:00 array[0]= 0.0
Ich verstehe, dass ich fälschlicherweise ein Array an eine Erbenklasse übergebe (oder adressiere), obwohl bei normalen Variablen kein Fehler bei einer solchen Behandlung auftritt.
Was mache ich falsch?
Ich sehe diese Meldung in letzter Zeit sehr oft, wenn ich *.mq5-Dateien ausführe:
Was könnte das Problem sein?
Hallo zusammen!
Was mache ich falsch?
Wenn Sie "second Csecond;" in der zweiten Zeile deklarieren, wird die Methode InitArray() nicht aufgerufen, richtig? Gleichzeitig wurde das Csecond-Objekt selbst bereits erstellt, so dass sich beim Aufruf der Funktion "Csecond.Printer();" bezieht sich auf das nicht initialisierte und undimensionale Array Stf_ZZ_Val[].
Bitte sagen Sie mir, ob die Begrenzung auf 1000 verfügbare Balken ab dem Startdatum während der Testphase aufgehoben wurde (wie in MT4)?
Erklären Sie, was Sie damit meinen?
In Five werden die Daten aus dem Vorjahr ab Beginn der Prüfung geladen. Wenn Sie also ab 2012.02.01 testen, werden die Daten ab 2011.01.01 geladen.
Die einzige Ausnahme ist die Prüfung an Tagen, Wochen und Monaten - der Beginn der Daten wird hier auf der Grundlage der Notwendigkeit berechnet, 100 Balken vor Beginn der Prüfung zu haben.
Erklären Sie, was Sie damit meinen.
Wenn wir z.B. ab dem 01.01.2011 mit täglichen Daten arbeiten, benötigen wir eine Historie mit mindestens 3000 Balken. Mit anderen Worten, wir müssen einen bewusst längeren Zeitraum festlegen, als wir für die Prüfung benötigen, und den "Startpunkt" programmatisch verfolgen. Wie schwierig ist es, die gesamte Anamnese (oder auf Anfrage) während der Prüfung vorzulegen?
Es gibt überhaupt keine Schwierigkeiten. Wir wollten kein zusätzliches Kontrollkästchen in den Testeinstellungen einführen, das für die meisten Benutzer unverständlich gewesen wäre und in vielen Fällen missbraucht worden wäre.
Es ist eine normale Lösung, einen bewusst längeren Zeitraum anzugeben.
Eine andere Lösung ist, die Tests auf monatlicher Basis zu bestellen und tägliche Indikatoren und Preisdaten zu verwenden (d. h. statt PERIOD_CURRENT explizit PERIOD_D1 einzustellen).
Es stellt sich auch die Frage nach der Verfügbarkeit der Historie nicht in Tests, sondern im realen Autohandel. Was sollten wir in diesem Fall tun? Der Prüfer kann überlistet werden...
Danke für die Klarstellung!
Nebenbei bemerkt: Ich teste mit Remote-Agenten über das Internet. Warum erhalten Agenten den gesamten Minutenverlauf, wenn ich zu den Preisen des Eröffnungstages teste? Die Vorbereitungszeit vor Beginn der Prüfungen ist einfach unverschämt - eine Stunde zum Beispiel. Gut für diejenigen mit einer 10-100-Megabit-Leitung, aber hier sitzt man auf einem mickrigen Megabit...