Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 1492

 
Maxim Dmitrievsky:

Sí, entonces detéctelos en el futuro y elija un modelo que funcione bien en este grupo en particular

También puedes archivarlo como una característica, NS/forest se submodela a sí mismo
 
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.
 

interesante artículo sobre el entrenamiento de NS en Habra ( sólo una lectura )Restauración de fotos con redes neuronales

lo más valioso, como siempre, son los comentarios de los usuarios - a lo largo del artículo el autor describe un gran avance en su trabajo, como es habitual con una comparación de software de terceros, pero los usuarios inmediatamente señalaron el defecto - el predominio del verde

conclusión: la preparación de los datos de entrada es más importante que la propia tecnología de formación NS

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

la conclusión es que la preparación de los datos de entrada es más importante que la propia tecnología de formación NS

Sorcerer dijo esto hace mil millones de páginas.

Señores, ¿cuándo aprenderán a escucharse unos a otros? ¿Qué es esta estrechez de miras y esta estupidez de los paletos? Es realmente molesto y exasperante.

 
Igor Makanu:

interesante artículo sobre el entrenamiento de NS en Habra ( sólo una lectura )Restauración de fotos con redes neuronales

lo más valioso, como siempre, son los comentarios de los usuarios - a lo largo del artículo el autor describe un gran avance en su trabajo, como es habitual con una comparación de software de terceros, pero los usuarios inmediatamente señalaron el defecto - el predominio del verde

la conclusión - la preparación de los datos de entrada es más importante que la tecnología de la formación NS

La cuestión es que la imagen no se mueve y no cambia, al igual que las huellas dactilares. Y en el reconocimiento de patrones el aprendizaje automático es indispensable.

Pero cuando el MO se aplica sobre datos históricos en forex, sólo da la ilusión de que ha encontrado la mejor opción.

Cuando en realidad simplemente ha aprendido a eludir todas las zonas peligrosas de la historia, lo que se traduce en un gran gráfico de ganancias.

Pero la fijación de precios es un proceso dinámico que siempre está cambiando y avanzando, y nadie puede adivinar hacia dónde va a ir el precio: por lo tanto, un robot basado en el aprendizaje automático siempre cometerá un error en el comercio real en situaciones inusuales.

 
Petros Shatakhtsyan:

Pero cuando el modus operandi se aplica sobre datos históricos en el mercado de divisas, sólo crea la ilusión de que ha encontrado la mejor opción.

Y en realidad, simplemente ha aprendido en la historia a evitar todas las zonas peligrosas, lo que se traduce en un gran gráfico de ganancias.

leer todo estohttps://habr.com/ru/post/443240/

Pero no es tan malo, es decir, tengo que decir por enésima vez mi opinión, MO no es mejor ni peor que GA strategy tester,

pero sigue siendo un tema muy interesante, es fascinante ))))

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

Pues resulta que es bastante fácil de aplicar. Del ejemplo 1.

Establecemos el número de estados, y las secuencias de transiciones (digamos, históricas). Es decir, las probabilidades de estar en un estado determinado. Y luego cuenta la probabilidad total para todos los estados.

O en MAshki para hacer un ejemplo sencillo para el comienzo, pero hasta ahora todavía no sé cómo hacerlo, tal vez@mytarmailS lo explique.

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

Pues resulta que es bastante fácil de aplicar. Del primer ejemplo.

Establecemos el número de estados, y las secuencias de transiciones (digamos, históricas). Es decir, las probabilidades de estar en un estado determinado. Y luego cuenta la probabilidad total para todos los estados.

O en MAshki para hacer un ejemplo sencillo para el comienzo, pero hasta ahora todavía no sé cómo hacerlo, tal vez@mytarmailS lo explique.

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

En alglib, según tengo entendido (probablemente equivocado), tienes que compilar las pistas tú mismo por el número requerido de clusters. En esos ejemplos en Python, hay que pedir el número correcto de clusters y él mismo redistribuirá los datos.

Aunque si la clasificación, con 2 clases, probablemente podríamos encadenar de la siguiente manera: empezando por el 0 hasta que se convierta en el 1; y empezando por el 1 hasta que se convierta en el 0. Como no tenemos intermedios 0,95, 0,8, etc.

 
elibrarius:

En alglib, según tengo entendido (probablemente equivocado), tienes que compilar las pistas tú mismo por el número de clusters requerido. Y en esos ejemplos de Python, pides el número correcto de clusters y él mismo redistribuye los datos.

Aunque si la clasificación, con 2 clases, probablemente se podría encadenar así: empezando por el 0 hasta que se convierta en el 1; y empezando por el 1 hasta que se convierta en el 0. Como no tenemos intermedios 0,95, 0,8, etc.

No entiendo en absoluto cómo funciona. ¿Por qué no utiliza la clasificación a través de NS?

No entiendo cómo se emiten los resultados en python, incluyendo los nuevos datos. Y en alglib cómo obtener el estado predicho en los nuevos datos, y para cada dimensión por separado. Demasiados buckeyes a la vez.

y parece que hay algo mal en el alglib, un modelo diferente
Razón de la queja: