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

 
FxTrader562:

Pour moi, GDMH ne semble pas très difficile à mettre en œuvre, si j'ai bien compris... Mais je vais y réfléchir à nouveau.

Vous calculez chaque polynôme en utilisant une boucle for et en obtenant la somme de la multiplication des entrées de coefficients et de valeurs indicatrices comme ai*xi.

2. ensuite, alimenter le polynôme individuel à l'entrée RDF et l'entraîner.

3.ensuite, calculer le coefficient optimal en utilisant la méthode des moindres carrés.

4. ensuite, itérer l'ensemble du processus en continu pendant la période de négociation.

Si j'ai bien compris et si je peux vous aider de quelque manière que ce soit, alors vous pouvez m'écrire.

A propos, j'ai de bons exemples de codes pour Lotoptimisation() et money management() etc. qui peuvent être très très utiles si vous pouvez obtenir la précision et le drawdown du système à un niveau raisonnable. Le système n'a pas besoin d'être précis à 99% tout le temps, mais le drawdown et les pertes consécutives comptent beaucoup.

D'accord, mais il faut l'implémenter correctement : sauvegarder les meilleurs modèles et coefficients pour les prédicteurs, pour la prochaine utilisation.

aussi différentes méthodes de gmdh - sélection génétique rapide ou force brute (je pense 1-st)

En outre, dans cette nouvelle bibliothèque, vous pouvez ajouter plusieurs agents avec des prédicteurs différents et des paramètres différents, le résultat sera calculé sur la moyenne de tous les agents.
 
Vizard_:

On vous dit depuis 4 que c'est un hochet boiteux dans toutes les mises en œuvre et ça vous tue en un rien de temps.
Le trolling est le trolling, mais si vous avez quelque chose et que quelqu'un en a besoin, envoyez-le... Le projet est ouvert et ne vous appartient pas))))

Je ne suis pas avide. C'est par principe, d'autant que je lui ai déjà donné le lien...... Laissez-le à..... Je prévois de terminer le hochet, je pense que Reshetov n'a tout simplement pas eu le temps :-(((((. Mais avoir un bon optimiseur dans une boîte n'est pas une mauvaise idée. Mais ce qui est plus cool que ça. L'endroit où vous pouvez vraiment gagner de l'argent est un projet oublié depuis très longtemps, mais il nécessite des programmeurs, et où les trouver ? Il n'y a pas de telles personnes ici. D'ailleurs, pensez-y, j'ai un anniversaire juste le jour du programmeur. .....

 
Maxim Dmitrievsky:

D'accord, mais il faut l'implémenter correctement : sauvegarder le meilleur modèle et les coefficients pour les prédicteurs, pour la prochaine utilisation.

aussi différentes méthodes de gmdh - sélection génétique rapide ou force brute (je pense 1-st)

En outre, dans cette nouvelle bibliothèque, vous pouvez ajouter plusieurs agents avec des prédicteurs différents et des paramètres différents, le résultat sera calculé sur la moyenne de tous les agents.

Pour sauvegarder le meilleur modèle, vous devez itérer l'ensemble pour cibler une valeur particulière de "Sharp ratio" et de "Recovery factor". Tant qu'il n'obtient pas les résultats d'optimisation requis, ne faites pas d'échanges. Je l'ai déjà implémenté dans votre version précédente. Si vous voulez un exemple de code, je peux vous le donner.

Oui, bien sûr, l'algorithme génétique rapide. Mais comme je l'ai mentionné plus haut, ne placez pas de transaction avant d'avoir atteint les résultats requis définis dans les paramètres d'entrée et donc, cela n'a pas d'importance.

Laissez-moi explorer les possibilités de cette nouvelle bibliothèque et je vous ferai part de mes réactions.

 
Maxim Dmitrievsky:

Dans cette version, je vérifie les erreurs de classification (ou logloss) sur le sous-ensemble de test, et je choisis la meilleure. Ce modèle, je le garde. Je pense qu'il fonctionne bien, mais le noyau actuel est nul.

Et cette fonction choisit le meilleur modèle sur les prédicteurs transformés

Ok, mais comment va-t-il répéter l'itération ? Je veux dire, est-ce que c'est un processus unique ou est-ce qu'il va se répéter après chaque bougie ou chaque heure etc ?

C'est la partie la plus importante.

J'utilise un logiciel tiers développé par mes soins pour itérer le tout, car je ne sais pas comment le faire dans MQL5. Je veux dire que je l'utilisais dans votre version précédente pour vérifier le "sharp ratio" après chaque optimisation.

Avez-vous fait quelque chose de similaire pour itérer l'ensemble du processus de manière continue après une certaine période de temps ?

 
FxTrader562:

Mais comment va-t-il répéter l'itération ? Je veux dire, est-ce que c'est un processus unique ou est-ce qu'il va se répéter après chaque bougie ou chaque heure etc ?

C'est la partie la plus importante.

J'utilise un logiciel tiers développé par mes soins pour itérer le tout, car je ne sais pas comment le faire dans MQL5.

Ce processus à 1 itération, en testeur. Ensuite, dans cette fonction, il transforme les prédicteurs de manière itérative et apprend les modèles.

J'ai une autre version pour optomisator, mais d'après mon expérience, une itération est également bonne ici.

 
FxTrader562:

Avez-vous fait quelque chose de similaire pour itérer l'ensemble du processus de manière continue après une certaine période de temps ?

pas encore

si nous avons un bon modèle - il fonctionnera pendant des jours et des semaines, l'auto-optimisation n'est donc pas une tâche prioritaire
 
Maxim Dmitrievsky:

ce processus à 1 itération, dans le testeur. Ensuite, dans cette fonction, il transforme les prédicteurs de façon itérative et apprend les modèles.

J'ai une autre version pour optomisator, mais d'après mon expérience, une itération est également bonne ici.

Mais je ne pense pas qu'un modèle puisse toujours fonctionner sans optimisation. En particulier, lorsque le marché change, le meilleur modèle peut échouer terriblement, même après une grande valeur du ratio pointu et d'autres facteurs...

 
FxTrader562:

Alors je pense que tout ira bien si vous optimisez en permanence.


Au fait, voici le code source dont je parle :

input string OptimizationParameterCheckSettings="===Réglages des paramètres d'optimisation enregistrés===" ;

entrée bool OptimizationParameterCheck=true ;

entrée double SharpRatioRequired=0.3 ;


Ajouter ce code dans le testeur :

filehnd=FileOpen("SharpRatio_"+_Symbol+(string)_Period+".txt",FILE_READ|FILE_WRITE|FILE_CSV|FILE_ANSI|FILE_COMMON);//---Pour sauvegarder le SharpRatio de la dernière exécution

double SharpRatio=NormalizeDouble(TesterStatistics(STAT_SHARPE_RATIO),2) ;

FileWrite(filehnd,SharpRatio) ;

FileClose(filehnd) ;


Ensuite, la fonction de démarrage intérieur :

if(SharpRatioLastRun<SharpRatioRequired)

{

Comment("La politique de trading actuelle ne répond pas aux exigences de trading selon les derniers résultats d'optimisation....So trading has been stopped for some time") ;

retour ;

}


bonne méthode, merci !

 
Maxim Dmitrievsky:

bonne méthode, merci !

D'accord, mais je répète que vous devriez sérieusement envisager d'ajouter une forme d'optimisation continue, sinon, c'est voué à l'échec. Parce que, comme je l'ai dit plus tôt, j'ai essayé toutes les combinaisons de paramètres ainsi que différents indicateurs et plusieurs horizons temporels et rien n'a fonctionné parfaitement jusqu'à présent......

Mais lorsque j'itère continuellement, cela fonctionne parfois bien. Au fait, j'ai la solution pour le mien. Mais je n'aime pas cette méthode, car cela devrait être fait par MQL5 et je ne sais pas comment le faire dans MQL5.

 
FxTrader562:

D'accord, mais je répète que vous devriez sérieusement envisager d'ajouter une forme d'optimisation continue, sinon, c'est voué à l'échec. Parce que, comme je l'ai dit plus tôt, j'ai essayé toutes les combinaisons de paramètres ainsi que différents indicateurs et plusieurs horizons temporels et rien n'a fonctionné parfaitement jusqu'à présent......

Mais lorsque j'itère continuellement, cela fonctionne parfois bien.

Parce que les modèles craignent toujours ^) avec de grosses erreurs, il faut des modèles qui fonctionnent plus longtemps

par exemple 2 mois d'apprentissage et 1 semaine de négociation