Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 2951

 
Sergey Golubev #:

Не надо тут телеграм каналы публиковать.

так забаньте уже, давно пора
у вас тут бизнес и вас раздражает, что народ пишет не то и так, вместо того, что бы тратить силы на развитие МО в среде MQL5
 
Evgeny Dyuka #:
так забаньте уже, давно пора
у вас тут бизнес и вас раздражает, что народ пишет не то и так, вместо того, что бы тратить силы на развитие МО в среде MQL5
Вас - за что?
Там не с вами спор был. Не переводите на себя.

Этот свой пост (и свой пост выше) - позже удалю.
 
Evgeny Dyuka #:

Если позволите, встречный аналогичный вопрос.
(это не про Ваш бизнес, а конкретно про тему МО)

Конкретно для МО сделано:

  • торговая платформа Метатрейдер 5
  • язык MQL5
  • матричная математика в MQL5
  • интеграция Питона в терминал, включая библиотеку связи
  • интеграция ONNX моделей
  • OpenCL/DirectX для использования GPU
  • клаудная сеть, включая тестер
  • экосистема www.mql5.com на 11 языках

Это сделано для публики и используется массово по всему миру. 

Хотите это сравнить с парой скопипасщенных (как это обычно у адептов машинного обучения) скриптов?

Будьте рациональны и не кидайтесь на тех, кто делает работу и выкладывает ее на публику.

 

Хочу добавить свои пять копеек и отделить мух от котлет, которые, каковы бы качественными они не были, не решают проблем мух.

На этой ветке у определенной части участников имеется стойкое понимание, что основной проблемой финансовых рынков является их НЕстационарность, причем проблема НЕстационарности на данный момент НЕ имеет окончательного решения. Всякие разговоры о длительности тестирования, времени успешности торговли - все это пустое, многократно опровергалось практикой, разоряя Нобелевских лауреатов, не признававших проблему НЕстационарности. Существование проблемы нестационарности прекрасно подтверждает рынок сигналов на этом сайте: все сигналы умерли, просто одни раньше, а другие намного позже. 

Можно выделить два подхода решения проблемы  НЕстационарности финансовых рынков:

1. Моделирование Нестационарности, что пытаются сделать в рамках моделей  GARCH, коих уже более сотни.

2. Попыток найти паттерны в нестационарном входном потоке в надежде, что эти паттерны будут повторяться в будущем. Это пытаются сделать в рамках так называемого "машинного обучения". К примеру, модель RandomForest находит минимум 50 паттернов, 150 паттернами исчерпывается любой временной период. Но следующий шаг может поменять набор паттернов и нужны специальные усилия в подготовке входных данных, чтобы эти паттерны если и менялись, то не очень сильно.

К сожалению, ветка скатилась к обсуждению самих моделей, хотя, по моему опыта, нет проблемы применения моделей от слова совсем (оболочка Caret включает до 200 моделей на любой вкус) , а есть проблема подготовки входных данных для этих моделей. Не будем забывать основной лозунг статистики: "Мусор на входе - мусор на выходе".

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

Лично для Вас повторно цепляю исчерпывающий текст по формулам  в PDF файле. Это включая "зависимости и исходники". 

А по поводу нюансов вычислений, то я этим не занимаюсь, так как точно знаю, что формулы НЕ имеют никакого отношения к программированию, это самостоятельная проблема, которую решают других люди с другой подготовкой и в других, научных кругах.

Так что почитайте PDF.

Спасибо, посмотрю.

Пока нашел прямой ответ на свой вопрос здесь - 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...
 
Справка по структурам данных для ONNX вроде не соответствует действительности. Версия МТ 3602.
Документация по MQL5: ONNX модели / Структуры данных
Документация по MQL5: ONNX модели / Структуры данных
  • www.mql5.com
Структуры данных - ONNX модели - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
И про ключи для OnnxRun() в справке ничего нет.
Документация по MQL5: ONNX модели / OnnxRun
Документация по MQL5: ONNX модели / OnnxRun
  • www.mql5.com
OnnxRun - ONNX модели - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
В справке по ONNX нет про функции OnnxSetInputShape() и OnnxSetOutputShape(). Не очень понятно что они должны делать.
 
Aleksey Nikolayev #:
В справке по ONNX нет про функции OnnxSetInputShape() и OnnxSetOutputShape(). Не очень понятно что они должны делать.


Эти методы устанавливают размерность входных и выходных данных модели. Сегодня добавим в справку

//+------------------------------------------------------------------+
//|                                        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 #:
Как понять? 
На компьютере я в бане на 10 лет,  а с телефона вне бана)) 

У вас наверное "фейковый бан по IP":

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Вопрос к администрации сайта mql5.com

Sergey Golubev, 2022.12.16 17:22

Если бан, а вы можете делать тут посты - то это "фейковый бан по IP".
У вас наверное, динамическое IP, и оно случайно "попало" на когда-то у кого-то забаненное.
Я когда "ловлю" такой бан -  просто выключаю компьютер, выключаю роутер, потом включаю роутер и включаю компьютер.
В результате мое IP меняется (а у меня оно тоже динамическое), и надпись про 10 лет исчезает.

...