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

 
ivanivan_11:
просто интересно - а вы тут в качестве предикторов берете только значения цен и разных индикаторов от цен? а объемы реальные и индикаторы от объемов кто-нибудь использует?

Я с ценами работаю, без объёма.

Пробовал использовать объёмы и их индикаторы, но не получилось. Реальных объёмов на форексе не дано, зато есть тиковые, которые вроде чучуть соответсвуют реальным, т.е. в принципе их можно попробовать. Но проблема в том что история баров и тиков от брокера содержит какие-то "не такие" тиковые объёмы. Пока символ находится в маркет вотче в запущенном терминале - для него соответсвенно набирается правдивая история тиковых объёмов. Если символ убрать из вотча, или закрыть терминал - тиковые объёмы для таких баров будут браться те что даёт брокер. И вот эти два значения, "набранные самим терминалом" и "полученные от брокера" - совсем отличаются, иногда в десять раз. Теперь мне нужно держать терминал запущенным пару месяцев, чтоб набрать действительные тиковые объёмы, а не то что даёт брокер, тогда смогу ещё раз попробовать их использовать.

 
Dr.Trader:

Я с ценами работаю, без объёма.

Пробовал использовать объёмы и их индикаторы, но не получилось. Реальных объёмов на форексе не дано, зато есть тиковые, которые вроде чучуть соответсвуют реальным, т.е. в принципе их можно попробовать. Но проблема в том что история баров и тиков от брокера содержит какие-то "не такие" тиковые объёмы. Пока символ находится в маркет вотче в запущенном терминале - для него соответсвенно набирается правдивая история тиковых объёмов. Если символ убрать из вотча, или закрыть терминал - тиковые объёмы для таких баров будут браться те что даёт брокер. И вот эти два значения, "набранные самим терминалом" и "полученные от брокера" - совсем отличаются, иногда в десять раз. Теперь мне нужно держать терминал запущенным пару месяцев, чтоб набрать действительные тиковые объёмы, а не то что даёт брокер, тогда смогу ещё раз попробовать их использовать.

це-це-це...зачем же такие крайности-тиковые? мт5 и 2 брокера на москву,и еще 2 с реальными объемами на фьючи и акции в буржундии (ну один из них точно с реальными!). и речь не о экзотике,типа бразилии,юар,польше,оаэ.
 
Renat Fatkhullin:

Для информации по языку R и новому MetaTrader 5 build 1467:

  • Вышла обновленная версия статистических библиотек, аналогичных R:

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

  • Расчеты в MQL5 от 3 до 7 раз быстрее, чем в R (даже с учетом того, что там фунции реализованы на C++)
  • У некоторых функций R есть ошибки из-за старых методов оптимизаций/упрощений, что дает ошибочные результаты
  • Добавлена бета-версия графических библиотек, аналогичных R, что дает возможность визуализировать данные как в R.
  • Добавлена удобная функция ArrayPrint, которая распечатывает как обычные массивы, так и структуры аналогично R


Обновиться до 1467 можно с сервера MetaQuotes-Demo.

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

Уважаемый Ренат!

 

Позвольте ответить на замечание по пункту №6. Обнаруженные ошибки расчетов в R по приведенной ссылке: Статистические распределения в MQL5 - берем лучшее из R и делаем быстрее

Проверка была выполнена для Гамма-функции. Для остальных функций оставляем проверку на вашу ответственность.

От лица отдела Data Science в лице руководителя и двух статистиков (команию могу сообщить в ЛС) информируем вас о том, что плотность гамма-распределения в точке ноль не сводится к нулю, строго говоря.  

R действительно оценивает плотность в точке ноль как 1:

x <- seq(0, 20, 0.5) #support

plot(k, dgamma(x = x, shape = 1, scale = 1, log = FALSE)) #PDF plot

print(dgamma(x = 0.000001, shape = 1, scale = 1, log = FALSE)) #limiting to zero

 Однако видно, что при x стремящимся к нулю плотность приближается к единице.

Более того, согласно:

 

https://en.wikipedia.org/wiki/Gamma_distribution 

при x = 0, alpha = 1, beta = 1, в числителе получается неопределенное значение, что приводит всю дробь к неопределенности.

Заявляем, что строго говоря, плотность гамма распределения в точке ноль не определена. А при взятии предела справа плотность равна единице.

В свете этого мы считаем, то формулировка утверждения "ошибки расчетов в R" не является корректной. Точнее, это вопрос конвенций: чем считать равной выражение ноль в степени ноль. Приравнивание плотности гамма распределения к нулю в точке ноль не представляется сколько-либо обусловленной практикой.

 

С ув.

Алексей 

Gamma distribution - Wikipedia
Gamma distribution - Wikipedia
  • en.wikipedia.org
Gamma Parameters Support PDF CDF Mean Median Mode Variance Skewness Excess kurtosis Entropy MGF CF With a shape parameter k and a scale parameter θ. With a shape parameter α = k and an inverse scale parameter β = 1/θ, called a rate parameter. With a shape parameter k and a mean parameter μ = k/β. In each of these three forms...
 
Alexey Burnakov:

Заявляем, что строго говоря, плотность гамма распределения в точке ноль не определена. А при взятии предела справа плотность равна единице.

В свете этого мы считаем, то формулировка утверждения "ошибки расчетов в R" не является корректной. Точнее, это вопрос конвенций: чем считать равной выражение ноль в степени ноль. Приравнивание плотности гамма распределения к нулю в точке ноль не представляется сколько-либо обусловленной практикой.

Если плотность (pdf) ненулевая, то и интеграл (cdf) в этой точке должен быть ненулевой, иначе нуля не получится.

> n <- 5
> k <- seq(0,1,by=1/n)
> gamma_pdf<-dgamma(k, 1,1, log = FALSE)
> gamma_cdf<-pgamma(k, 1,1, log = FALSE)
> k
[1] 0.0 0.2 0.4 0.6 0.8 1.0
> gamma_pdf
[1] 1.0000000 0.8187308 0.6703200 0.5488116 0.4493290 0.3678794
> gamma_cdf
[1] 0.0000000 0.1812692 0.3296800 0.4511884 0.5506710 0.6321206

Но cdf=0. Это трудно объяснить.

В точке x=0 pdf равна нулю по определению:


Wolfram Alpha:

Для нецентрального и центрального распределений хи-квадрат:


Wolfram|Alpha: Computational Knowledge Engine
  • www.wolframalpha.com
Wolfram|Alpha is more than a search engine. It gives you access to the world's facts and data and calculates answers across a range of topics, including science, nutrition, history, geography, engineering, mathematics, linguistics, sports, finance, music...
 
Quantum:

Если плотность (pdf) ненулевая, то и интеграл (cdf) в этой точке должен быть ненулевой, иначе нуля не получится.

Но cdf=0. Это трудно объяснить.

В точке x=0 pdf равна нулю по определению:


Wolfram Alpha:

Для нецентрального и центрального распределений хи-квадрат:


Вы лучше сами от себя скажите, чему равен 0 ^ alpha - 1, при alpha = 1.

 

Интеграл тоже там не определен.... Но в пределе близок к нулю. Вопрос конвенций...

 

print(pgamma(q = 0.000001, shape = 1, scale = 1, log = FALSE, lower.tail = F)) #right side

print(pgamma(q = 0.000001, shape = 1, scale = 1, log = FALSE, lower.tail = T)) #left side

 
ivanivan_11:
а объемы реальные и индикаторы от объемов кто-нибудь использует?
См. https://www.mql5.com/ru/forum/86386/page174#comment_2911488
Машинное обучение: теория и практика (торговля и не только)
Машинное обучение: теория и практика (торговля и не только)
  • www.mql5.com
Добрый день всем, Знаю, что есть на форуме энтузиасты machine learning и статистики...
 

чтобы предел был определен, нужно чтобы он был одинаковым при подходе слева и справа, но этого нет:

http://www.wolframalpha.com/input/?i=Limit%5BPDF%5BGammaDistribution%5B1,1%5D,x%5D,+x-%3E0%5D


Wolfram|Alpha: Computational Knowledge Engine
  • www.wolframalpha.com
Wolfram|Alpha is more than a search engine. It gives you access to the world's facts and data and calculates answers across a range of topics, including science, nutrition, history, geography, engineering, mathematics, linguistics, sports, finance, music...
 
Quantum:

чтобы предел был определен, нужно чтобы он был одинаковым при подходе слева и справа, но этого нет:

http://www.wolframalpha.com/input/?i=Limit%5BPDF%5BGammaDistribution%5B1,1%5D,x%5D,+x-%3E0%5D


Есть только справа и это 1...

То, что Wolfram говорит 0 - это не истина в последней инстанции. Я про то, что слово "ошибка" в формулировке излишнее...

 

Я ещё одну ошибку в R нашёл. R неправильно на 0 делит.

Вот скрипт:

//+------------------------------------------------------------------+
//|                                                         test.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

#property script_show_inputs

input double div = 0.0;

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   Print(1.0/div);
  }
//+------------------------------------------------------------------+

Правильный ответ, в mql -
zero divide in 'test.mq5' (20,13)
с остановкой скрипта

Неприавильный, в R:
> 1/0
Inf
с продолжением работы скрипта

 

Я это веду к тому же что и Алексей - поведение программ в неопределённых условиях может отличаться, и это не ошибка. Как архитектурой положено, такой результат и будет.


 

Ещё одно интересное наблюдение. Делить на ноль нельзя. И нельзя извлекать корень из отрицательных чисел. Я помню с универа что это всё можно, но сейчас не об этом, в простой математике оба действия нельзя.

Почему если в mql поделить на 0 то это ломает весь скрипт и обрывает его, а если извлечь корень из отрицательного числа - то получится число "-nan(ind)", без обрыва скрипта, и это "-nan(ind)" можно использовать дальше для вычислений (оно сломает все следующие вычисления)? Вот тут я ожидал одинакового поведения mql скрипта в обоих случаях.

Причина обращения: