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

 
Aleksey Nikolayev #:

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

асоциативные правила должны подойти , счас сделаю пример 

set.seed(123)
li <- list()
for(i in 1:100){
 li <- append(li,  
               list(c(letters[sample(1:10,sample(5:10,1))] ,   sample(c("buy","sell"),1)))
              )}

head(li)

данные в виде list , каждая строка это вектор с наблюдениями произвольной длинны   .  sell.buy  метки класса

head(li)
[[1]]
[1] "c"    "b"    "f"    "j"    "e"    "d"    "i"    "sell"

[[2]]
[1] "j"    "e"    "c"    "h"    "a"    "sell"

[[3]]
[1] "i"   "c"   "h"   "b"   "g"   "buy"

[[4]]
 [1] "c"   "d"   "f"   "a"   "j"   "e"   "i"   "h"   "b"   "g"   "buy"

[[5]]
[1] "i"   "g"   "c"   "d"   "e"   "buy"

[[6]]
 [1] "f"   "i"   "b"   "e"   "g"   "d"   "c"   "a"   "h"   "buy"

Код по поиску закономерностей в виде правил асоциаций 

library(arules)
model  <- apriori(li, parameter=list(support=0.2, 
                                     confidence=0.6,
                                     minlen=4,
                                     maxlen=5), 
                 appearance = list(rhs=c("buy","sell"), default="lhs"))
inspect(model)                 

правила

inspect(model)
      lhs          rhs   support confidence coverage lift     count
[1]   {e,f,j}   => {buy} 0.23    0.6764706  0.34     1.166329 23   
[2]   {e,i,j}   => {buy} 0.21    0.6176471  0.34     1.064909 21   
[3]   {b,e,j}   => {buy} 0.23    0.6216216  0.37     1.071761 23   
[4]   {a,e,j}   => {buy} 0.24    0.6857143  0.35     1.182266 24   
[5]   {e,h,j}   => {buy} 0.22    0.6111111  0.36     1.053640 22   
[6]   {c,e,j}   => {buy} 0.26    0.6666667  0.39     1.149425 26   
[7]   {e,g,j}   => {buy} 0.23    0.6571429  0.35     1.133005 23   
[8]   {e,f,i}   => {buy} 0.24    0.6153846  0.39     1.061008 24   
[9]   {b,e,f}   => {buy} 0.22    0.6666667  0.33     1.149425 22   
[10]  {a,e,f}   => {buy} 0.25    0.6756757  0.37     1.164958 25   
[11]  {c,e,f}   => {buy} 0.24    0.6486486  0.37     1.118360 24  
...
...
..
..
.

Алгоритм ищет асациации между елементами независимо от порядка их расположения..

Есть алгоритмы которые учитывают порядок расположения, но они прожорливы.


Или если хочеться большего , то есть рекомендательные системы пакет  recommenderlab но я там не лазил

 
Maxim Dmitrievsky #:

Рекуррентные сети подходят, по типу many-to-many

Спасибо, посмотрю.

Хотелось бы конечно какого-нибудь обзорного текста по теме с описанием и сравнением подходов (хотеть же не вредно). По идее, должен же быть такой текст где-нибудь, но пока не нашёлся.

 
Aleksey Nikolayev #:

Спасибо, посмотрю.

Хотелось бы конечно какого-нибудь обзорного текста по теме с описанием и сравнением подходов (хотеть же не вредно). По идее, должен же быть такой текст где-нибудь, но пока не нашёлся.

про входы-выходы переменной длины только в таких сетях видел, и то чисто обзорно, не вникая

для обработки текстов, переводов
 
mytarmailS #:

асоциативные правила должны подойти , счас сделаю пример 

данные в виде list , каждая строка это вектор с наблюдениями произвольной длинны   .  sell.buy  метки класса

Код по поиску закономерностей в виде правил асоциаций 

правила

Алгоритм ищет асациации между елементами независимо от порядка их расположения..

Есть алгоритмы которые учитывают порядок расположения, но они прожорливы.


Или если хочеться большего , то есть рекомендательные системы пакет  recommenderlab но я там не лазил

Спасибо, посмотрю.

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

Ещё вспомнилось, что вроде бы вы здесь когда-то писали про sequential pattern mining и возникающую там задачу выравнивания последовательностей. Это тоже похоже на один из методов решения проблемы. Хотя, принадлежность последовательностей к одному классу не обязательно означает их схожесть.

 
Aleksey Nikolayev #:

Спасибо, посмотрю.

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

Ещё вспомнилось, что вроде бы вы здесь когда-то писали про sequential pattern mining и возникающую там задачу выравнивания последовательностей. Это тоже похоже на один из методов решения проблемы. Хотя, принадлежность последовательностей к одному классу не обязательно означает их схожесть.

Ну тогда  пакет arulesSequence

 

Спарсил одну стратегию по золоту с маркета ))

кривая капитала в мойем тестере

перекинул в тслаб чтобы лучше посмотреть

по ходу все совпадает


   Посмотрел сделки


По ходу это ручной трейдер, с пересижываниями и непонятным алгоритмом торговли..

Форест конечно же ничего распознать не смог, но было интересно и познавательно )))

 
Maxim Dmitrievsky #:

Рекуррентные сети подходят, по типу many-to-many

Может будет полезно... у меня  many-to-many без рекуррентности. И без сверточных слоев. И выбрал эту модель после разбора механизма нейронки.  Мы ж тут ищем общий знаменатель?... Аргументируйте.

 
Maxim Dmitrievsky #:

Качаешь бота с маркета, прогоняешь его в тестере МТ5, потом там есть опция сохранить отчёт со всеми сделками и другой инфой

Можно автоматизировать, включая запуск теста и выгрузку сделок в csv — https://www.mql5.com/ru/code/26132

MultiTester
MultiTester
  • www.mql5.com
Множественные прогоны/оптимизации в Тестере.
 
mytarmailS #:

Спарсил одну стратегию по золоту с маркета ))

кривая капитала в мойем тестере

перекинул в тслаб чтобы лучше посмотреть

по ходу все совпадает


   Посмотрел сделки


По ходу это ручной трейдер, с пересижываниями и непонятным алгоритмом торговли..

Форест конечно же ничего распознать не смог, но было интересно и познавательно )))

Ну так надо почитать какой тайм-фрейм и обучать 2 модели. Одну на сделки, другую на тайминг. Или мультикласс. Посмотреть описание бота, может там все плохо и не подойдёт 
 
Andrey Khatimlianskii #:

Можно автоматизировать, включая запуск теста и выгрузку сделок в csv — https://www.mql5.com/ru/code/26132

Да, спасибо 
Причина обращения: