L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 2952

 
Sergey Golubev #:

Non è necessario pubblicare qui i feed di Telegram.

quindi bannateli già, è ora
avete un'attività qui e siete infastiditi dal fatto che la gente scriva cose sbagliate invece di spendere i loro sforzi per sviluppare MO in ambiente MQL5.
 
Evgeny Dyuka #:
Quindi banditeli già, è ora
Hai un'attività qui e sei infastidito dal fatto che la gente scriva cose sbagliate invece di dedicare i propri sforzi allo sviluppo di MO in ambiente MQL5.
Tu - perché?
Non stavo discutendo con te. Non prendertela con te stesso.

Cancellerò questo post (e il mio post sopra) più tardi.
 
Evgeny Dyuka #:

Se posso, una domanda simile.
(non riguarda i vostri affari, ma in particolare l'argomento del Ministero della Difesa).

Specificamente per MO è fatto:

  • Piattaforma di trading Metatrader 5
  • linguaggio MQL5
  • matematica matriciale in MQL5
  • integrazione di Python nel terminale, inclusa la libreria di comunicazione
  • Integrazione del modello ONNX
  • OpenCL/DirectX per l'utilizzo delle GPU
  • rete cloud, incluso il tester
  • Ecosistema www.mql5.com in 11 lingue

Tutto questo è stato realizzato per il pubblico ed è utilizzato massicciamente in tutto il mondo.

Volete paragonarlo a un paio di script copiati (come accade spesso agli esperti di machine learning)?

Siate razionali e non scagliatevi contro chi fa il lavoro e lo mette a disposizione del pubblico.

 

Vorrei aggiungere i miei cinque copechi e separare le mosche dalle cotolette che, per quanto qualitative, non risolvono i problemi delle mosche.

Su questo thread, una certa parte dei partecipanti ha ben chiaro che il problema principale dei mercati finanziari è la loro non stazionarietà, e il problema della non stazionarietà non ha al momento una soluzione definitiva. Tutti questi discorsi sulla durata dei test, sul tempo di successo del trading - sono vuoti e sono stati ripetutamente smentiti dalla pratica, rovinando i premi Nobel che non hanno riconosciuto il problema della non stazionarietà. L'esistenza del problema della non stazionarietà è perfettamente confermata dal mercato dei segnali su questo sito: tutti i segnali sono morti, solo alcuni prima e altri molto dopo.

Possiamo distinguere due approcci per risolvere il problema della non stazionarietà dei mercati finanziari:

1. Modellazione della non stazionarietà, che si cerca di fare nell'ambito dei modelli GARCH, di cui esistono già più di un centinaio.

2. Cercare di trovare modelli nel flusso di input non stazionario, nella speranza che questi modelli si ripetano in futuro. Questo tentativo viene effettuato nell'ambito del cosiddetto "machine learning". Ad esempio, il modello RandomForest trova un minimo di 50 pattern, con 150 pattern che esauriscono qualsiasi periodo di tempo. Ma il passo successivo può cambiare l'insieme dei pattern e sono necessari sforzi particolari per preparare i dati di input in modo che questi pattern, se cambiano, non cambino molto.

Sfortunatamente, il thread è sceso alla discussione dei modelli stessi, anche se, secondo la mia esperienza, non c'è alcun problema nell'utilizzo dei modelli (la shell di Caret include fino a 200 modelli per ogni gusto), ma c'è un problema di preparazione dei dati di input per questi modelli. Non dimentichiamo lo slogan principale della statistica: "Garbage in - rubbish out".

 
СанСаныч Фоменко #:

Per voi personalmente, vi allego nuovamente un testo completo sulle formule in un file PDF. Questo include "dipendenze e fonti".

E per quanto riguarda le sfumature dei calcoli, non lo faccio, perché so per certo che le formule non hanno nulla a che fare con la programmazione, è un problema indipendente, che viene risolto da altre persone con altra formazione e in altri ambienti scientifici.

Quindi leggete il PDF.

Grazie, darò un'occhiata.

Per ora ho trovato una risposta diretta alla mia domanda qui - https://blog.paperspace.com/gradient-boosting-for-classification/

Gradient Boosting for Classification | Paperspace Blog
Gradient Boosting for Classification | Paperspace Blog
  • blog.paperspace.com
Machine learning algorithms require more than just fitting models and making predictions to improve accuracy. Most winning models in the industry or in competitions have been using Ensemble Techniques or Feature Engineering to perform better. Ensemble techniques in particular have gained popularity because of their ease of use compared to...
 
Il riferimento alla struttura dati per ONNX non sembra essere vero. MT versione 3602.
Документация по MQL5: ONNX модели / Структуры данных
Документация по MQL5: ONNX модели / Структуры данных
  • www.mql5.com
Структуры данных - ONNX модели - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
E nella guida non si parla di chiavi per OnnxRun().
Документация по MQL5: ONNX модели / OnnxRun
Документация по MQL5: ONNX модели / OnnxRun
  • www.mql5.com
OnnxRun - ONNX модели - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Nella guida di ONNX non ci sono informazioni sulle funzioni OnnxSetInputShape() e OnnxSetOutputShape(). Non è molto chiaro cosa dovrebbero fare.
 
Aleksey Nikolayev #:
Nella guida di ONNX non ci sono informazioni sulle funzioni OnnxSetInputShape() e OnnxSetOutputShape(). Non è molto chiaro cosa dovrebbero fare.


Questi metodi impostano la dimensionalità dei dati di ingresso e di uscita del modello. Oggi li aggiungeremo alla guida

//+------------------------------------------------------------------+
//|                                        ONNX.Price.Prediction.mq5 |
//|                                  Copyright 2023, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2023, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"

const long  ExtOutputShape[] = {1,1};
const long  ExtInputShape [] = {1,10,4};
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
int OnStart(void)
  {
   matrix rates;
//--- получаем 10 баров
   if(!rates.CopyRates("EURUSD",PERIOD_H1,COPY_RATES_OHLC,2,10))
      return(-1);
//--- на вход модели должен подаваться набор вертикальных векторов OHLC
   matrix x_norm=rates.Transpose();
   vector m=x_norm.Mean(0);               // нормируем цены
   vector s=x_norm.Std(0);
   matrix mm(10,4);
   matrix ms(10,4);

   for(int i=0; i<10; i++)
     {
      mm.Row(m,i);
      ms.Row(s,i);
     }

   x_norm-=mm;
   x_norm/=ms;
//--- создаём модель
   long handle=OnnxCreateFromBuffer(model,ONNX_DEBUG_LOGS);

   if(!OnnxSetInputShape(handle,0,ExtInputShape))
     {
      Print("failed, OnnxSetInputShape error ",GetLastError());
      OnnxRelease(handle);
      return(-1);
     }

   if(!OnnxSetOutputShape(handle,0,ExtOutputShape))
     {
      Print("failed, OnnxSetOutputShape error ",GetLastError());
      OnnxRelease(handle);
      return(-1);
     }
//--- запускаем модель
   matrixf x_normf;
   vectorf y_norm(1);

   x_normf.Assign(x_norm);
   if(!OnnxRun(handle,ONNX_DEBUG_LOGS | ONNX_NO_CONVERSION,x_normf,y_norm))
     {
      Print("failed, OnnxRun error ",GetLastError());
      OnnxRelease(handle);
      return(-1);
     }

   Print(y_norm);
//--- обратно разнормируем цену из выходного значения
   double y_pred=y_norm[0]*s[3]+m[3];

   Print("predicted ",y_pred);
//--- завершили работу
   OnnxRelease(handle);
   return(0);
  }
//+------------------------------------------------------------------+
 
mytarmailS #:
Cosa intendi dire?
Sul mio computer sono stato bannato per 10 anni, ma dal mio telefono sono fuori dal divieto)))

Probabilmente hai un "fake IP ban":

Forum sul trading, sui sistemi di trading automatico e sulla verifica delle strategie di trading

Domanda all'amministrazione del sito mql5.com

Sergey Golubev, 2022.12.16 17:22

Se sei stato bannato e puoi scrivere qui, si tratta di un "falso ban dell'IP".
Probabilmente hai un IP dinamico, e per sbaglio è "caduto" sull'IP bannato di qualcuno.
Quando "becco" un tale ban, semplicemente spengo il mio computer, spengo il router, poi accendo il router e riaccendo il computer.
Come risultato, il mio IP cambia (e ho anche un IP dinamico), e la scritta circa 10 anni scompare.

...