L'apprentissage automatique dans la négociation : théorie, modèles, pratique et algo-trading - page 1558

 
Vladimir Perervenko:

C'est beaucoup de travail de démonter le code de quelqu'un d'autre. Nous ne regardons que la fonction custom_tester() et seulement la partie mise en évidence.

Quelle est l'erreur dans le calcul du résultat ? Vous calculez le résultat à chaque itération en ajoutant résultat += testpr[i] - lastpr à la valeur précédente. C'est la différence entre la clôture de la barre actuelle et la précédente. Idéalement, il serait préférable d'utiliser Close - Open, mais cela n'a pas d'importance. L'important est que, ayant reçu un signal à la clôture de la barre actuelle, vous le considérerez comme un signal diff(Close) de la même barre. Ceci est incorrect. La prime du signal de la barre actuelle est diff(Close) de la barre suivante. Le signal doit être déplacé vers la droite d'une barre pour calculer correctement le résultat. p = model.predict_proba(X) à droite d'une barre. Je présenterai d'autres calculs sur R, car c'est plus facile pour moi.

Dans la première ligne, convertir les prédictions en nominal (1,-1), décaler vers la droite d'une barre, enlever NA, obtenir un vecteur de signaux. La deuxième ligne résume de manière cumulative le produit du vecteur des signaux et du vecteur diff(Close), en l'ayant préalablement aligné sur le vecteur des signaux en longueur. Cela nous donnera le bon résultat.

Bonne chance

Lors de l'ouverture d'une position, le prix actuel est enregistré. Dans la boucle, si le signal ne change pas, nous continuons à faire avancer le prix, en gardant le trade ouvert.

Si le signal change sur la barre suivante, inversez la transaction (lastdeal) et soustrayez du prix actuel le prix d'ouverture de la transaction, la différence = profit ou perte, ajoutez au montant total accumulé du solde.

Pour acheter, soustrayez le prix d'ouverture du prix actuel, pour vendre - vice versa. Il n'y a pas d'erreur

Comme le signal est pris pour la barre actuelle, il ne doit pas être décalé.

1 - vendre, 0 - acheter. Légende. Le testeur est très simple

Le code peut peut-être être raccourci, je n'ai pas pris la peine de le faire.

 
Maxim Dmitrievsky:

lors de l'ouverture d'une transaction, le prix actuel est conservé. Dans le cycle, si le signal n'a pas changé, nous continuons à faire avancer le prix, en gardant le trade ouvert.

Si le signal change sur la barre suivante, inversez la transaction (lastdeal) et soustrayez du prix actuel le prix d'ouverture de la transaction, la différence = profit ou perte, ajoutez au montant total accumulé du solde.

Pour acheter, soustrayez le prix d'ouverture du prix actuel, pour vendre - vice versa. Il n'y a pas d'erreur

Comme le signal est pris pour la barre actuelle, il ne doit pas être décalé.

1 - vendre, 0 - acheter. Légende. Le testeur est très simple

Le code peut peut-être être raccourci, je n'ai pas pris la peine de le faire.

C'est une autre approche. Avec cette variante, tout semble aller pour le mieux. Je retire ma remarque.

Bonne chance

 

Pour ceux qui s'intéressent aux rapatriés - quelques informations dans les cammats

https://smart-lab.ru/blog/569692.php#comments

Тестирование модели на машинном обучении. Часть четвертая.
Тестирование модели на машинном обучении. Часть четвертая.
  • smart-lab.ru
Тестирование модели на машинном обучении. Часть четвертая.
 
Maxim Dmitrievsky:

Pour ceux qui s'intéressent aux rapatriés - quelques informations dans les cammats

https://smart-lab.ru/blog/569692.php#comments

le nom seul fait peur :-)

 
Mec, je suis coincé comme d'habitude. Qui aurait cru que rendre un tableau unique en Java serait une telle galère ? :-(
 
Grigoriy Chaunin:

Une nouvelle version de la bibliothèque permettant de connecter Python à MT5 a été mise en ligne. Rappeler le lien https://github.com/RandomKori/Py36MT5 Mais il y a des problèmes. Dans Visual Studio, le projet de test fonctionne comme il le devrait, mais dans MT, il y a quelques problèmes peu clairs. Maintenant la bibliothèque fonctionne bien avec le répertoire où se trouve le script Python. Je ne sais pas comment déboguer le lien avec MT. MT est protégé du débogueur. Peut-être que quelqu'un sait comment déboguer ?

Bonjour,

Veuillez me conseiller sur la façon de connecter la bibliothèque.

Le script peut être situé dans n'importe quel répertoire ? D'après le code, il est câblé sur "C:\local\Scripts\".

Lorsque vous placez la dll dans le dossier "MQL5\Libraries", la bibliothèque est incluse mais toutes les autres bibliothèques, "python36.dll, kernell32.dll etc.

Dans le chemin d'accès à la prescription python.

Comment connecter correctement pymt.dll ?

 
 
 
Maxim Dmitrievsky:

À première vue, il y a un surentraînement évident. On peut constater qu'ils agissent aujourd'hui comme hier. Les 200 ans d'expérience qu'ils sont censés acquérir dans le cadre de leur formation sont donc loin d'être suffisants :-(

 
Mihail Marchukajtes:

À première vue, il y a un surentraînement évident. Vous pouvez constater qu'ils agissent aujourd'hui de la même manière qu'ils agissaient hier. Les 200 ans d'expérience qu'ils auraient acquis au cours de leur formation ne sont donc pas ce dont vous avez besoin - hélas :-(

Ouais, zéro intelligence