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

 
Elvin Nasirov #:

Не все годы назад были знакомы с машинным обучением. Если ваши сообщения перечитывать, то обсуждения надо искать в этой же теме/ветке?

Видимо, стоит попробовать разобраться во всех 3000 страниц темы, пока она еще не выросла.

Ваша задача это - задача оптимизации , поиск неизвестных параметров

Вот ЕДИНСТВЕННАЯ статья которую вам надо изучить https://www.mql5.com/ru/articles/2225


если вы хотите научить АМО на макс прибыль и мин просадку то:


вам надо

1) созать фитнес функцию ,  функцию которая будет считать  прибыль,убытки  от сигналов торговли

2) любой алгоритм МО который будет генерировать сигналы для торговли , для фитнес функции (п.1)

3) любой алгоритм оптимизации (генетический, рой частиц, отжыг)   - который будет создавать сигналы как таргеты для АМО (п.2)


алгоритм такой

1) АО создает таргет для АМО

2) АМО обучаться на этом таргете

3) АМО создает прогноз сигналов торговли

4) сигналы торговли оцениваються ФФ и выдают результат

5) результат ФФ оцениваеться АО и максимизируеться/минимизируеться дальше и так по кругу пока не получите приемлемый результат


==========

АО - алгоритм оптимизации

АМО - алгоритм машинного обучения

ФФ - фитнес функция

=========


пс. если вы хотите работать с нейронкой а не любым АМО , то там можно сразу  веса изменять средствами АО , без обучения таргету

Самооптимизация экспертов: Эволюционные и генетические алгоритмы
Самооптимизация экспертов: Эволюционные и генетические алгоритмы
  • www.mql5.com
В статье будут рассмотрены основные принципы, заложенные в эволюционных алгоритмах, их разновидности и особенности. На примере простого эксперта с помощью экспериментов покажем, что может дать нашей торговой системе использование оптимизации. Рассмотрим программные пакеты, реализующие генетические, эволюционные и другие виды оптимизации и приведем примеры применения при оптимизации набора предикторов и оптимизации параметров торговой системы.
 
mytarmailS #:

Ваша задача это - задача оптимизации , поиск неизвестных параметров

Вот ЕДИНСТВЕННАЯ статья которую вам надо изучить https://www.mql5.com/ru/articles/2225


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


вам надо

1) созать фитнес функцию ,  функцию которая будет считать  прибыль,убытки  от сигналов торговли

2) любой алгоритм МО который будет генерировать сигналы для торговли , для фитнес функции (п.1)

3) любой алгоритм оптимизации (генетический, рой частиц, отжыг)   - который будет создавать сигналы как таргеты для АМО (п.2)


алгоритм такой

1) АО создает таргет для АМО



АО - алгоритм оптимизации

АМО - алгоритм машинного обучения

ФФ - фитнес функция

А можно какой-либо пример АО? Мне казалось, что поиск учителя - штучная работа и поддается автоматизации.

 
СанСаныч Фоменко #:

А можно какой-либо пример АО? Мне казалось, что поиск учителя - штучная работа и поддается автоматизации.

можно..

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

нужно немного времени

 
mytarmailS #:

можно..

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

нужно немного времени

Для меня очень интересно. У меня поиск учителя долгий и мучительный процесс.

 
mytarmailS #:

Ваша задача это - задача оптимизации , поиск неизвестных параметров

Вот ЕДИНСТВЕННАЯ статья которую вам надо изучить https://www.mql5.com/ru/articles/2225


если вы хотите научить АМО на макс прибыль и мин просадку то:


вам надо

1) созать фитнес функцию ,  функцию которая будет считать  прибыль,убытки  от сигналов торговли

2) любой алгоритм МО который будет генерировать сигналы для торговли , для фитнес функции (п.1)

3) любой алгоритм оптимизации (генетический, рой частиц, отжыг)   - который будет создавать сигналы как таргеты для АМО (п.2)


алгоритм такой

1) АО создает таргет для АМО

2) АМО обучаться на этом таргете

3) АМО создает прогноз сигналов торговли

4) сигналы торговли оцениваються ФФ и выдают результат

5) результат ФФ оцениваеться АО и максимизируеться/минимизируеться дальше и так по кругу пока не получите приемлемый результат


==========

АО - алгоритм оптимизации

АМО - алгоритм машинного обучения

ФФ - фитнес функция

=========


пс. если вы хотите работать с нейронкой а не любым АМО , то там можно сразу  веса изменять средствами АО , без обучения таргету

Спасибо! 

Такая постановка ответа сразу привела к вопросу конкретизации ручной торговли, где упускается четкость и конкретность сигналов, их разнообразия и чрезмерной гибкости. То есть появилась пища для размышления.

 
СанСаныч Фоменко #:

Для меня очень интересно. У меня поиск учителя долгий и мучительный процесс.

Вот код  обучения рендом фореста средствами АО,

фитнес фунция (НАША ЦЕЛЬ)  -  найти красивый/стабильный рост прибыли , а именно максимальная корреляция между динамикой баланса и прямой ростущей линией

# install.packages(c("randomForest","GA"))
library(randomForest)
library(GA)


# создаю фейковые данные для простоты воспроизводимости
price <- cumsum(rnorm(100))
X <- embed(price,dimension = 10)[,10:1]
X <- t(apply(X,1,scale))
price <- tail(price,nrow(X))

# настройка графики
par(mar=c(2,2,2,2))
layout(1:2)

# запускаю генетический алгоритм
# который "придумывает" такой таргет полсе обучения на котором
# АМО даст самый красивый прирост капитала
best_res <- 0
GA <- ga(type = "real-valued",
         fitness = fitness, 
         lower = rep(-5,nrow(X)),
         upper = rep( 5,nrow(X)),
         popSize = 100,
         maxiter = 50,
         run = 20)


Вот код функций по расчету прибыли и ФФ

# простая функция которая считает прибыль ( возможно не верно :)  ) 
count_equity <- function(trade_signal, price)  cumsum(c(diff(price),0)*trade_signal)

# ФФ которая берет выход из АО и обучает АМО
fitness <- function(ga_out){
  
  target <- ga_out
  set.seed(123)
  rf <- randomForest(target~., X, ntree=100)
  pr <- predict(rf,X)
  
  trade_signal <- sign(pr)
  balance <- count_equity(trade_signal = trade_signal,price = price)
  res <- cor(balance, 1:length(balance))
   
  # просто графика, необезательный елемент
  if(res>best_res){
    best_res <<- res
    plot(price,t="l",main="price")
    color <- ifelse(trade_signal==1,3,2)
    points(price,col=color,lwd=5,pch=20)
    plot(balance,t="l",col=4,main="balance")
  }
  return(res)
}



Вот результат , АО нашел такой таргет для АМО , что если торговать его сигналы то получим красивый рост прибыли


 
Elvin Nasirov #:

Спасибо! 

Такая постановка ответа сразу привела к вопросу конкретизации ручной торговли, где упускается четкость и конкретность сигналов, их разнообразия и чрезмерной гибкости. То есть появилась пища для размышления.

Я свою ручную торговлю до сих конкретизировать не могу...

 
mytarmailS #:

Вот код  обучения рендом фореста средствами АО,

фитнес фунция (НАША ЦЕЛЬ)  -  найти красивый/стабильный рост прибыли , а именно максимальная корреляция между динамикой баланса и прямой ростущей линией


Вот код функций по расчету прибыли и ФФ



Вот результат , АО нашел такой таргет для АМО , что если торговать его сигналы то получим красивый рост прибыли


И чо? ) Как это влияет на результат на новых данных? это без фф делается простой разметкой
 
Elvin Nasirov #:

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

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

Удивился, когда прочитал фразу "взять любую с маркета прибыльную ТС". Даже не рассматривал такой вариант, тк думал их там нет.

Да это все какое-то усложненное восприятие. Нужно найти неэффективность. Не можете сами - подсмотрите у других. На маркете еще сигналы с историей есть.
 
Maxim Dmitrievsky #:
И чо? ) это без фф делается простой разметкой

Эсли бы было все так просто то АО и ФФ небыло бы..


Это когда точно извесно что надо и есть понимание как это алгоритмизировать то можно разметкой.

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

все что мы можем описать это хорошо/плохо , это и закладываеться в ФФ.


Вот пример задачи:

 Задача : натренировать такой АМО чтобы он не ошибался в своих прогнозах на новых данных по одному из классов, те по одному из классов запрещено ошибаться вообще..

как такое сделать разметкой?


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