L'Apprentissage Automatique dans le trading : théorie, modèles, pratique et trading algo - page 1907

 
Maxim Dmitrievsky:

En voici un. Il n'y a que 12 fiches, pas 24.

J'ai des erreurs

>>> print(train_score, " ", tst_score)

1.0 0.5454545454545454

Il s'agit d'une alphabétisation pour le sujet Maxim purement de l'épaule. Le fichier que vous venez de m'envoyer comporte un total de 12 entrées. Pour commencer par le haut, je dois avoir 20-24 mouvements, puis je peux commencer avec 11 entrées (pour mes capacités c'est le maximum) et aller vers elles, en réduisant le nombre d'entrées et en les parcourant. Lorsque j'optimise de haut en bas, les dix premiers parcours individuels, je le fais de manière à sélectionner le meilleur parcours et à commencer l'entraînement normal à partir de celui-ci. Si je n'ai pas assez d'entrées, je commence généralement par le bas avec 5 entrées et j'essaie d'augmenter le nombre d'entrées et de sélectionner la pire version des dix premières descentes, afin de repousser le départ dans la zone de dépassement maximal pendant l'entraînement. Dans le premier cas, j'économise farouchement mes ressources. Dans le second cas, je choisis la pire option et j'essaie de passer en revue toutes les variantes possibles autant que faire se peut.

Ce que vous avez obtenu de ces données est une connerie. Regardez ce que j'ai obtenu et je fais confiance à ces résultats, je ne fais seulement pas confiance à vos entrées, qui regardent l'avenir. Maxim, pourquoi n'as-tu pas honte de faire ça ? Les enfants nous regardent et tu essaies de leur montrer des images et tu te demandes pourquoi ça ne marche pas avec les commentaires ?

Donnons vous maintenant je vais vous envoyer le modèle et le fichier de formation que vous savez quel numéro d'entrée correspond à vos désignations, mais si vous ne montrez pas le modèle de travail dans la boucle de rétroaction je ne vais pas vous faire beaucoup plus. Tout le monde veut savoir comment ça marche. Donc la machine shaitan ne travaille pas gratuitement.


Juste un extrait de code de base

vv0[q]=0;//12    вместо нулей подай значения своих входов
vv1[q]=0;//10
vv2[q]=0;//8
vv3[q]=0;//2
double Ress1=getBinaryClassificator1(vv0[q],vv1[q],vv2[q],vv3[q]);  //Вызов результатов полиномов 
double Ress11=getBinaryClassificator2(vv0[q],vv1[q],vv2[q],vv3[q]);

double getBinaryClassificator1(double v0, double v1, double v2, double v3) {
   double x0 = 2.0 * (v0 + 0.00352160000000379) / 0.0060209999999973896 - 1.0;
   double x1 = 2.0 * (v1 + 0.00321680000000524) / 0.006628599999996879 - 1.0;
   double x2 = 2.0 * (v2 + 0.00257640000000836) / 0.00577599999999978 - 1.0;
   double x3 = 2.0 * (v3 + 0.00197520000000417) / 0.00414859999999794 - 1.0;
   double decision = 0.6226912928759895 * x0
  -0.013192612137203167 * x0 * x1
  + 0.9920844327176781 * x2
  + 1.3060686015831136 * x0 * x2
  -3.5395778364116093 * x1 * x2
  -1.1394019349164468 * x3
  + 2.5659630606860158 * x0 * x3
  + 0.5395778364116095 * x1 * x3
  + 0.31090589270008795 * sigmoid(x0)
  + 0.009674582233948988 * sigmoid(x1)
  -0.0839929639401935 * sigmoid(x0 + x1)
  + 0.012313104661389622 * sigmoid(x2)
  + 0.30474934036939316 * sigmoid(x0 + x2)
  -0.5958663148636764 * sigmoid(x1 + x2)
  + 0.002638522427440633 * sigmoid(x0 + x1 + x2)
  -0.05013192612137203 * sigmoid(x3)
  + 0.014951627088830254 * sigmoid(x0 + x3)
  -0.13412489006156553 * sigmoid(x1 + x3)
  -0.006596306068601583 * sigmoid(x0 + x1 + x3)
  + 0.04397537379067722 * sigmoid(x2 + x3)
  + 0.1363236587510994 * sigmoid(x0 + x2 + x3)
  + 0.6952506596306068 * sigmoid(x1 + x2 + x3)
  -0.29331574318381703 * sigmoid(x0 + x1 + x2 + x3)
  + 1.0738786279683377 * sigmoid(1.0 + x0)
  -1.073438874230431 * sigmoid(1.0 + x1)
  -0.4256816182937555 * sigmoid(1.0 + x0 + x1)
  + 1.0708003518029903 * sigmoid(1.0 + x2)
  + 0.9656992084432717 * sigmoid(1.0 + x1 + x2)
  -3.1314863676341247 * sigmoid(1.0 + x3)
  -0.8500439753737907 * sigmoid(1.0 + x0 + x3)
  + 1.0281442392260334 * sigmoid(1.0 + x1 + x3)
  + 0.8544415127528584 * sigmoid(1.0 + x0 + x1 + x3)
  -0.21328056288478453 * sigmoid(1.0 + x0 + x1 + x2 + x3);
   return decision;
}
double sigmoid(double x) {
   if (MathAbs(x) < 1.0) {
      return 2.0 * signum(x) - x;
   }
   return signum(x);
}
double getBinaryClassificator2(double v0, double v1, double v2, double v3) {
   double x0 = 2.0 * (v0 + 0.00518320000001116) / 0.00871940000000327 - 1.0;
   double x1 = 2.0 * (v1 + 0.00542880000001134) / 0.01145720000000306 - 1.0;
   double x2 = 2.0 * (v2 + 0.00578500000001125) / 0.00872540000000166 - 1.0;
   double x3 = 2.0 * (v3 + 0.00496500000001143) / 0.00698900000000191 - 1.0;
   double decision = -0.17965023847376788 * x0
  + 1.7416534181240064 * x1
  + 0.5389507154213037 * x0 * x1
  + 0.5023847376788553 * x2
  -0.16653418124006358 * x1 * x2
  -0.06836248012718601 * x3
  -0.8191573926868044 * x1 * x3
  -0.029809220985691574 * sigmoid(x0)
  -0.009141494435612083 * sigmoid(x1)
  + 0.00794912559618442 * sigmoid(x0 + x1)
  + 1.7150238473767885 * sigmoid(x2)
  -1.2686804451510334 * sigmoid(x0 + x2)
  + 0.051271860095389504 * sigmoid(x1 + x2)
  + 0.05405405405405406 * sigmoid(x0 + x1 + x2)
  -1.095389507154213 * sigmoid(x3)
  -0.2444356120826709 * sigmoid(x0 + x3)
  + 0.34737678855325915 * sigmoid(x1 + x3)
  + 0.9264705882352942 * sigmoid(x0 + x1 + x3)
  + 0.16176470588235295 * sigmoid(x2 + x3)
  -0.7682829888712241 * sigmoid(x0 + x2 + x3)
  -0.16335453100158984 * sigmoid(x1 + x2 + x3)
  + 0.7551669316375199 * sigmoid(x0 + x1 + x2 + x3)
  -2.048489666136725 * sigmoid(1.0 + x0)
  -0.31756756756756754 * sigmoid(1.0 + x1)
  -0.08982511923688394 * sigmoid(1.0 + x0 + x1)
  + 1.4666136724960255 * sigmoid(1.0 + x1 + x2);
   return decision;
}
double signum(double x) {
  if (x == 0.0) {
    return 0.0;
  }
  if (x > 0.0) {
    return 1.0;
  }
  return -1.0;
}

A partir du fichier joint, j'identifie les numéros d'entrées en fonction de mes marquages. J'attends les résultats du test OMF.

Dossiers :
Si_Splice_10.txt  102 kb
 

En plus des estimations du modèle.

Les prédicteurs indiquent le nombre de colonnes dans le fichier

258 nombre total de vecteurs. J'ai supprimé la classe 0 et laissé la classe 2 renommée à zéro, car leur nombre était équilibré avec celui de la classe 1, 19.60 est l'erreur quadratique, ou plutôt la différence entre linéaire et quadratique ; elle devrait tendre vers zéro, 79.141 est la capacité de généralisation, quand on arrive à 100 la différence entre les erreurs diminue, 69.767 est la spicification. La parcelle de contrôle totale est de 75 avec une généralité de 70. La réponse est NON CONNU : nous avons obtenu 77 vecteurs de l'échantillon total alors que la parcelle témoin en avait 17.

En fait, j'ai obtenu de moins bons résultats dans la formation mais de bien meilleurs dans la parcelle de contrôle. De plus, il ne s'agissait pas d'un site de test, comme le vôtre, mais d'un site de contrôle, celui que le net n'avait pas vu du tout. Le test est le moment où le réseau s'entraîne sur la section d'entraînement afin de bien fonctionner sur la section de test, c'est-à-dire que le réseau voit potentiellement la section de test pendant l'entraînement. Le test ne le fait pas. Questions ????

 

Veuillez me dire comment trouver un ordre avec un profit maximum (mql4).

Merci beaucoup.

 
a5l3e5x:

Veuillez me dire comment trouver un ordre avec un profit maximum (mql4).

Merci beaucoup.

Mon ami, personne n'utilise MT4, un ordre a un paramètre de profit. Nous devrions essayer par tous les moyens de lire ce paramètre et de choisir le maximum. C'est ça... en un mot...
 
Mihail Marchukajtes:

Ce défi vous intéresse ?

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading

L'apprentissage automatique en trading : théorie, pratique, trading et au-delà

Rorschach, 2020.07.14 19:21

Qui veut s'entraîner ? Entrée en haut du classement, sortie en troisième position. 2 et 4 sont des tests. Quelques précisions, 1 incrément graphique, 3 signaux graphiques pour acheter un système "classique". D'ailleurs, question piège, est-ce que ns est capable d'émuler ligic et avec des indicateurs de mémoire, quelque chose comme un zigzag et un indicateur maximum/minimum ?



 
Rorschach:

Une telle tâche est-elle intéressante ?


Je suppose que oui, mais êtes-vous en train de suggérer que je devrais entrer des chiffres à partir d'une image ?
 
Mihail Marchukajtes:
D'accord, mais vous me demandez de saisir les chiffres à partir d'une image ?

Ensuite, je vais préparer les données, 350 exemples, 100 entrées feront l'affaire ?

 
Rorschach:

Je vais préparer les données alors, 350 exemples, 100 entrées feront l'affaire ?

Oui, c'est cool en général, mais je m'en tiens à l'idée que les entrées devraient comporter trois fois plus d'exemples pour que l'algorithme ait de quoi choisir. Je pense que je vais faire une autre vidéo, ça va prendre trop de temps à écrire. Il y a une théorie de la matrice carrée à partir de laquelle je suis arrivé à cette conclusion... Préparez un échantillon...
 

Vérifiez-le, les gens, pas pour le plaisir de la publicité. Je me suis rendu à l'une de leurs journées portes ouvertes et j'ai pensé qu'il suffisait d'être autodidacte, juste au cas où je m'imaginais tout faux. Je voulais obtenir une confirmation officielle de leurs connaissances, pour ainsi dire. L'autre jour, j'ai lu un article sur Elon Musk et son projet Neurolink, qui sera présenté en août. Et ici comme si la lettre est venue, alors je n'ai pas compris comment télécharger le contenu alors regardez l'image.

En général, le sujet est intéressant, alors peut-on se réunir en catimini et parler de l'essentiel ? Qu'en dites-vous ?

 
Mihail Marchukajtes:
Oui, c'est plutôt cool, mais je pense qu'il devrait y avoir trois fois plus d'exemples pour que l'algorithme ait l'embarras du choix. J'ai l'impression que je devrais enregistrer une autre vidéo, cela prendrait trop de temps de l'écrire. Il y a une théorie de la matrice carrée à partir de laquelle je suis arrivé à cette conclusion... Préparez un échantillon...

Mes résultats sont détaillés ici. Pour la validation je multiplie la série originale par -1

Dossiers :
Files.zip  4 kb