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

 
Maxim Dmitrievsky:

Oui, alors détectez-les à l'avenir et choisissez un modèle qui fonctionne bien sur ce groupe particulier.

Vous pouvez également le classer comme une fonctionnalité, NS/forest se sous-modèlera.
 
mcpd.mcpdreport C# (CSharp) Code Examples - HotExamples
  • csharp.hotexamples.com
C# (CSharp) mcpd.mcpdreport - 6 examples found. These are the top rated real world C# (CSharp) examples of mcpd.mcpdreport extracted from open source projects. You can rate examples to help us improve the quality of examples.
 

article intéressant sur la formation NS sur Habra ( juste une lecture )Restauration de photos avec des réseaux neuronaux

le plus précieux, comme toujours, sont les commentaires des utilisateurs - tout au long de l'article, l'auteur décrit une avancée majeure dans son travail, comme d'habitude avec une comparaison de logiciels tiers, mais les utilisateurs ont immédiatement souligné le défaut - la prédominance du vert

conclusion - la préparation des données d'entrée est plus importante que la technologie de formation NS elle-même

Реставрируем фотографии с помощью нейросетей
Реставрируем фотографии с помощью нейросетей
  • habr.com
Всем привет, я работаю программистом-исследователем в команде компьютерного зрения Mail.ru Group. Ко Дню Победы в этом году мы решили сделать проект по реставрации военных фотографий. Что такое реставрация фотографий? Она состоит из трех этапов: находим все дефекты изображения: надломы, потертости, дырки; закрашиваем найденные дефекты...
 
Igor Makanu:

la conclusion est que la préparation des données d'entrée est plus importante que la technologie de formation NS elle-même.

Le sorcier l'a dit il y a un milliard de pages.

Messieurs, quand apprendrez-vous à vous écouter les uns les autres ? C'est quoi cette étroitesse d'esprit et cette stupidité de plouc ? C'est vraiment ennuyeux et exaspérant.

 
Igor Makanu:

article intéressant sur la formation NS sur Habra ( juste une lecture )Restauration de photos avec des réseaux neuronaux

le plus précieux, comme toujours, sont les commentaires des utilisateurs - tout au long de l'article, l'auteur décrit une avancée majeure dans son travail, comme d'habitude avec une comparaison de logiciels tiers, mais les utilisateurs ont immédiatement souligné le défaut - la prédominance du vert

la conclusion - la préparation des données d'entrée est plus importante que la technologie de la formation NS

Le fait est que l'image ne bouge pas et ne change pas, de même que les empreintes digitales. Et dans la reconnaissance des formes, l'apprentissage automatique est indispensable.

Mais lorsque le MO est appliqué sur des données historiques en forex, il ne fait que créer l'illusion qu'il a trouvé la meilleure option.

Alors qu'en fait, il a simplement appris à contourner toutes les zones dangereuses de l'histoire, ce qui lui a permis de réaliser un grand graphique de gains.

Mais la fixation des prix est un processus dynamique qui évolue et avance en permanence, et personne ne peut deviner où le prix va aller : ainsi, un robot basé sur l'apprentissage automatique fera toujours une erreur en trading réel dans des situations inhabituelles.

 
Petros Shatakhtsyan:

Mais lorsque le MO est appliqué sur des données historiques en forex, il ne fait que créer l'illusion qu'il a trouvé la meilleure option.

En réalité, il a simplement appris au fil de l'histoire à contourner toutes les zones dangereuses, ce qui lui a permis de réaliser un grand nombre de gains.

lire tout celahttps://habr.com/ru/post/443240/

Mais ce n'est pas si mal, c'est-à-dire que je dois dire pour la centième fois mon opinion, MO n'est ni meilleur ni pire que GA strategy tester,

mais c'est toujours un sujet très intéressant, c'est fascinant ))))

Понимание Q-learning, проблема «Прогулка по скале»
Понимание Q-learning, проблема «Прогулка по скале»
  • habr.com
Привет, Хабр! Предлагаю вашему вниманию перевод статьи «Understanding Q-Learning, the Cliff Walking problem» автора Lucas Vazquez. В последнем посте мы представили проблему «Прогулка по скале» и остановились на страшном алгоритме, который не имел смысла. На этот раз мы раскроем секреты этого серого ящика и увидим, что это совсем не так...
 

Eh bien, il s'avère être assez facile à appliquer. A partir de l'exemple 1.

Nous fixons le nombre d'états, et les séquences de transitions (disons, historiques). C'est-à-dire les probabilités d'être dans un état donné. Et ensuite, il compte la probabilité totale pour tous les états.

Ou sur MAshki pour faire un exemple simple pour le début, mais pour l'instant je ne sais toujours pas comment faire, peut-être que@mytarmailS vous expliquera.

//+------------------------------------------------------------------+
//|                                                          HMM.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#include <Math\Alglib\dataanalysis.mqh>
CMCPDState states;
CMCPDReport report;
CMatrixDouble track0, track1, results;

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   track0.Resize(5, 2);
   track1.Resize(4,2);
   
   track0[0].Set(0, 1.0);
   track0[0].Set(1, 0.0);
   
   track0[1].Set(0, 0.95);
   track0[1].Set(1, 0.05);
   
   track0[2].Set(0, 0.92750);
   track0[2].Set(1, 0.07250);
   
   track0[3].Set(0, 0.91738);
   track0[3].Set(1, 0.08263);
   
   track0[4].Set(0, 0.91282);
   track0[4].Set(1, 0.08718);
   
   track1[0].Set(0, 0.8);
   track1[0].Set(1, 0.2);
   
   track1[1].Set(0, 0.86);
   track1[1].Set(1, 0.14);
   
   track1[2].Set(0, 0.887);
   track1[2].Set(1, 0.113);
   
   track1[3].Set(0, 0.89915);
   track1[3].Set(1, 0.10085);
   
   CMarkovCPD::MCPDCreate(2, states);
   CMarkovCPD::MCPDAddTrack(states, track0, 5);
   CMarkovCPD::MCPDAddTrack(states, track1, 4);
   CMarkovCPD::MCPDSolve(states);
   CMarkovCPD::MCPDResults(states, results, report);
   
   for(int i=0;i<results.Size();i++)
     {
      Print(results[i][0]);
      Print(results[i][1]);
     }
  }
//+------------------------------------------------------------------+
 

Une telle stratégie avec les MAs (très simple) est décrite ici

https://www.quantstart.com/articles/market-regime-detection-using-hidden-markov-models-in-qstrader

Market Regime Detection using Hidden Markov Models in QSTrader | QuantStart
Market Regime Detection using Hidden Markov Models in QSTrader | QuantStart
  • www.quantstart.com
In the previous article on Hidden Markov Models it was shown how their application to index returns data could be used as a mechanism for discovering latent "market regimes". The returns of the S&P500 were analysed using the R statistical programming environment. It was seen that periods of differing volatility were detected, using both...
 
Maxim Dmitrievsky:

Eh bien, il s'avère être assez facile à appliquer. A partir de l'exemple 1.

Nous fixons le nombre d'états, et les séquences de transitions (disons, historiques). C'est-à-dire les probabilités d'être dans un état donné. Et ensuite, il compte la probabilité totale pour tous les états.

Ou sur MAshki pour faire un exemple simple pour le début, mais pour l'instant je ne sais toujours pas comment faire, peut-être que@mytarmailS vous expliquera.

//+------------------------------------------------------------------+
//|                                                          HMM.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#include <Math\Alglib\dataanalysis.mqh>
CMCPDState states;
CMCPDReport report;
CMatrixDouble track0, track1, results;

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   track0.Resize(5, 2);
   track1.Resize(4,2);
   
   track0[0].Set(0, 1.0);
   track0[0].Set(1, 0.0);
   
   track0[1].Set(0, 0.95);
   track0[1].Set(1, 0.05);
   
   track0[2].Set(0, 0.92750);
   track0[2].Set(1, 0.07250);
   
   track0[3].Set(0, 0.91738);
   track0[3].Set(1, 0.08263);
   
   track0[4].Set(0, 0.91282);
   track0[4].Set(1, 0.08718);
   
   track1[0].Set(0, 0.8);
   track1[0].Set(1, 0.2);
   
   track1[1].Set(0, 0.86);
   track1[1].Set(1, 0.14);
   
   track1[2].Set(0, 0.887);
   track1[2].Set(1, 0.113);
   
   track1[3].Set(0, 0.89915);
   track1[3].Set(1, 0.10085);
   
   CMarkovCPD::MCPDCreate(2, states);
   CMarkovCPD::MCPDAddTrack(states, track0, 5);
   CMarkovCPD::MCPDAddTrack(states, track1, 4);
   CMarkovCPD::MCPDSolve(states);
   CMarkovCPD::MCPDResults(states, results, report);
   
   for(int i=0;i<results.Size();i++)
     {
      Print(results[i][0]);
      Print(results[i][1]);
     }
  }
//+------------------------------------------------------------------+

Dans alglib, d'après ce que j'ai compris (probablement faux), vous devez compiler vous-même les pistes en fonction du nombre de clusters requis. Dans ces exemples en Python, vous demandez le bon nombre de clusters et il redistribuera lui-même les données.

Bien que si la classification, avec 2 classes, nous pourrions probablement enchaîner comme suit : en commençant par 0 jusqu'à ce qu'il devienne 1 ; et en commençant par 1 jusqu'à ce qu'il devienne 0. Puisque nous n'avons pas de 0,95, 0,8, etc. intermédiaires.

 
elibrarius:

Dans alglib, tel que je le comprends (probablement faux), vous devez compiler vous-même les pistes par le nombre requis de clusters. Et dans ces exemples Python, vous demandez le bon nombre de clusters et il redistribue les données lui-même.

Bien que si la classification, avec 2 classes, vous pourriez probablement enchaîner comme ceci : en commençant par 0 jusqu'à ce que cela devienne 1 ; et en commençant par 1 jusqu'à ce que cela devienne 0. Puisque nous n'avons pas de 0,95, 0,8, etc. intermédiaires.

Je ne comprends pas du tout comment cela fonctionne. Pourquoi ne pas simplement utiliser la classification via NS ?

Je ne comprends pas comment il sort les résultats en python, y compris les nouvelles données. Et dans alglib comment obtenir l'état prédit sur les nouvelles données, et pour chaque dimension séparément. Trop de Buckeyes à la fois.

et il semble y avoir un problème avec l'alglib, un modèle différent