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

 
mytarmailS #:
                                А что мы прогнозируем на самом деле?
Опять 25 :) азы эконометрики пошли. Чтобы не ходить по кругу: прогнозировать можно только циклы и сезонные компоненты во временном ряду
 
Maxim Dmitrievsky #:
Опять 25 :) азы эконометрики пошли. Чтобы не ходить по кругу: прогнозировать можно только циклы и сезонные компоненты во временном ряду
Неё, не так все просто
 
mytarmailS #:
Неё, не так все просто
Непросто их выделить, а в остальном какой смысл усложнять   
 
Maxim Dmitrievsky #:
Непросто их выделить, а в остальном какой смысл усложнять   

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

 

Граматическая эволюция / символьная регресия, более продвинутая версия генетического програмирования..

С помощью этих инструментов можно на автомате икать закономерности, любых видов


например можно искать оптимальное управление индикатором через формулу

создаем шаблон функций  (область поиска)

library(gramEvol)
ruleDef <- list(expr  = grule(op(expr, expr), func(expr), var),
                func  = grule(sin, cos, log, sqrt),
                op    = grule("+", "-", "*","/"),
                var   = grule(distance, distance^n),
                n     = grule(1, 2, 3, 4))

grammarDef <- CreateGrammar(ruleDef)
gr <- GrammarRandomExpression(grammarDef,numExpr = 10,max.depth = 5)
q <- as.matrix(unlist(lapply(gr,as.character)),ncol=1)
q

и оно на автомате создает формулы :

[1,] "sqrt(log(cos(sqrt(cos(distance^2)))))"                                                                  
 [2,] "sin(log(sqrt(sin(sqrt(distance * distance))) * (sin(log(distance^3)) - cos(cos(distance)) - distance)))"
 [3,] "(sin(distance * sqrt(sin(distance * sqrt(distance^3)))) + distance^1)/distance"                         
 [4,] "sin(log(log(distance^4)))"                                                                              
 [5,] "distance"                                                                                               
 [6,] "distance^4"                                                                                             
 [7,] "log(sin(distance)) * (log(distance) - cos(distance^4 - distance^4))"                                    
 [8,] "distance^1"                                                                                             
 [9,] "distance"                                                                                               
[10,] "log(distance) * (distance/log((distance^4 - distance^3) * distance^2))"        

 которые потом генетикой ищеться лучшее решение

=====================

Или можно создавать лог. правила , таким образом искать закономерности

Опять   создаем шаблон функций  (область поиска)

library(gramEvol)
ruleDef <- list(
  expr = grule(expr & sub.expr, 
               expr | sub.expr, 
               sub.expr),
  sub.expr = grule( com(var, var) ),
  com = grule(">=","<="),
  var = grule(x,y,w,z,q,y,r)
  )

grammarDef <- CreateGrammar(ruleDef)
gr <- GrammarRandomExpression(grammarDef,numExpr = 15,max.depth = 3)

q <- as.matrix(unlist(lapply(gr,as.character)),ncol=1)
q

И на выходе получаем правила

[1,] "x >= y"                  
 [2,] "y <= y | y >= y | w >= y"
 [3,] "y <= x"                  
 [4,] "y <= y"                  
 [5,] "y <= r"                  
 [6,] "z <= z"                  
 [7,] "y <= y"                  
 [8,] "x <= y"                  
 [9,] "z <= y | y >= z & r >= y"
[10,] "z >= x"                  
[11,] "y >= y | q >= y | q >= q"
[12,] "y >= y | q <= y | z >= q"
[13,] "y >= y | x <= y | x >= x"
[14,] "y >= r"                  
[15,] "y >= w"

которые потом тестируються на пригодность генетикой

=============================

Если у вас есть ТС и вы хотите улучшыть ее но не хватает фантазии чтобы перепробовать милионы вариантов, то можно попробовать сделать это с помощью алгоритма.

например точка входа у нас :  пробитие болинжера ценой вниз ( "PRICE < BOLINGER" )

Мы добавляем это правило в нашу граматику

library(gramEvol)
ruleDef <- list(
  expr = grule(expr & sub.expr, 
               expr | sub.expr, 
               sub.expr),
  sub.expr = grule( com(var, var)  ,  PRICE < BOLINGER),
  com = grule(">=","<="),
  var = grule(x,y,w,z,q,y,r)
  )

grammarDef <- CreateGrammar(ruleDef)
gr <- GrammarRandomExpression(grammarDef,numExpr = 15,max.depth = 3)

q <- as.matrix(unlist(lapply(gr,as.character)),ncol=1)
q

Правила немножно дебильные но это потому что генерируються рандомно

[1,] "y >= q"                                                                                                        
 [2,] "PRICE < BOLINGER & y >= y | x >= x"                                                                            
 [3,] "PRICE < BOLINGER | PRICE < BOLINGER & x <= y | y <= w"                                                         
 [4,] "r <= y & PRICE < BOLINGER | w >= x | y <= x"                                                                   
 [5,] "PRICE < BOLINGER | PRICE < BOLINGER | y <= y & PRICE < BOLINGER"                                               
 [6,] "PRICE < BOLINGER"                                                                                              
 [7,] "PRICE < BOLINGER & PRICE < BOLINGER & z <= x | PRICE < BOLINGER & PRICE < BOLINGER | PRICE < BOLINGER | z <= x"
 [8,] "y <= y | PRICE < BOLINGER | x <= y | PRICE < BOLINGER | PRICE < BOLINGER"                                      
 [9,] "PRICE < BOLINGER & x <= y | y <= q & PRICE < BOLINGER"                                                         
[10,] "q >= z & PRICE < BOLINGER | q >= w & y <= x"                                                                   
[11,] "PRICE < BOLINGER | PRICE < BOLINGER"                                                                           
[12,] "w >= y"                                                                                                        
[13,] "PRICE < BOLINGER"                                                                                              
[14,] "y <= y & PRICE < BOLINGER | q >= x | PRICE < BOLINGER"                                                         
[15,] "q >= x" 

Суть в том что мы сильно снижаем пространство поиска, если добавим свое правило

Если у нас есть хорошее правило и мы не знаем как эго улучшыть, а хочеться , то можно "облепить" его другими правила и на автомате проверять 

 
mytarmailS #:

Граматическая эволюция / символьная регресия, более продвинутая версия генетического програмирования..

С помощью этих инструментов можно на автомате икать закономерности, любых видов


например можно искать оптимальное управление индикатором через формулу

создаем шаблон функций  (область поиска)

и оно на автомате создает формулы :

 которые потом генетикой ищеться лучшее решение

=====================

Или можно создавать лог. правила , таким образом искать закономерности

Опять   создаем шаблон функций  (область поиска)

И на выходе получаем правила

которые потом тестируються на пригодность генетикой

=============================

Если у вас есть ТС и вы хотите улучшыть ее но не хватает фантазии чтобы перепробовать милионы вариантов, то можно попробовать сделать это с помощью алгоритма.

например точка входа у нас :  пробитие болинжера ценой вниз ( "PRICE < BOLINGER" )

Мы добавляем это правило в нашу граматику

Правила немножно дебильные но это потому что генерируються рандомно

Суть в том что мы сильно снижаем пространство поиска, если добавим свое правило

Если у нас есть хорошее правило и мы не знаем как эго улучшыть, а хочеться , то можно "облепить" его другими правила и на автомате проверять 

Ну это же все равно что глубокими деревьями облепить признаки 
 
Maxim Dmitrievsky #:
Ну это же все равно что глубокими деревьями облепить признаки 
Это простые примеры, просто чтобы понять универсальность инструмента. 

Вместо простых перенных могут быть функции,  или нейросети или что хочешь


И все это будет на автомате маслать
 
mytarmailS #:
Это простые примеры, просто чтобы понять универсальность инструмента. 

Вместо простых перенных могут быть функции,  или нейросети или что хочешь


И все это будет на автомате маслать
Ждём развитие темы
 
elibrarius #:

Вопрос тем, кто МО занимается.
Как вы себя мотивируете на это почти безнадежное дело?
В 18-м когда я начал, был небольшой доход и был материальный стимул, точнее надежда, что МО в рынке поможет.

Сейчас получаю в разы больше, почти пассивно, не с рынка. Материальный вопрос не волнует. Последние 2  года за МО брался раза 3 на 1-2 месяца, проверить заинтересовавшую идею.
Время свободное есть, но тратить его на МО после множества неудачных экспериментов лень. Т.к. на отдачу почти не надеюсь. Единственное - только чтобы в случае очередной просадки по финансам был еще один источник (если что-то получится). Но мотив слабоватый на текущий момент.

Кто чем себя мотивирует?

Давние отношения с форексом. Начинал с работы аналитиком в дц (эконом образование), потом работал дилером и помощником руководителя, приторговывал, потом увлекся ботами и МО

было много неэффективностей (в том числе технических), когда получалось выносить приличные суммы
 
Maxim Dmitrievsky #:

Давние отношения с форексом. Начинал с работы аналитиком в дц (эконом образование), потом работал дилером и помощником руководителя, приторговывал, потом увлекся ботами и МО

было много неэффективностей (в том числе технических), когда получалось выносить приличные суммы
Мотивация все-таки заработок?
Ну вроде ни у кого с помощью МО не получается... все в поисках.
Причина обращения: