Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 1492

 
Maxim Dmitrievsky:

Ja, dann erkennen Sie sie in der Zukunft und wählen ein Modell, das in diesem speziellen Cluster gut funktioniert

Sie können es auch einfach als Feature ablegen, NS/forest wird sich selbst untermodellieren
 
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.
 

interessanter Artikel über NS-Training auf Habra (nur zum Lesen)Wiederherstellung von Fotos mit neuronalen Netzen

das wertvollste, wie immer, sind die Kommentare der Nutzer - in dem Artikel beschreibt der Autor einen großen Durchbruch in seiner Arbeit, wie üblich mit einem Vergleich von Software von Drittanbietern, aber die Nutzer sofort darauf hingewiesen, den Fehler - die Dominanz der grünen

Schlussfolgerung: Die Vorbereitung der Eingangsdaten ist wichtiger als die NS-Ausbildungstechnologie selbst.

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

die Schlussfolgerung ist, dass die Aufbereitung der Eingabedaten wichtiger ist als die NS-Ausbildungstechnologie selbst

Sorcerer hat das schon vor einer Milliarde Seiten gesagt.

Meine Herren, wann werden Sie lernen, einander zuzuhören? Was ist das für eine hinterwäldlerische Engstirnigkeit und Dummheit? Das ist wirklich ärgerlich und ärgerlich.

 
Igor Makanu:

interessanter Artikel über NS-Training auf Habra (nur zum Lesen)Wiederherstellung von Fotos mit neuronalen Netzen

das wertvollste, wie immer, sind die Kommentare der Nutzer - in dem Artikel beschreibt der Autor einen großen Durchbruch in seiner Arbeit, wie üblich mit einem Vergleich von Software von Drittanbietern, aber die Nutzer sofort darauf hingewiesen, den Fehler - die Dominanz der grünen

die Schlussfolgerung - die Vorbereitung der Eingangsdaten ist wichtiger als die Technologie der Ausbildung NS

Der Punkt ist, dass sich das Bild nicht bewegt und sich nicht verändert, ebenso wenig wie die Fingerabdrücke. Und bei der Mustererkennung ist maschinelles Lernen unverzichtbar.

Aber wenn MO auf historische Daten im Devisenhandel angewendet wird, vermittelt es nur die Illusion, dass es die beste Option gefunden hat.

In Wirklichkeit hat es einfach gelernt, alle gefährlichen Bereiche der Geschichte zu umgehen, was zu einer großen Grafik der Gewinne führt.

Aber die Preisbildung ist ein dynamischer Prozess, der sich ständig verändert und weiterentwickelt, und niemand kann erahnen, wohin sich der Preis entwickeln wird: Daher wird ein auf maschinellem Lernen basierender Roboter im realen Handel in ungewöhnlichen Situationen immer einen Fehler machen.

 
Petros Shatakhtsyan:

Aber wenn MO auf historische Daten im Devisenhandel angewandt wird, erzeugt es nur die Illusion, dass es die beste Option gefunden hat.

Und in Wirklichkeit hat er einfach aus der Geschichte gelernt, alle gefährlichen Bereiche zu umgehen, was zu einer großen Grafik von Gewinnen führt.

Lesen Sie all dieshttps://habr.com/ru/post/443240/

Aber es ist nicht so schlimm, ich werde zum hundertsten Mal versuchen, meine Meinung kundzutun: MO ist nicht besser und nicht schlechter als GA strategy tester,

aber es ist trotzdem ein sehr interessantes Thema, es ist faszinierend ))))

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

Nun, es stellt sich heraus, dass die Anwendung recht einfach ist. Aus Beispiel 1.

Wir legen die Anzahl der Zustände und die Abfolge der Übergänge fest (z. B. historisch). D.h. Wahrscheinlichkeiten, sich in einem bestimmten Zustand zu befinden. Und dann wird die Gesamtwahrscheinlichkeit für alle Staaten gezählt.

Oder auf MAshki, um ein einfaches Beispiel für den Anfang zu machen, aber bis jetzt weiß ich immer noch nicht, wie man es macht, vielleicht kann@mytarmailS es erklären.

//+------------------------------------------------------------------+
//|                                                          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]);
     }
  }
//+------------------------------------------------------------------+
 

Eine solche Strategie mit MAs (sehr einfach) wird hier beschrieben

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:

Nun, es stellt sich heraus, dass die Anwendung recht einfach ist. Aus Beispiel 1.

Wir legen die Anzahl der Zustände und die Abfolge der Übergänge fest (z. B. historisch). D.h. Wahrscheinlichkeiten, sich in einem bestimmten Zustand zu befinden. Und dann wird die Gesamtwahrscheinlichkeit für alle Staaten gezählt.

Oder auf MAshki, um ein einfaches Beispiel für den Anfang zu machen, aber bis jetzt weiß ich immer noch nicht, wie man es macht, vielleicht kann@mytarmailS es erklären.

//+------------------------------------------------------------------+
//|                                                          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]);
     }
  }
//+------------------------------------------------------------------+

In alglib müssen Sie, so wie ich es verstanden habe (wahrscheinlich falsch), die Spuren selbst mit der erforderlichen Anzahl von Clustern kompilieren. In diesen Beispielen in Python fragen Sie nach der richtigen Anzahl von Clustern, und das Programm verteilt die Daten selbst neu.

Bei einer Klassifizierung mit 2 Klassen könnte man wahrscheinlich wie folgt vorgehen: beginnend mit 0, bis es 1 wird; und beginnend mit 1, bis es 0 wird. Da es keine Zwischenwerte 0,95, 0,8 usw. gibt.

 
elibrarius:

In alglib müssen Sie, so wie ich es verstanden habe (wahrscheinlich falsch), die Tracks selbst nach der erforderlichen Anzahl von Clustern kompilieren. Und in diesen Python-Beispielen fragt man nach der richtigen Anzahl von Clustern und die Daten werden selbst neu verteilt.

Obwohl, wenn die Klassifizierung, mit 2 Klassen, könnten Sie wahrscheinlich Kette wie folgt: beginnend mit 0, bis es 1; und beginnend mit 1, bis es 0. Da wir keine Zwischen 0,95, 0,8, etc.

Ich verstehe überhaupt nicht, wie das funktioniert. Warum nutzen Sie nicht einfach die Klassifizierung über NS?

Ich verstehe nicht, wie die Ergebnisse in Python ausgegeben werden, einschließlich neuer Daten. Und in alglib, wie man den vorhergesagten Zustand bei neuen Daten und für jede Dimension separat erhält. Zu viele Buckeyes auf einmal.

und es scheint etwas mit der Alglib nicht in Ordnung zu sein, ein anderes Modell