Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Bonjour à tous !
Veuillez aider un débutant à comprendre l'utilisation des tableaux dans les classes. Découpez le code de la clé en un petit morceau pour représenter le problème :
Lorsque l'exécution obtient une erreur Array out of range dans la chaîne de la classe héritée, dans la classe parente j'obtiens le 0 attendu.
2012.02.13 00:41:25 2011.01.01 00:00:00 tableau hors limites dans 'test1.mq5' (29,36)
13.02.2012 00:41:25 01.01.2011 00:00:00 array[0]= 0.0
Je comprends que je passe (ou adresse) incorrectement un tableau à une classe héritière, bien qu'avec des variables normales il n'y ait pas d'erreur avec une telle manipulation.
Qu'est-ce que je fais de mal ?
J'ai vu ce message très souvent ces derniers temps lors de l'exécution de fichiers *.mq5:
Quel pourrait être le problème ?
Bonjour, tout le monde !
Qu'est-ce que je fais de mal ?
Regardez, lorsque vous déclarez "second Csecond ;" dans la deuxième ligne, la méthode InitArray() n'est pas appelée, n'est-ce pas ? En même temps, l'objet Csecond lui-même a déjà été créé. Il s'avère donc que lorsque vous appelez l'objet "Csecond.Printer();", il fait référence au tableau non initialisé et non dimensionné Stf_ZZ_Val[].
S'il vous plaît, dites-moi si la limite de 1000 barres d'historique disponible à partir de la date de début a été supprimée (comme dans MT4) pendant les tests ?
Expliquez ce que vous entendez par là.
Dans Five, les données de l'année précédente sont chargées à partir du début du test. Ainsi, si vous effectuez des tests à partir de 2012.02.01, les données seront chargées à partir de 2011.01.01.
La seule exception est le test sur les jours, les semaines et les mois - le début des données est calculé sur la base de la nécessité d'avoir 100 barres avant le début du test.
Expliquez ce que vous entendez par là.
Lors de l'exécution, par exemple à partir de 2011.01.01 sur des données quotidiennes, nous avons besoin d'un historique d'au moins 3000 barres. En d'autres termes, nous devons fixer une période sciemment plus longue que celle dont nous avons besoin pour les tests, et suivre le "point de départ" de manière programmatique. Quelle est la difficulté de fournir l'historique complet (ou sur demande) pendant le test ?
Il n'y a aucune difficulté. Nous ne voulions pas introduire une case à cocher supplémentaire dans les paramètres de test, qui aurait été incompréhensible pour la plupart des utilisateurs et aurait été mal utilisée dans un grand nombre de cas.
Il est normal d'indiquer une période plus longue en connaissance de cause.
Une autre solution consiste à ordonner les tests sur un mois et à utiliser des indicateurs et des données de prix quotidiens (c'est-à-dire qu'au lieu de PERIOD_CURRENT, il faut définir explicitement PERIOD_D1).
Il y a aussi la question de la disponibilité de l'historique non pas dans les tests, mais dans les transactions automatiques réelles. Que devons-nous faire dans ce cas ? Le testeur peut être plus malin...
Merci pour cette précision !
Par ailleurs, j'effectue des tests avec des agents distants via l'internet. Pourquoi les agents ont-ils droit à l'historique complet des minutes si je fais des essais aux prix du jour d'ouverture? Le temps de préparation avant le début des tests est tout simplement obscène - une heure, par exemple. C'est bien pour ceux qui ont un tuyau de 10 à 100 mégabits, mais là, vous êtes assis sur un misérable mégabit...