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

 
Vladimir Perervenko:

Тут на соседней ветке у меня произошла дискуссия с Ренатом о судьбе языка R в МКЛ4/5. Решение и направление развития МКЛ теперь понятно.

Удачи 

Прочитал, даже писать туда ничего не охота,  если человек не готов слушать то и нечего его убеждать, если хочет человек писать 100 - 1000 строк кода который уже давно написан это его право, а я лучше тоже самое сделаю одной строчкой в R

 

кстати можно сделать некий челендж, сделать какое то не тривиальное задание с применением стат. методов и последующим обучением и валидированием какой нибудь  модели, и реализовать ето в R и mql5+alglib и просто тупо сравнить размер кода...

 
Vladimir Perervenko:

Тут на соседней ветке у меня произошла дискуссия с Ренатом о судьбе языка R в МКЛ4/5. Решение и направление развития МКЛ теперь понятно.

Удачи 

Тем кто не читал ту ветку - прямого интерфейса от mql к R сейчас не ожидается. Но будет доступ к библиотеке Alglib портированной на mql, так что в самом mql коде можно строить деревья или нейронку, оптимизировать что-то генетикой, искать параметры для минимума/максимума функций. Все возможности - http://www.alglib.net

 
Vladimir Perervenko:

Тут на соседней ветке у меня произошла дискуссия с Ренатом о судьбе языка R в МКЛ4/5. Решение и направление развития МКЛ теперь понятно.

Удачи 



Понятна тенденция. Подружить МТ4 с Р можно. А МТ 4 сейчас пока еще очень распространена. А если поймать хорошую зависимость в Р, то можно легко с теми же параметрами обучить модель в библиотеке для МТ5.

 

Есть у меня матрица `"Р"` с наблюдениями (построчно) , по каждой строке считаю распределение через `hist()`


breaks - поставил 50


    A <- hist(P[n,],breaks = 50,plot = F)


но выяснилось что на каждой строчке матрицы  `A$breaks` имеет разную длину, не смотря на то что длинна всех строчек в `"Р"` одинакова, как сделать так чтоб  `A$breaks`  были всегда одинаковых размеров

 

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

Для точного совпадения лучше заранее рассчитать минимальное и максимальное значения, и подать в параметр свой вектор
A <- hist(P[n,],breaks = c(10:60),plot = F)

 
Dr.Trader:

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

Для точного совпадения лучше заранее рассчитать минимальное и максимальное значения, и подать в параметр свой вектор
A <- hist(P[n,],breaks = с(10:60),plot = F)


пробовал но почему то ерорит

 

> A <- hist(P[1,],breaks = с(10:60),plot = F)
Error in hist.default(P[1, ], breaks = с(10:60), plot = F) : 
  could not find function "с"
> A <- hist(P[1,],breaks = 10:60,plot = F)
Error in hist.default(P[1, ], breaks = 10:60, plot = F) : 
  some 'x' not counted; maybe 'breaks' do not span range of 'x'
 

Насчёт первой ошибки - я похоже вписал русскую с вместо английской c :) Свой пост выше сейчас поправил.

Вторая ошибка - P[1,] содержит значения либо меньше 10, либо больше 60. Нужно выбирать breaks таким чтоб включить все значения из P[1,]

 
Dr.Trader:

Насчёт первой ошибки - я похоже вписал русскую с вместо английской c :) Свой пост выше сейчас поправил.

Вторая ошибка - P[1,] содержит значения либо меньше 10, либо больше 60. Нужно выбирать breaks таким чтоб включить все значения из P[1,]


к сожалению не понял(

вот простейший пример 

rn <- rnorm(100)
H <- hist(rn, breaks = 50, plot = F)
length(H$breaks)

  вот что и как мне сделать чтоб   length(H$breaks) всегда был 50 ?

 

Сначала нужно определить минимальное число в rn. Допустим -4. Потом максимально возможное число: +4

Самый просто вариант вызова функции, чтоб гистограмма была в пределах от -4 до +4:
H <- hist(rn, breaks = c(-4:4))

Пример с ошибкой:
H <- hist(rn, breaks = c
(-1:1))
breaks ограничен от -1 до 1, и значит если rnorm() выдаст число меньше -1 или больше +1  то hist() выдаст ошибку.

Дальше, нужно создать вектор с числами от -4 до +4, так чтобы общая длинна вектора равнялась 50. Это делается функцией seq():
seq(-4, 4, length.out=50) 

Ну и в принципе всё, нужно результат seq() использовать в гистограмме 
H <- hist(rn, breaks = seq(-4, 4, length.out=50))

 
Dr.Trader:

Сначала нужно определить минимальное число в rn. Допустим -4. Потом максимально возможное число: +4

Самый просто вариант вызова функции, чтоб гистограмма была в пределах от -4 до +4:
H <- hist(rn, breaks = c(-4:4))

Пример с ошибкой:
H <- hist(rn, breaks = c
(-1:1))
breaks ограничен от -1 до 1, и значит если rnorm() выдаст число меньше -1 или больше +1  то hist() выдаст ошибку.

Дальше, нужно создать вектор с числами от -4 до +4, так чтобы общая длинна вектора равнялась 50. Это делается функцией seq():
seq(-4, 4, length.out=50) 

Ну и в принципе всё, нужно результат seq() использовать в гистограмме 
H <- hist(rn, breaks = seq(-4, 4, length.out=50))

Спасибо большое, а то я в этой економетрике ни бумбум,

вроди получилось

rn <- rnorm(100)
Max <- max(rn)
Min <- min(rn)
range.vector <- seq(Min, Max, length.out=50)
H <- hist(rn, breaks = range.vector)
length(H$breaks)

[1] 50