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

 
Mihail Marchukajtes:
Maintenant je vois. En d'autres termes, formons d'abord, disons, un réseau sans enseignant. Ensuite, nous inscrivons les valeurs obtenues dans les poids du classificateur et après cela, le classificateur est encore entraîné avec un professeur. Supposons que nous ayons reçu des poids de réglage fin des neurones, les poids continuent à être optimisés ?????. En d'autres termes, en préapprenant sans professeur, nous définissons les poids initiaux du classificateur qui l'amènent au minimum global. C'est comme ça que ça marche ?

L'apprentissage "profond" a du sens en raison de l'atténuation (sigmoïde)/de la croissance explosive (hypertangente) des dérivées lors de la rétropropagation, lorsque les couches deviennent significativement plus que 4-5, ce problème était contourné par une "béquille" de pré-entraînement couche par couche par des auto-encodeurs ou RBM, qui effectue essentiellement une sélection hiérarchique non linéaire des caractéristiques (comme l'ACP , mais non linéaire et multiple), qui peut ensuite être facilement gérée par des couches de haut niveau, puis par le backprop habituel, qui permet de régler rapidement l'ensemble du système en fonction de l'ensemble des cibles (avec un professeur).

Voir : https://www.youtube.com/watch?v=iowsPfk7uUY

Bien sûr, il y a beaucoup d'"experts" avec des articles et qui ont mangé leurs chiens sur ZZ, qui savent par cœur quel paquet dans R devrait être utilisé dans tous les cas, alors je dirai en l'air, personne ne me croira de toute façon, les réseaux neuronaux profonds, comme le CNN, lorsque vous comprenez leur fonctionnement, vous ne pouvez pas les utiliser pour les prévisions de marché, car une si grande hiérarchie de caractéristiques n'est nécessaire que pour les images, les vidéos et la PNL, car il existe une grande hiérarchie, notre monde est construit de cette façon, les objets sont faits d'objets, etc. même chose avec la PNL parce que le langage est hiérarchique. Il n'y a rien de tel sur le marché, vous négociez une sorte d'échelle de temps, ce qui se passe sur les plus petites est du bruit pour vous. Les investisseurs prennent une décision sur une seule période, ils ne dépendent pas de ce que les scalpers et les HFT, et encore moins les hedgers, les arbitres, etc. ont décidé. Et la hiérarchie dans le réseau profond implique la cohérence, le petit définit le grand, une avalanche se compose de flocons de neige.

11. Data mining. Глубокие нейронные сети
11. Data mining. Глубокие нейронные сети
  • 2015.11.24
  • www.youtube.com
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Методы обработки больших объемов данных" (осень 2015) Лекция №11 - "Глубокие нейронные сети" Лектор ...
 
Gianni:

Ça a l'air cool, mais c'est un peu cher.

1 J'aimerais m'entraîner sur quelque chose de gratuit et voir comment ça fonctionne en temps réel sans lag, et il y a une démo avec un lag géant.

2 Pouvez-vous décrire en quelques mots comment un tel signal est utilisé dans le trading et le MO ? Si ce n'est pas un secret, lorsque des nouvelles importantes sont publiées, avez-vous le temps de négocier, ou quelqu'un commence à frapper le marché une seconde, une demi-seconde plus tôt et mord à l'hameçon ?

1 Paire de sites web.

2 Acheter mieux que prévu, vendre moins bien que prévu.

 
Le:

L'apprentissage "profond" a un sens en raison de l'atténuation (sigmoïde)/de la croissance explosive (hypertangente) des dérivées pendant la rétropropagation, lorsque les couches deviennent significativement plus que 4-5, ce problème était contourné par une "béquille" de pré-entraînement couche par couche par des auto-encodeurs ou RBM, qui effectue essentiellement une sélection hiérarchique non linéaire des caractéristiques (comme l'ACP , mais non linéaire et multiple), qui peut ensuite être facilement gérée par des couches de haut niveau, puis par la méthode habituelle de rétroaction (backprop) qui permet de régler rapidement l'ensemble du système en fonction d'un ensemble de cibles (avec un professeur).

Voir : https://www.youtube.com/watch?v=iowsPfk7uUY

Bien sûr, il y a beaucoup d'"experts" avec des articles et qui ont mangé leurs chiens sur ZZ, qui savent par cœur quel paquet dans R doit être utilisé dans tous les cas, alors je dirai en l'air, personne ne me croira de toute façon, les réseaux neuronaux profonds, comme le CNN, lorsque vous comprenez leur fonctionnement, vous ne pouvez pas les utiliser pour les prévisions de marché, car une si grande hiérarchie de caractéristiques n'est nécessaire que pour les images, les vidéos et la PNL, car il existe une grande hiérarchie, notre monde est construit de cette façon, les objets sont faits d'objets, etc. même chose avec la PNL parce que le langage est hiérarchique. Il n'y a rien de tel sur le marché, vous négociez une sorte d'échelle de temps, ce qui se passe sur les plus petites est du bruit pour vous. Les investisseurs prennent une décision sur une période donnée, ils ne dépendent pas de ce que les scalpers et les HFT, et encore moins les hedgers, les arbitres, etc. ont décidé. Et la hiérarchie dans le réseau profond implique la cohérence, que le petit définit le grand, que les flocons de neige forment l'avalanche.

Merci, je vais certainement regarder la vidéo. Mais je préférais l'approche de Reshetov. Je suis tombé sur son article où il explique en détail comment son prédicteur est mis en place, donc. J'ai hâte de refaire le code de l'article. C'est un modérateur qui s'en occupe. Et bienvenue dans la discussion, car j'ai mon propre point de vue sur la préparation des données et la formation en général......
 
Le:

L'apprentissage "profond" a un sens en raison de l'atténuation (sigmoïde)/de la croissance explosive (hypertangente) des dérivées pendant la rétropropagation, lorsque les couches deviennent significativement plus que 4-5, ce problème était contourné par une "béquille" de pré-entraînement couche par couche par des auto-encodeurs ou RBM, qui effectue essentiellement une sélection hiérarchique non linéaire des caractéristiques (comme l'ACP , mais non linéaire et multiple), qui peut ensuite être facilement gérée par des couches de haut niveau, puis par le backprop habituel, qui permet d'affiner rapidement l'ensemble du système en fonction de l'ensemble des cibles (avec un professeur).

Voir : https://www.youtube.com/watch?v=iowsPfk7uUY

Bien sûr, il y a beaucoup d'"experts" avec des articles et qui ont mangé leurs chiens sur ZZ, qui savent par cœur quel paquet dans R devrait être utilisé dans tous les cas, alors je dirai en l'air, personne ne me croira de toute façon, les réseaux neuronaux profonds, comme le CNN, lorsque vous comprenez leur fonctionnement, vous ne pouvez pas les utiliser pour les prévisions de marché, car une si grande hiérarchie de caractéristiques n'est nécessaire que pour les images, les vidéos et la PNL, car il existe une grande hiérarchie, notre monde est construit de cette façon, les objets sont faits d'objets, etc. même chose avec la PNL parce que le langage est hiérarchique. Il n'y a rien de tel sur le marché, vous négociez une sorte d'échelle de temps, ce qui se passe sur les plus petites est du bruit pour vous. Les investisseurs prennent une décision sur une seule période, ils ne dépendent pas de ce que les scalpers et les HFT, et encore moins les hedgers, les arbitres, etc. ont décidé. Et la hiérarchie dans le réseau profond implique la cohérence, que le petit définit le grand, que les flocons de neige forment une avalanche.

Pour une raison quelconque, la conversation dérape constamment vers une discussion sur les mérites et les démérites d'un modèle ou d'un autre.

Même si mon expérience n'est pas aussi vaste, la contribution des modèles eux-mêmes à la réussite des transactions est très faible.

C'est la définition de la cible et de ses prédicteurs qui la définit.

Sur l'exemple de ZZ, j'ai essayé à plusieurs reprises de montrer que même une variable cible aussi évidente, illustrative et belle que ZZ n'est pas la même et présente des obstacles insurmontables à l'examen.

Si nous parlons de prédicteurs, il est tout à fait évident pour moi, en tant que personne qui a été engagée dans l'économie toute sa vie que :

  • un prédicteur doit être pertinent pour la variable cible - capacité de prédiction pour la variable cible
  • le prédicteur doit être en avance sur la variable cible

Si l'on se concentre uniquement sur la résolution de ces deux fondamentaux pour la prédiction économique et forex, alors le succès ne viendra que de ces deux paramètres. Et la sélection du modèle le mieux ajusté à la cible et à ses prédicteurs ne peut améliorer que marginalement les performances, peut donner lieu à des considérations valables sur la durée de vie du modèle sans ré-entraînement.


Une fois encore, je demande que l'on se concentre sur la variable cible et que l'on justifie les prédicteurs pour cette variable cible particulière.

PS.

Entrer dans les interrelations des paires de devises. J'ai obtenu des résultats surprenants. En particulier :

  • Les paires de devises EURUSD et GBPUSD ne sont pas liées l'une à l'autre. Et ce, malgré la corrélation largement publiée. Construire des modèles VAR sur ces paires est sans espoir.
  • L'AUDUSD n'a rien à voir avec les principales paires de devises.

 
SanSanych Fomenko:

Entrer dans l'interdépendance des paires de devises. J'ai obtenu des résultats surprenants. En particulier :

  • Les paires de devises EURUSD et GBPUSD ne sont pas liées l'une à l'autre. Et ce, malgré la corrélation largement publiée. Construire des modèles VAR sur ces paires est sans espoir.
  • L'AUDUSD n'a rien à voir avec les principales paires de devises.

il serait probablement bon de dire la raison de telles déductions
 
SanSanych Fomenko:

Pour une raison quelconque, la conversation dérive constamment vers une discussion sur les mérites et les démérites de certains modèles.

Même si mon expérience me dit que la contribution à la réussite des transactions est très faible.

C'est la définition de la cible et de ses prédicteurs qui la définit.

Sur l'exemple de ZZ, j'ai essayé à plusieurs reprises de montrer que même une variable cible aussi évidente, illustrative et belle que ZZ n'est pas la même et présente des obstacles insurmontables à un examen plus approfondi.

Si nous parlons de prédicteurs, il est tout à fait évident pour moi, en tant que personne qui a été engagée dans l'économie toute sa vie que :

  • un prédicteur doit être pertinent pour la variable cible - capacité de prédiction pour la variable cible
  • le prédicteur doit être en avance sur la variable cible

Si l'on se concentre uniquement sur la résolution de ces deux fondamentaux pour la prédiction économique et forex, alors le succès ne viendra que de ces deux paramètres. Et la sélection du modèle le mieux ajusté à la cible et à ses prédicteurs ne peut améliorer que marginalement les performances, peut donner lieu à des considérations valables sur la durée de vie du modèle sans ré-entraînement.


Une fois encore, je demande que l'on se concentre sur la variable cible et que l'on justifie les prédicteurs pour cette variable cible particulière.

PS.

Entrer dans les interrelations des paires de devises. J'ai obtenu des résultats surprenants. En particulier :

  • Les paires de devises EURUSD et GBPUSD ne sont pas liées l'une à l'autre. Et ce, malgré la corrélation largement publiée. Construire des modèles VAR sur ces paires est sans espoir.
  • L'AUDUSD n'a rien à voir avec les principales paires de devises.

Je suis d'accord avec vous sur ce point, mais je voudrais apporter une correction. Clarification sur le premier point avant tout. Pas lié à la cible, mais à la raison de celle-ci. Autrement dit, si le prédicteur a changé, la cible a changé, et non l'inverse. Et puis le deuxième point tombe tout simplement. Aucune anticipation n'est nécessaire. Il suffit que l'entrée soit la cause de la sortie. Et encore une fois, tout le monde oublie où tu travailles. L'élément principal de la bourse est le prix. Trouvez les entrées qui sont la cause des changements de prix et n'importe quel TS, je vous assure, absolument n'importe quel TS fonctionnera comme il le devrait. Mais c'est un secret !!!!! Ne le dis à personne.... Vous devriez quand même lire mon article. Ne pensez pas que je ne fais pas de promotion ou quoi que ce soit. Bien sûr, j'ai peur d'être le seul à le lire :-) je plaisante. Ainsi, après la lecture, beaucoup de questions disparaîtront. Ici, en plus de l'IA elle-même (supposons que vous disposiez d'une grille), vous devez organiser correctement la collecte des données, faire attention aux indicateurs, afin qu'il n'y ait pas d'effraction, etc. Je pense que cet article montre une des approches du marché. J'étais tellement attiré par les grilles que le trading finissait par devenir une seconde nature. Je pense qu'il existe maintenant de tels spécialistes, pour qui le commerce n'est qu'une question d'expérimentation......
 
Quant à l'application des réseaux neuronaux profonds dans le trading, elle se justifie, mais le nombre de manipulations à effectuer est assez important, en supposant que le réseau fonctionne sur l'horloge, mais analyse à partir de minutes, de minutes généralisées, puis de cinq minutes généralisées, etc. IMHO
 

Mihail Marchukajtes:
Je suis d'accord avec vous sur ce point, mais je voudrais apporter une correction. Je voudrais tout d'abord clarifier le premier point. Pas pour se rapporter à la cible, mais pour en être la raison. Autrement dit, si le prédicteur a changé, la cible a changé, et non l'inverse. Et puis le deuxième point tombe tout simplement. Aucune anticipation n'est nécessaire. Il suffit que l'entrée soit la cause de la sortie. Et encore une fois, tout le monde oublie où tu travailles. L'élément principal de la bourse est le prix. Trouvez les entrées qui sont la cause des changements de prix et n'importe quel TS, je vous l'assure, absolument n'importe quel TS fonctionnera comme il le devrait.

=================================================================================

C'est tout à fait le bon point. Seulement je reformulerais : la cible doit être générée par le(s) prédicteur(s).

 
mytarmailS:
Néanmoins, vous n'avez pas de réponse à la question de savoir comment l'implémenter en utilisant R, si j'ai bien compris.

La réponse n'est pas si simple. Voici une façon de procéder, par exemple, avec un neurone, mais vous devez comprendre comment un neurone fonctionne, quelles formules il possède, etc.

Supposons qu'il existe un neurone simple, avec quatre entrées, trois perceptrons dans une couche cachée, et une sortie. En termes mathématiques, un tel neurone fonctionnerait comme suit :

#include <math.h>
double sigmoid(double x)
{
     return 1.0 / (1.0 + exp(-x));
}

double NeuralNetwork(double* input, double* bias, double* weight){
    double perc_output[3]; //временный массив для хранения промежуточных результатов каждого перцептрона

    double perc_output[0] = sigmoid(bias[0] + input[0] * weight[0] + input[1] * weight[1] + input[2] * weight[2]  + input[3] * weight[3]);
    double perc_output[1] = sigmoid(bias[1] + input[0] * weight[4] + input[1] * weight[5] + input[2] * weight[6]  + input[3] * weight[7]);
    double perc_output[2] = sigmoid(bias[2] + input[0] * weight[8] + input[1] * weight[9] + input[2] * weight[10] + input[3] * weight[11]);
    double result         = sigmoid(bias[3] + perc_output[0] * weight[12] + perc_output[1] * weight[13] + perc_output[2] * weight[14]);
    return result;
}


Maintenant vous pouvez prendre un tableau avec des exemples d'entraînement, et trouver le résultat pour chaque exemple

double nn_input[4]; //массив со входными значениями

double nn_bias[4]; //массив сдвигов, на текущем этапе тут будут рандомные значения
double nn_weight[15]; //массив весов, на текущем этапе тут будут рандомные значения

//для всех обучающих примеров находим по очереди результат нейронки. При этом массивы nn_bias и nn_weight не должны меняться
double results[trainSampleCount];
// trainSampleCount = число обучающих примеров
for(int i=0; i<trainSampleCount; i++){
  nn_input = trainSamples[i]; //синтаксис реально не такой, нужно из обучающей таблицы взять i-тую строку и запихнуть в этот массив nn_input
  results[i] = NeuralNetwork(nn_input, nn_bias, nn_weight);
}

Ensuite, par exemple, tracer le bénéfice des prédictions dans le tableau des résultats, et l'évaluer.

Le code ci-dessus peut être poussé dans l'optimiseur. L'optimiseur doit trouver des valeurs appropriées pour les pondérations et les décalages dans les tableaux nn_bias et nn_weight :
1) échanger les valeurs de nn_bias et nn_weight selon leurs algorithmes respectifs
2) trouver les résultats pour tous les exemples de formation
3) tracer le graphique du commerce
4) estimer le graphique commercial, utiliser cette estimation comme valeur de fitness pour les étapes d'optimisation suivantes
5) Répétez les étapes 1 à 4 de l'algorithme d'optimisation jusqu'à ce que le graphique des bénéfices devienne acceptable.

C'est tout ce qu'il y a à faire, mais il y a une nuance - les optimiseurs que j'ai essayés ne peuvent pas gérer les poids, ils se contentent de trouver un minimum local lorsque tous les résultats sont égaux à 0,5 pour minimiser l'erreur moyenne et restent bloqués à ce niveau. Vous devez appliquer une certaine astuce ici, je n'ai pas été plus loin que ça.
Plus la structure des neurones est complexe, plus les poids seront nombreux et plus l'algorithme d'optimisation aura du mal à les sélectionner. Sur les neurones de grande taille, ils se bloquent et n'améliorent pratiquement pas le résultat initial.

 
Dr. Trader:

Vous devez appliquer une sorte d'astuce ici.

L'astuce est en fait connue, seulement je n'ai pas vu de logiciel pour la mettre en œuvre. Les produits dérivés.

La neuronique, le tracé de la balance, l'évaluation des graphiques sont tous des formules. Vous pouvez ainsi trouver les dérivés de nn_bias et nn_weight par rapport à l'estimation finale.
Dans une vidéo de formation sur la MO, le conférencier parlait des nouveaux langages de programmation du futur. Par exemple, quelqu'un, quelque part, essaie de créer un langage permettant de calculer automatiquement les dérivées de n'importe quelle variable dans n'importe quelle formule complexe (pas en recalculant avec un petit décalage de valeur, mais de manière analytique). C'est le genre de chose qui pourrait aider.

C'est-à-dire que l'on prend généralement un exemple d'entraînement, et pour chaque poids, on détermine analytiquement dans quelle mesure il améliore le résultat, et le poids est en conséquence légèrement augmenté ou diminué. Nous devons faire de même, mais pas un exemple à la fois, mais pour tous, et la dérivée n'est pas recherchée pour les résultats de l'entraînement un par un, mais immédiatement pour l'évaluation finale du graphique.


Et un petit inconvénient - tout cela sous cette forme n'aidera pas dans le commerce. On va juste ajuster les poids pour le tableau idéal, on aura 100% de surentraînement et d'effondrement sur les nouvelles données. Pour un bénéfice réel, il sera nécessaire de jouer avec la structure de la neuronique. Au final, ce sera probablement quelque chose comme un réseau convolutif.