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

 
Romain:

Paramètres -> Général -> Insertion de () et fermeture }])') "
Peut-être que cela vous aidera ?

Ou compiler.
Ensuite,dans l'onglet Erreurs, double-cliquez sur la première erreur.
Le curseur ira là où il n'y a pas de crochet de fermeture.
Et donc pour chaque parenthèse, double-cliquezsur l'erreur, mettez la parenthèse, compilez.

la tâche consiste à générer un code mql fonctionnel en python, alors pourquoi le bricoler ?

presque terminé

 
Romain:

Paramètres -> Général -> Insertion de () et fermeture }])') "
Peut-être que cela pourrait aider ?

Ou compiler.
Ensuite,dans l'onglet Erreurs, double-cliquez sur la première erreur.
Le curseur ira là où il n'y a pas de crochet de fermeture.
Et donc pour chaque parenthèse, double-cliquez surune erreur, mettez la parenthèse, compilez.

Je crois que j'ai compris que tu ne peux pas le faire hors ligne.

le portefeuille est vraiment quelque chose....

 

voila

serait une douleur dans le débogueur :D

ce n'est pas le plus grand arbre que l'on peut avoir.

double decision_tree(double &features[]) { 
    if ( features[11] <= 0.000385 )  {
        if ( features[9] <= -0.000275 )  {
            if ( features[9] <= -0.000465 )  {
                if ( features[5] <= 0.00034 )  {
                    if ( features[10] <= -0.00034 )  {
                        return 2; }
                    if ( features[10] > -0.00034 )  {
                        if ( features[11] <= -0.00031 )  {
                            return 1; }
                        if ( features[11] > -0.00031 )  {
                            return 2; } } }
                if ( features[5] > 0.00034 )  {
                    return 1; } }
            if ( features[9] > -0.000465 )  {
                if ( features[4] <= -0.000465 )  {
                    return 1; }
                if ( features[4] > -0.000465 )  {
                    if ( features[9] <= -0.000425 )  {
                        if ( features[5] <= -0.00015 )  {
                            return 1; }
                        if ( features[5] > -0.00015 )  {
                            return 2; } }
                    if ( features[9] > -0.000425 )  {
                        if ( features[8] <= -0.000165 )  {
                            if ( features[4] <= -0.000395 )  {
                                if ( features[5] <= -0.00033 )  {
                                    return 1; }
                                if ( features[5] > -0.00033 )  {
                                    return 2; } }
                            if ( features[4] > -0.000395 )  {
                                return 2; } }
                        if ( features[8] > -0.000165 )  {
                            if ( features[8] <= -4.5 e-05 )  {
                                return 1; }
                            if ( features[8] > -4.5 e-05 )  {
                                return 2; } } } } } }
        if ( features[9] > -0.000275 )  {
            if ( features[3] <= 0.000605 )  {
                if ( features[1] <= -0.00036 )  {
                    return 2; }
                if ( features[1] > -0.00036 )  {
                    if ( features[9] <= -0.000115 )  {
                        if ( features[2] <= 0.000165 )  {
                            if ( features[4] <= -0.000125 )  {
                                if ( features[7] <= -0.00014 )  {
                                    if ( features[6] <= -0.000265 )  {
                                        if ( features[8] <= -0.0003 )  {
                                            return 1; }
                                        if ( features[8] > -0.0003 )  {
                                            return 2; } }
                                    if ( features[6] > -0.000265 )  {
                                        return 1; } }
                                if ( features[7] > -0.00014 )  {
                                    if ( features[10] <= -0.00015 )  {
                                        return 1; }
                                    if ( features[10] > -0.00015 )  {
                                        return 2; } } }
                            if ( features[4] > -0.000125 )  {
                                return 1; } }
                        if ( features[2] > 0.000165 )  {
                            return 2; } }
                    if ( features[9] > -0.000115 )  {
                        if ( features[1] <= -0.000175 )  {
                            if ( features[8] <= 0.000145 )  {
                                return 1; }
                            if ( features[8] > 0.000145 )  {
                                if ( features[2] <= -9.5 e-05 )  {
                                    return 0; }
                                if ( features[2] > -9.5 e-05 )  {
                                    return 2; } } }
                        if ( features[1] > -0.000175 )  {
                            if ( features[11] <= 0.000195 )  {
                                if ( features[11] <= -5.5 e-05 )  {
                                    if ( features[5] <= 9.5 e-05 )  {
                                        return 1; }
                                    if ( features[5] > 9.5 e-05 )  {
                                        if ( features[2] <= -2.5 e-05 )  {
                                            return 0; }
                                        if ( features[2] > -2.5 e-05 )  {
                                            return 1; } } }
                                if ( features[11] > -5.5 e-05 )  {
                                    if ( features[8] <= -8.5 e-05 )  {
                                        if ( features[2] <= 2.5 e-05 )  {
                                            return 1; }
                                        if ( features[2] > 2.5 e-05 )  {
                                            return 2; } }
                                    if ( features[8] > -8.5 e-05 )  {
                                        return 1; } } }
                            if ( features[11] > 0.000195 )  {
                                if ( features[4] <= -0.00024 )  {
                                    return 0; }
                                if ( features[4] > -0.00024 )  {
                                    if ( features[2] <= 0.00021 )  {
                                        if ( features[1] <= 1.5 e-05 )  {
                                            return 1; }
                                        if ( features[1] > 1.5 e-05 )  {
                                            return 1; } }
                                    if ( features[2] > 0.00021 )  {
                                        if ( features[5] <= 0.00024 )  {
                                            return 0; }
                                        if ( features[5] > 0.00024 )  {
                                            return 1; } } } } } } } }
            if ( features[3] > 0.000605 )  {
                if ( features[11] <= 0.000195 )  {
                    return 2; }
                if ( features[11] > 0.000195 )  {
                    return 0; } } } }
    if ( features[11] > 0.000385 )  {
        if ( features[11] <= 0.00049 )  {
            if ( features[3] <= 0.000155 )  {
                if ( features[8] <= 0.00036 )  {
                    return 0; }
                if ( features[8] > 0.00036 )  {
                    return 1; } }
            if ( features[3] > 0.000155 )  {
                if ( features[11] <= 0.00041 )  {
                    if ( features[5] <= 0.00047 )  {
                        return 0; }
                    if ( features[5] > 0.00047 )  {
                        return 1; } }
                if ( features[11] > 0.00041 )  {
                    return 1; } } }
        if ( features[11] > 0.00049 )  {
            if ( features[4] <= -0.00022 )  {
                return 1; }
            if ( features[4] > -0.00022 )  {
                if ( features[2] <= 0.000345 )  {
                    return 0; }
                if ( features[2] > 0.000345 )  {
                    if ( features[7] <= 0.00061 )  {
                        return 1; }
                    if ( features[7] > 0.00061 )  {
                        return 0; } } } } }


 return 3; }
 

Vérifier que l'arbre fonctionne de la même manière.

Sur mql :

2020.07.11 23:17:15.120 code check (EURUSD,M5)  Result 2.0
2020.07.11 23:17:15.121 code check (EURUSD,M5)   0.00000  0.00030  0.00031  0.00019  0.00005 -0.00009 -0.00014 -0.00014 -0.00008 -0.00025 -0.00014 -0.00038

En python :

lll = [0.00000,  0.00030,  0.00031,  0.00019,  0.00005, -0.00009, -0.00014, -0.00014, -0.00008, -0.00025, -0.00014, -0.00038]
lll = np.array(lll).reshape(1,-1)
clf.predict(lll)

>>> clf.predict(lll)
array([2])
 
Renat Akhtyamov:

Je crois que j'ai compris que tu ne peux pas le faire hors ligne.

la mallette est un vrai morceau de travail....

Il fonctionne bien hors ligne. Je l'ai testé.

Je vais avoir un manteau de fourrure sur la tête.

C'était une erreur stupide.

Roman, cherche ton bug, il devrait fonctionner correctement sur l'historique.

;)

steamy, il y a 7 ans

Je l'ai trouvé, j'ai trouvé la faille dans la stratégie ! !!

pré-testing jusqu'à 10x par jour

à venir........

 
@Maxim Dmitrievsky le parseur est-il toujours nécessaire ?
Dossiers :
parser.zip  2 kb
 
Renat Akhtyamov:

La vie hors ligne fonctionne très bien, je l'ai testé.

Ça fait tourner mon manteau.

Il y a eu une erreur stupide.

Roman, cherche une erreur en toi-même, ça devrait fonctionner correctement sur l'histoire.

;)

steamy, il y a 7 ans

je l'ai trouvé, j'ai trouvé la faille dans la stratégie ! !!

pré-testing jusqu'à 10x par jour

à venir........

Je n'ai donc rien dit sur le fait qu'il ne fonctionne pas sur l'histoire :)))
J'ai dit que je ne l'avais pas terminé pour l'histoire, donc j'ai reporté le développement pour le moment.
La préparation des données historiques est donc l'une des étapes importantes.
Et tous les modèles sont construits et testés en tenant compte de l'histoire.
Ce sont les statistiques ;)
C'est bien pour vous que tout se passe bien.

 
Nanix:
@Maxim Dmitrievsky le parseur est-il toujours nécessaire ?

Merci, les parenthèses manquent toujours, par exemple ici.

if(L_55_1  >  0.00047) {
    if(L_30_1  <= 0.00044)
        { return 2;}
    if(L_30_1  >  0.00044) {
        if(L_25_1  <= 0.00047) {
            if(L_5_1  <= 0.00012)
                { return 0;}
            if(L_5_1  >  0.00012)
                { return 2;} }
        if(L_25_1  >  0.00047) return 2; } }

rouge - comme il se doit.

Le mien fait tout ça. Dans le cas contraire, les conditions ne fonctionneront pas correctement et l'arbre comptera les mauvaises valeurs.

 
Maxim Dmitrievsky:

merci, les parenthèses manquent toujours, par exemple ici

les rouges sont comme ils doivent être.

Le mien fait tout. Sinon, les conditions ne fonctionneront pas correctement et l'arbre sera mal compté.

A partir de vos codes, j'ai commencé à comprendre grossièrement le fonctionnement des arbres. Algorithme faible par rapport au polynôme, je pense que oui....
 
Mihail Marchukajtes:
A partir de vos codes, j'ai commencé à comprendre grossièrement le fonctionnement des arbres. Algorithme faible par rapport au polynôme, il me semble donc....

pas de conneries.

Raison: