Обсуждение статьи "Статистические распределения в MQL5 - берем лучшее из R и делаем быстрее" - страница 10

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

Что значит "показать"?

У меня есть ПАММ из-за фунта сейчас не работает...

Дело ведь не в этом....

Вот пишу о моделях, но дело не в моделях - дело как всегда в деньгах, а точнее в уверенности их получения в будущем.

По мне главная проблема торговых систем на финансовых рынках не в применении или не применении сложных математических моделей, а в переобученности (сверх подгонки) этих самых ТС. Переобученность проявляется в том, что со временем (если не сразу) ТС теряет свои показатели по отношению к своему обучению. 

Для решения этой проблемы я пытаюсь доказать, что разработанные мною торговые системы НЕ ПЕРЕОБУЧЕНЫ. Т.е. я хочу уверенности в том, будущие показатели эффективности ТС не особо сильно изменятся и, во-всяком случае, не сольют мне депо. 

Я занят этим. Все необходимые инструменты для решения этой задачи имеются в R с избытком. Соответствующих инструментов в МКЛ нет вообще. 

 

Посмотрите ветку  Бурнакова про машинное обучение. Там я подробно на эту тему постил.

В том то и дело. Может Вы талантливый человек, но R не даст Вам развернуться, - там все готово. Вы захотите рыпнуться и взятся за задачку, - а тут Вам - БАЦ! -Получите готовое решение.

Чрезмерные предоставляемые возможности застопорят развитие таланта любого человека. Не будет задач - не будет развития. Что останется? - Стагнация и неизбежная деградация способностей.

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

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

Возможно Вы просто хотите облегчить свой труд.

Я это понимаю, но не принимаю.  Так заработать больше не получится. Нужно трудится по полной.

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

Для решения этой проблемы я пытаюсь доказать, что разработанные мною торговые системы НЕ ПЕРЕОБУЧЕНЫ. Т.е. я хочу уверенности в том, будущие показатели эффективности ТС не особо сильно изменятся и, во-всяком случае, не сольют мне депо. 

Я занят этим. Все необходимые инструменты для решения этой задачи имеются в R с избытком. Соответствующих инструментов в МКЛ нет вообще.


А вот это не совсем так, Сан-Саныч.

Банки и хедж-фонды НУ ОЧЕНЬ АКТИВНО для торговли опционами и для других целей используют математические методы типа "регуляризации Тихонова". В трейдинге, где много шума, - без неё этим вот банкам вообще никак.

И как раз в R её и нету (это просто удивительно), точнее она где-то есть в Инете, но только в виде сборного скрипта, и непонятного качества и точности.

http://stackoverflow.com/questions/38899849/r-packages-for-tikhonov-regularization-in-solving-least-squares-with-ill-conditi

Это как раз говорит о том, что :

а). настоящие практики к разработке R никак не приложились;

б). серъёзные дяди из мира трейдинга если и используют где-то втихаря систему R, то только для прототипов очень простых торговых моделей.

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

Это я даже пока не говорю про проблемы точности математических расчётов на компьютере вообще, и в пакете R в частности.

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

R packages for Tikhonov regularization in solving least squares with ill-conditioned matrices?
R packages for Tikhonov regularization in solving least squares with ill-conditioned matrices?
  • stackoverflow.com
Does anybody know any R packages available for Tikhonov regularization in solving least squares with ill-conditioned matrices? I know that there few functions available in MATLAB.
 

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

R сливает от разов до десятка раз. Код у него написан в лобовую и там никто не задумывался об оптимизации. На MQL5 математика явно считается кратно быстрее.

 

Как завершим работу над математическими библиотеками MQL5, опубликуем новую статью по возможностям и бенчмаркам.

 

В бету-версию MetaTrader 5 build 1467 включена обновленная статистическая библиотека с расширением функций.

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

Это выявили наши юнит тесты, которые мы в обязательном порядке распространяем со своей библиотекой в виде отдельных скриптов в каталоге /Scripts/UnitTests/Stat:

  • TestStat.mq5 - основной тестовый скрипт для проверки результатов вычислений
  • TestPrecision.mq5 - тест точности вычислений
  • TestBenchmark.mq5 - тест с замером производительности вычислений


Большим сюрпризом ожиданием стала убедительная победа в скорости MQL5 над С++ реализациями функций в R. Разброс ускорения от 1.5 до 46 раз, хотя в среднем можно говорить об ускорении от 3 до 7 раз.

Это является доказательством высокого качества компилятора MQL5 и дает возможность трейдерам делать расчеты внутри платформы гораздо быстрее.

 

В догонку скоро будет доступна графическая библиотека, аналогичная R.

Она позволяет легко визуализировать сложные серии данных прямо на графике:


 
Renat Fatkhullin:

В догонку скоро будет доступна графическая библиотека, аналогичная R.

Она позволяет легко визуализировать сложные серии данных прямо на графике:

Классно!

Безье? NURBS?

 
Andrey Dik:

Классно!

Безье? NURBS?

Безье.

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

 

Если вернуться к этому комменту, то вот новые возможности для отображения графиков в MT5 с использованием стандартной графической библиотеки:

n <- 2000

k <- seq(0, n, by = 20)
a <- dbinom(k, n, pi/10, log = TRUE)
str(a)
plot(a)


#include <Math/Stat/Binomial.mqh>
#include <Graphics/Graphic.mqh>

void OnStart(void)
  {
   double    vars[101];
   double    results[101];
   const int N=2000;
//---  
   MathSequence(0,N,20,vars);
   MathProbabilityDensityBinomial(vars,N,M_PI/10,true,results);
   ArrayPrint(results,4);
   GraphPlot(results);
//---
  }



По размеру кода и самим вызовам все практически одинаково. 4 рабочие строки там и там, но со стороны лучше читается MQL5 код.

Хотя под капотом находится полнофункциональная графическая ООП библиотека CGraphic, у нас есть несколько простых функций GraphPlot, которые позволяют легко выводить простые случаи с 1, 2, 3 сериями данных.

Еще два стиля вывода того же самого графика:


Интересная возможность использовать функции в качестве серий данных:

#include <Graphics/Graphic.mqh>

double Func1(double x) { return MathPow(x,2); }
double Func2(double x) { return MathPow(x,3); }
double Func3(double x) { return MathPow(x,4); }

void OnStart()
  {
   GraphPlot(Func1,Func2,Func3,-2,2,0.05,CURVE_LINES);
  }


Будет доступно в сегодняшней бета-версии на MetaQuotes-Demo
 
Renat Fatkhullin:

Если вернуться к этому комменту, то вот новые возможности для отображения графиков в MT5 с использованием стандартной графической библиотеки:

#include <Math/Stat/Binomial.mqh>

... 

По размеру кода и самим вызовам все практически одинаково. 4 рабочие строки там и там, но со стороны лучше читается MQL5 код.

...

Будет доступно в сегодняшней бета-версии на MetaQuotes-Demo

Спасибо. Хорошей стат. графики так не хватало!
 
Это только в пятерке? В четверке планируется?