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

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

Уважаемый коллега!

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

Но в этом случае у меня возникает гораздо более существенный вопрос:

 

Где документация на все Ваши функции?

 

Ранее я считал, что берем Вашу функцию, потом берем документацию на R, так как Ваши функции являются аналогами, и вникаем   в те части документации R, которые либо описывают алгоритмы, либо переходим по ссылкам, указанным R. R имеет очень качественную документацию и справочный аппарат.

В ходе спора я выяснил, что Ваши функции отличаются от R - это некие другие функции, алгоритмы которых опираются на иные источники. В самой статье об этом ничего нет, документации нет. И об этом мы узнаем от Рената совершенно в другом контексте.

На практике следует однозначный вывод, что перенос кода с R на MQL5 невозможен.

И вот почему.

Это потому, что вы статью не читали и пропустили несколько раз повторенное:

  1. Мы приложили юнит-тесты в исходниках, доказывающие корректность вычислений
  2. Мы провели огромную работу по тотальной проверке корректности, что позволило разобраться в ошибках R
  3. В своей работе мы постоянно перепроверяли результаты в MQL5, Wolfram Alpha и R
В отличие от вас, мы разобрали исходники R, детально осмыслили каждую функцию, смогли ускорить некоторые функции до 46 раз,  написали статью и приготовились отвечать за нее.

Но вместо этого критики умудряются делать заявления на старых дрожжах своих знаний и уверенности в R без вдумчивого чтения самой статьи. И уж конечно без попыток запуска тестовых скриптов с доказательствами.

 

Чтобы не было неправильного понимания:

  1. Перевод/аналог указанных функций R произведен корректно
  2. Использовать логику из R в MQL5 можно практически один в один, причем в MQL5 код понятнее
  3. Весь код указанных функций в MQL5 представлен в чистых исходниках, включая проверочные юнит-тесты (где они в R?)
  4. Вычисления в MQL5 указанных функций в разы быстрее, чем в R
  5. У нас специалисты отлично разбираются в математике и не хуже(лучше) тех, кто пишет R
Это начало большого пути по внедрению сложной математики в стандартную библиотеку MQL5. Сейчас там Alglib, Fuzzy и Stat.

Сегодня выпустим релиз графической библиотеки, аналогичной plot из R. Уже идет функциональное расширение мат функционала библиотеки Stat в виде десятков новых функций.

 
Quantum:

На текущий момент описание функций есть в статье https://www.mql5.com/ru/articles/2742


Спасибо, мне Ваша точка зрения понятна.

 

ПС. 

Как я понимаю, документацию по  Normal и другим функциям в R Вы видели, поэтому я делать копипаст и сравнивать с Вашей ссылкой я не буду.

 
Renat Fatkhullin:

Это потому, что вы статью не читали и пропустили несколько раз повторенное:

  1. Мы приложили юнит-тесты в исходниках, доказывающие корректность вычислений
  2. Мы провели огромную работу по тотальной проверке корректности, что позволило разобраться в ошибках R
  3. В своей работе мы постоянно перепроверяли результаты в MQL5, Wolfram Alpha и R
В отличие от вас, мы разобрали исходники R, детально осмыслили каждую функцию, смогли ускорить некоторые функции до 46 раз,  написали статью и приготовились отвечать за нее.

Но вместо этого критики умудряются делать заявления на старых дрожжах своих знаний и уверенности в R без вдумчивого чтения самой статьи. И уж конечно без попыток запуска тестовых скриптов с доказательствами.

Спасибо, Ваша точка зрения мне понятна.

 

ПС.

Вы второй раз укоряете меня, что я статью не читал.

Читал, более того нашел ошибку в функции (возвращался скаляр вместо вектора), которую вы поправили и теперь этой ошибки нет. 

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

Спасибо, Ваша точка зрения мне понятна.

 

ПС.

Вы второй раз укоряете меня, что я статью не читал.

Читал, более того нашел ошибку в функции (возвращался скаляр вместо вектора), которую вы поправили и теперь этой ошибки нет. 

Это контр мера на ваш наброс "На практике следует однозначный вывод, что перенос кода с R на MQL5 невозможен".

Статью вы возможно читали старую, а не новую вчерашнюю. И там не было ошибки - была версия с возвратом скаляра(давно) и мы добавили векторные функции. Со времен старой статьи библиотека серьезно выросла и была по сути переписана.

Я был прав - новую статью вы не читали.

Надеюсь, больше разговоров про "у вас не такие функции и вы сами придумали" больше не будет.
 
Alexey Burnakov:

По поводу t распределения. я воспроизвел эту ошибку на последней версии R. но в суть алгоритма не вникал. Допускаю, что исправление было реально нужно.

Попробую задать вопрос команде поддержки R.

Статья "Computing discrete mixtures of continuous distributions" есть на сайте автора.

Авторы статьи говорят что проблема в критерии сходимости ряда.


Реализация предложенного ими рекуррентного алгоритма 7.2 https://github.com/neurodebian/afni_removeme_eventually/blob/master/nct.c

Однако рекуррентный расчет имеет погрешности. Например, для бета-функции:


#include <Math\Stat\Math.mqh>
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   double a=1;
   double b=1;
   double r_beta=MathBeta(a,b);
   for(int j=0; j<40; j++)
     {
      if(j>0)
        {
         r_beta*=((a+j-1)/(a+b+j-1));
        }
      double beta=MathBeta(a+j,b);
      PrintFormat("%d   error=%5.20e",j,beta-r_beta);
     }
  }

2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    0   error=0.00000000000000000000e+00
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    1   error=-5.55111512312578270212e-17
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    2   error=0.00000000000000000000e+00
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    3   error=1.11022302462515654042e-16
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    4   error=1.38777878078144567553e-16
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    5   error=-2.22044604925031308085e-16
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    6   error=2.22044604925031308085e-16
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    7   error=1.66533453693773481064e-16
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    8   error=-2.91433543964103591861e-16
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    9   error=-1.24900090270330110798e-16
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    10   error=-2.77555756156289135106e-17
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    11   error=-1.24900090270330110798e-16
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    12   error=5.68989300120392726967e-16
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    13   error=-2.91433543964103591861e-16
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    14   error=-5.55111512312578270212e-17
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    15   error=-4.85722573273505986435e-17
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    16   error=-1.87350135405495166196e-16
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    17   error=5.27355936696949356701e-16
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    18   error=-1.04083408558608425665e-16
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    19   error=-3.40005801291454190505e-16
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    20   error=-3.26128013483639733749e-16
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    21   error=4.57966997657877072925e-16
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    22   error=-3.19189119579732505372e-16
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    23   error=1.52655665885959024308e-16
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    24   error=5.55111512312578270212e-17
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    25   error=-6.24500451351650553988e-17
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    26   error=-2.70616862252381906728e-16
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    27   error=4.85722573273505986435e-17
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    28   error=4.64905891561784301302e-16
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    29   error=-8.32667268468867405318e-17
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    30   error=-9.02056207507939689094e-17
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    31   error=-2.98372437868010820239e-16
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    32   error=2.22044604925031308085e-16
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    33   error=2.74086309204335520917e-16
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    34   error=-3.43475248243407804694e-16
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    35   error=2.08166817117216851329e-17
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    36   error=-4.16333634234433702659e-17
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    37   error=8.67361737988403547206e-17
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    38   error=-1.21430643318376496609e-16
2016.11.11 12:28:30.015    RecurrentBeta (EURUSD,H1)    39   error=-2.18575157973077693896e-16

Для расчета CDF точности может быть достаточно, но для обращения квантилей с большой точностью его точности может быть недостаточно.

Поэтому в алгоритме расчета квантилей мы использовали прямое суммирование без рекуррентных расчетов.

 
Renat Fatkhullin:

Это контр мера на ваш наброс "На практике следует однозначный вывод, что перенос кода с R на MQL5 невозможен".

Я надеюсь, больше разговоров про "у вас не такие функции и вы сами придумали" больше не будет.

Прежде, чем писать о чем-то, я имею дурную привычку читать. "Набросами" я никогда не занимался, а высказывался исключительно по существу.

Получается, что свою точку зрения я не могу донести до Вас, причем не в первый раз.

Поэтому без меня.

 

Искренне желаю Вам, Ренат,  удачи! 

 

господа, о чем спор на 100500 страниц? кто в математике лучше разбирается? какая вам разница принципиальная - определяется функция в 0-не определяется,написали в статье - ошибка в R-или не ошибка. как-будто тут обсуждают вашего ребенка и говорят,что он полный ...,а вы всей грудью встали на его защиту.

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

 
Спасибо за участие @СанСаныч Фоменко, но вы не смогли опровергнуть ни одной нашей позиции и настоящий наброс не удался.
 
Renat Fatkhullin:

Чтобы не было неправильного понимания:

  1. Перевод/аналог указанных функций R произведен корректно
  2. Использовать логику из R в MQL5 можно практически один в один, причем в MQL5 код понятнее
  3. Весь код указанных функций в MQL5 представлен в чистых исходниках, включая проверочные юнит-тесты (где они в R?)
  4. Вычисления в MQL5 указанных функций в разы быстрее, чем в R
  5. У нас специалисты отлично разбираются в математике и не хуже(лучше) тех, кто пишет R
Это начало большого пути по внедрению сложной математики в стандартную библиотеку MQL5. Сейчас там Alglib, Fuzzy и Stat.

Сегодня выпустим релиз графической библиотеки, аналогичной plot из R. Уже идет функциональное расширение мат функционала библиотеки Stat в виде десятков новых функций.

это просто праздник какой-то
Причина обращения: