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

 
mytarmailS:

Помогите пожалуйста разобраться...

что за хрень? все же вроди верно, баг какой что ли?

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

Ниже пример получения (один из возможных!) того, что Вам нужно. Хотя и не понятно зачем Вам это? Или я не понял вопрос?

X <- rep(0,1000)
Y <- rep(999,100)
dat <- sample(c(X, Y))
table(dat)
0  999
1000  100
#Возьмем последние 100 значения вектора dat
s <-tail(dat,100)
# Определим индексы этого куска
# в которых Значения не = 0
which(s!=0)
[1]  2  6  9 11 19 20 21 35 36 43 51 59 80
[14] 90 98
# Проверим визуально
> s
[1]   0 999   0   0   0 999   0   0 999   0
[11] 999   0   0   0   0   0   0   0 999 999
[21] 999   0   0   0   0   0   0   0   0   0
[31]   0   0   0   0 999 999   0   0   0   0
[41]   0   0 999   0   0   0   0   0   0   0
[51] 999   0   0   0   0   0   0   0 999   0
[61]   0   0   0   0   0   0   0   0   0   0
[71]   0   0   0   0   0   0   0   0   0 999
[81]   0   0   0   0   0   0   0   0   0 999
[91]   0   0   0   0   0   0   0 999   0   0
# Запишем все это красиво
require(magrittr)
# Преобразуем вектор в матрицу
d <- matrix(dat, ncol = 100, byrow = T)%>%
# пройдемся по строкам и определим индексы
# ненулевых значений  
  apply(., 1, function(x) which(x != 0))%>%
# пройдемся по списку и отберем последние
# три индекса
  lapply(., function(x) tail(x, 3))%>%
# преобразуем список в вектор
  unlist()%>%
# преобразуем вектор в матрицу
  
matrix(., ncol = 3, byrow = T)
> d
[,1] [,2] [,3]
[1,]   64   72   93
[2,]   66   79   84
[3,]   73   87   92
[4,]   62   85  100
[5,]   94   97   98
[6,]   83   93   94
[7,]   52   65   74
[8,]   63   70   99
[9,]   61   62   79
[10,]   75   76   98
[11,]   80   90   98
 
Vladimir Perervenko:
Ниже пример получения (один из возможных!) того, что Вам нужно. Хотя и не понятно зачем Вам это? Или я не понял вопрос?

"999" это уровень поддержки или сопротивления, в общем не важно , просто "уровень"

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

0 999   0   0   0 999   0   0 999   0

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

вот как бы и вся суть. :) 

 

Часть постов была удалена...
Повторяю к Andrey Dik, который хвастался своими "кодами":

 

Сделай этот челлендж плз - https://numer.ai/

Результат R, собранный из "кубиков" (стандартных функций и библиотек) = 0.69121 https://numer.ai/ai/dr_tr
Маловато, но выше среднего,
и учитывая что такую модель любой школьник за полчаса по инструкции сможет собрать из кубиков и обучить - результат достойный.

 

Хвастаться и учить все могут... Этот результат скажет о человеке гораздо больше.

 
Dr.Trader:

Часть постов была удалена...
Повторяю к Andrey Dik, который хвастался своими "кодами":

 

Сделай этот челлендж плз - https://numer.ai/

Результат R, собранный из "кубиков" (стандартных функций и библиотек) = 0.69121 https://numer.ai/ai/dr_tr
Маловато, но выше среднего,
и учитывая что такую модель любой школьник за полчаса по инструкции сможет собрать из кубиков и обучить - результат достойный.

 

Хвастаться и учить все могут... Этот результат скажет о человеке гораздо больше.

Так и продолжаете "тыкать"?

С чего Вы взяли, что я буду вестись на дурацике "а слабо?" Какой для этого у меня интерес?

Я не хвастался своими кодами, а констатировал факт. Генетический алгоритм из статьи (но больше его модификации) реально используют в своих проектах тысячи людей (причем совершенно бесплатно). Обращаются ко мне, просят встроить если у них не получается в их проекты. Это было парированием на выпад типа "ты троль и нихрена не сделал", а не хвастовство.

 

По ленте новостей получил информацию по Random Forests for Survival, Regression and Classification (RF-SRC). Пакет называется randomForestsSRC. 

Случайный лес для идеологии дожития - Survival.

Посмотрел, что такое вообще "дожитие".

В нашей идеологии, например, "дожитие" - это прибыль в 100 пипсов. В медицине, где применяются такие модели - это смерть

Сама модель требует переменной "время до дожития". В качестве такой переменной напрашивается количество баров до достижения в моем примере 100 пипсов.

Строим учителя для модели.

ЗЗ дает развороты. Плечи помечаем ноль и единица.

В моделях дожития необходима вторая переменная - время дожития 

В параметре ЗЗ устанавливаем минимальную прибыль в пипсах.

Далее идем назад и формируем номера баров до этого разворота. Если ЗЗ развернулся позже своего параметра, то все бары, которые нам гарантируют прибыль помечаем одинаково. Это время дожития. Получается вектор следующего вида:

1,1,1,..1,2,3,4... n

Номер бара "n" соответствует развороту ЗЗ. А от 1 до n дает прибыль, которую мы установили в качестве параметра ЗЗ.


ПС.

Имеется огромное количество моделей дожития Survival. Лично я не обращал на них внимания, так как применяются в медицине. Хотя используемые в этих моделях понятия "помер", "вылечился" очень хорошо интерпретируются в трейдинге как тэйкпрофит, стоплосс, просадка, т.е. некоторые граничные состояния, при возникновении которых следуют торговые приказы.


 
Dr.Trader:

Часть постов была удалена...
Повторяю к Andrey Dik, который хвастался своими "кодами":

 

Сделай этот челлендж плз - https://numer.ai/

Результат R, собранный из "кубиков" (стандартных функций и библиотек) = 0.69121 https://numer.ai/ai/dr_tr
Маловато, но выше среднего,
и учитывая что такую модель любой школьник за полчаса по инструкции сможет собрать из кубиков и обучить - результат достойный.

 

Хвастаться и учить все могут... Этот результат скажет о человеке гораздо больше.

ML battle gotAI тут у парней 0.69033 и они стыдятся этого
 
mytarmailS:

"999" это уровень поддержки или сопротивления, в общем не важно , просто "уровень"

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

0 999   0   0   0 999   0   0 999   0

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

вот как бы и вся суть. :) 

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

Ааа, ну это нужно немного изменить. Использовать скользящее окно шириной 100. 

 
lucky_teapot:
ML battle gotAI тут у парней 0.69033 и они стыдятся этого

Интересная ветка,спасибо, особенно товарищ "NO"

Vladimir Perervenko:

 уже переделал, спасибо

 

Случайно посмотрел профиль lucky_teapot, там была тема на форуме, в ней ссылка на статью. Мне кажется всё это перенесено с форума mql4.com, который я почти не изучал, спасибо MetaQuotes если это действительно перенесли это оттуда.
Статье почти 9 лет, а увидел кучу полезного что не грех и сейчас попробовать. Я кажется даже понял про мерное лаговое пространство, про которое в этой теме Алексей говорил уже пару раз.
Сама статья, считаю очень полезным - https://www.mql5.com/ru/articles/1506 

Все лекции этого курса, тоже интересно - http://www.intuit.ru/studies/courses/2255/139/info

 
Dr.Trader:

Случайно посмотрел профиль lucky_teapot, там была тема на форуме, в ней ссылка на статью. Мне кажется всё это перенесено с форума mql4.com, который я почти не изучал, спасибо MetaQuotes если это действительно перенесли это оттуда.
Статье почти 9 лет, а увидел кучу полезного что не грех и сейчас попробовать. Я кажется даже понял про мерное лаговое пространство, про которое в этой теме Алексей говорил уже пару раз.
Сама статья, считаю очень полезным - https://www.mql5.com/ru/articles/1506 

Все лекции этого курса, тоже интересно - http://www.intuit.ru/studies/courses/2255/139/info

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

В то время время статья читалась с огромным интересом. Сегодня немного режет слух - "игра", "угадали". Много математики, академично как то, но это детали конечно. Главное для себя с тех пор - на входе только индикаторы, стандартные метрики не применять, только классификация и динамическое определение объема лотов.

В то время не так много было пакетов для нейросетей (например FANN ), а уж увязать их с МТ4 было приключением. Сейчас конечно выбор программ намного богаче. Только успевай осваивать. 

Удачи