[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 312
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
c'est la même chose... Pour le décrire aussi, mais pour une situation différente.
N'est-ce pas ?
Artem, ça ne te dérange pas d'écrire le code, n'est-ce pas ? Ou donnez-moi ce truc que vous avez dans la main et je mettrai fin à cette misère...
Question sur le fonctionnement du testeur : après qu'untest ait été réussi, vous changez les paramètres (dates, paire de devises, délai), relancez le test - il s'exécute, mais lorsqu'il est terminé, les informations dans les onglets comme "graphique" et "rapport" ne changent pas du tout - tout reste du test précédent. Le rapport sauvegardé s'avère également être ancien. Quelle en est la raison et comment y remédier ? Peut-être existe-t-il une fonction permettant de réinitialiser les résultats ?
J'ai lu le manuel, les articles, j'ai fait des recherches sur le forum - je n'ai rencontré aucune mention d'un tel problème...
Il ne devrait pas être comme ça, peut-être avez-vous coché "Optimisation" ?
Cela ne devrait pas être le cas, peut-être avez-vous coché "Optimiser" ?
Oh, cela semble être le cas : en lançant un nouveau test, je n'ai pas remarqué que l'optimisation était activée, je pensais que ce n'était pas critique. Une solution d'interface un peu étrange...
Mais ça marche maintenant, merci beaucoup !
Je n'ai pas creusé la logique, mais quelque chose me dit qu'il y a des calculs inutiles. Il y a un an et demi, je résolvais le même problème en rassemblant des citations et en formant des chandeliers M1 avec une coupe claire au début de la minute astronomique.
Si cela vous intéresse, vous pouvez jeter un coup d'œil à quelques moments d'optimisation pure de votre code (fichier). En réalité, si nous parlons sérieusement d'optimisation, vous devez mesurer le temps d'exécution du code. ;)
Maintenant, j'essaie une méthode différente, en partant de zéro.
Question pour Vadim sur la cartographie. Donc, euh... Je suis parti de zéro. Nous prenons le tic-tac original TF :
En principe, il y a une logique très simple : nous attrapons un bidask, formons RateInfo, mais nous mettons le temps au Volume et modélisons le Temps. Maintenant, sans nous soucier de la façon de simuler le temps, nous supprimons complètement la simulation et la faisons par TOLHCV standard et avant cela nous mettons "si plus de 0 seconde s'est écoulée depuis le dernier appel de start()". S'il était inférieur dans une autre branche de la même condition, éditez High-Low et incrémentez Volume. Il s'agit essentiellement de la même chose que celle décrite ci-dessus, mais avec un cycle complètement supprimé, c'est-à-dire que nous obtenons une seconde TF "avec des lacunes" (avec des secondes manquantes) :
J'ai aussi laissé le classement haussier-baissier complètement éteint. Le jeu en vaut la chandelle ? Vérifions, mettez GetTickCount() avec rétrécissement à cette variante et à la variante initiale du propriétaire, exécutez-les simultanément sur un graphique, regardez le log :
comme prévu. Tick - original, secondes avec écarts - modifié. Formez maintenant un tableau auxiliaire avant time=TimeCurrent() :
C'est dans le code des secondes tf. Pour l'EA qui survolera le secondtf lui-même, les valeurs TOLHCV il y a x secondes peuvent alors être obtenues comme ind[GlobalVariableGet("final")]-ind[GlobalVariableGet("final")-x]+1, si bien sûr ce tableau est transmis d'une manière ou d'une autre. Alors, utilisons la cartographie :
Nous écrivons un script de test qui survole les secondes et lit les valeursTOLHCV il y a x secondes (pas les chandeliers) :
Nous travaillons à la seconde près. Lors de l'initialisation, une fenêtre s'affiche
Il y a 58.572 fois dans le journal
et à la désinitialisation il montre une fenêtre
В методе "MT4::Memory::SearchIndexOrHandle()" не установлен параметр для поиска в области памяти терминала.
Bien deinitializatsii il plus tard, je mets le script - alerte une fois. Je surcharge MemoryCreate et MemoryCloseHandle, rien n'apparaît (le script garde l'alerte), le log
- et c'est tout. Donc, logiquement, j'utilise les appels dans le mauvais ordre ou je les déclare incorrectement. Mon système d'exploitation est WinXP. Vadim, dis-moi au moins dans quelle direction aller.
Comment faire en sorte que lorsqu'un paramètre de tendance est passé à cette fonction, qui sera chargée de passer la supposée tendance principale du moment, le calcul sera basé sur ce paramètre.
C'est-à-dire que si la tendance == baisse, la fonction dans la boucle était comme maintenant, et sila tendance == hausse, l' Open[i ] et le Close[i] étaient échangés dans la boucle, de sorte que les conditions étaient respectées. Car dans ce cas, le prix de clôture de la barre sera inférieur au prix d'ouverture et la différence sera négative.
Dans ce cas,2*trend-1prend les valeurs +1 et -1, c'est-à-dire que si trend=vrai, il sera en hausse et trend=faux, il sera en baisse tandis que Δ sera respectivement pris avec le bon ou le mauvais signe. Ce n'est qu'un exemple où les mathématiques remplacent le "si".