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

 
mytarmailS:

Я не торгую форекс, я даже не знаком с метатрейдер :)

Я хотел бы поексперементировать с профилем в разных его видах именно в Р-ке, просто не понятно как строить распределение по двум векторам

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

А что Вы тогда делаете на этом форуме??? Форуме который посвящён целиком и полностью терминалу MetaTrader? Ведь ранее уже сказали - не будет прямого доступа (API) из вне внутрь экосистемы MetaTrader. 
 
Karputov Vladimir:
А что Вы тогда делаете на этом форуме??? Форуме который посвящён целиком и полностью терминалу MetaTrader? Ведь ранее уже сказали - не будет прямого доступа (API) из вне внутрь экосистемы MetaTrader. 

Прочтите название этой ветки и скажите каким боком тут фигурирует метатрейдер?

и вообще зачем эта дискуссия? 

 
mytarmailS:

Прочтите название этой ветки и скажите каким боком тут фигурирует метатрейдер?

и вообще зачем эта дискуссия? 

В поставке терминала появились новые математические библиотеки, например такие: (Обсуждение статьи "Статистические распределения в MQL5 - берем лучшее из R") - так почему бы Вам не публиковать примеры применительно к MetaTrader? 
 
Karputov Vladimir:
В поставке терминала появились новые математические библиотеки, например такие: (Обсуждение статьи "Статистические распределения в MQL5 - берем лучшее из R") - так почему бы Вам не публиковать примеры применительно к MetaTrader? 

Да потому что банально не умею :) не знаком с MQL

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

 
mytarmailS:

Да потому что банально не умею :) не знаком с MQL

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

Вы же не знаете язык MQL, не знаете терминал, как можете о чем-то судить вообще? 

PS. Очень жаль, но на форуме развелось очень много пользователей, паразитирующих на экосистеме MT. Однако это так же говорит об огромной популярности и продвинутости платформы, которая привлекает умнейших людей к исследованиям на MQL, и, конечно, привлекает паразитов, куда уж без них...    

 

давайте прекратим эти разговоры ни о чем, у каждого свое мнение, а у этой ветки есть конкретная тема...

 

   Так что там с тем распределением? можно его по двум векторам построить или нет? :) 

 
mytarmailS:

 Так что там с тем распределением? можно его по двум векторам построить или нет? :) 


Вот статья хорошая: https://www.r-bloggers.com/5-ways-to-do-2d-histograms-in-r/

x <- rnorm(mean=1.5, 5000)
y <- rnorm(mean=1.6, 5000)
df <- data.frame(x,y)
library(gplots)
h2 <- hist2d(df, nbins=10) #сторона квадрата = 10
h2$counts
 

Вот более жизненный пример. В архиве - RData с eurusd h1 с 2012 года по сегодня.

MetaQotes-Demo предоставляет и тиковые объёмы и торговые, но я не знаю насколько им можно доверять.

load("H1.RData")
library(gplots)
#торговые обёмы и цены закрытия за последний год
hist2d(x = H1[(nrow(H1) - 6225):nrow(H1), c("Close", "Trade.volume")], nbins = 100)

 


Файлы:
H1.zip  671 kb
 

Спасибо! У меня в прицепе похожее получилось...

 

x <- D$X.CLOSE.[1:2000]
y <- D$X.VOL.[1:2000]
df <- data.frame(x,y)
library(gplots)
h2 <- hist2d(df, nbins=100) #сторона квадрата = 10
#h2$counts

qq 


 Только не понятно как интерпретировать эту матрицу h2$counts, там столько всего всякого , жуть ...

 Я бы хотел получить что похожее на обычное распределение, ну как с hist() помните?  что бы было похоже на профиль объема, а лучше что вообще было один в один, это можно как то средствами Р-ки сделать?

 

что то наковырял https://futures.io/matlab-r-project-python/29465-r-volume-profile-volume-price.html, буду разбираться 

 
mytarmailS:

Я бы хотел получить что похожее на обычное распределение, ну как с hist() помните?  что бы было похоже на профиль объема, а лучше что вообще было один в один, это можно как то средствами Р-ки сделать?

Если вы возьмёте только один вектор - цену, то гистограмма покажет количество повторов каждого уровня цены. Будут столбики растущие из линии, проще говоря.

Взяв два вектора - цену и объём, то у цены буду какие-то свои уровни, и у объёма будут какие-то свои уровни. Это два разных измерения, которые образуют плоскость. Из плоскости будут расти вверх столбики гистограммы, показывая число повторов для каждой комбинации цены и объёма.
hist2d вместо рисования трёхмерных столбиков показывает их высоту цветом. Более красивый вариант на тех-же данных выглядел бы как-то так:
 


Чтобы нарисовать простую гистограмму как в hist() для цены и объёма, вам нужно два вектора (цена и объём) сначала какой-то формулой привести к одному вектору, и для него рисовать гистограмму. Нужно определиться, что это вообще за новый вектор, что вы от него хотите, и где его взять. Грубо говоря из той трёхмерной картинки выше вы хотите получить плоскую гистограмму, что можно сделать бесконечно большим числом способов.

 

 h2$counts - матричное представление той гистограммы. Возьмите nbins=5 например, чтоб сделать размер гисторгаммы 5x5 чтоб наглядней было, и посмотрите h2$counts - это тоже будет матрицей размером 5x5. Чем ярче ячейка гистограммы, тем большее число будет в матрице в соотсветсвующей ячейке.

 

Дописал позже.
Нашёл как сделать красиво -  

library(plot3D)
levels_count <- 20
volume_levels = cut(H1[(nrow(H1) - 6225):nrow(H1), "Trade.volume"], levels_count)
price_levels = cut(H1[(nrow(H1) - 6225):nrow(H1), "Close"], levels_count)
h3d = hist3D(z = table(volume_levels, price_levels), xlab="volume", ylab="price", zlab="frequency", border="black")



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