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

 
Aleksey Terentev:
Сеть [64 GRU + 32 GRU + 2 Dense] в задаче классификации по модели OHLC -> Buy/Sell (7000 бар) на ~24 прогоне обучения дает 0.9 - 0.8 точности. И все это секунд за 30.

Что в признаках и ауте?
 
pantural:
Что в признаках и ауте?

"OpenHighLowClose -> Buy/Sell"

update: buy/sell сигнал уже выкладывал в этой ветке.

 
elibrarius:
А как в торговле эти результаты? Каков прирост депозита в % за месяц/год? Если обучать не на 7000 бар, а на 100000?

До торговли дело не дошло. Занят автоматизацией.

Также процесс подбора модели нейро-сети достаточно щепетильный. Нужно учитывать вид активационных функций в слоях, функцию ошибки, метод обучения и правильную предподготовку выхода, а также кучу других нюансов МО. Все обучение может свести каждый сигнал очень быстро к 0 в диапазоне [-1;1].

Поэтому я и не спешу делиться результатами.

 
what mean l2 norm?? - MATLAB Answers - MATLAB Central
  • www.mathworks.com
what mean l2 norm??. Learn more about matlab
 

Спасибо. То что нужно.

 

А кто в R понимает? завтык в первом же примере с загрузкой котировок через quantmod, не могу нарисовать полученные котировки

getSymbols("AAPL", src = "google")
plot(AAPL[, "AAPL.Close"], main = "AAPL")

//
[1] "AAPL"
> plot(AAPL[, "AAPL.Close"], main = "AAPL")
Error in if (on == "years") { : missing value where TRUE/FALSE needed


https://www.r-bloggers.com/an-introduction-to-stock-market-data-analysis-with-r-part-1/

An Introduction to Stock Market Data Analysis with R (Part 1)
An Introduction to Stock Market Data Analysis with R (Part 1)
  • ntguardian
  • www.r-bloggers.com
Around September of 2016 I wrote two articles on using Python for accessing, visualizing, and evaluating trading strategies (see part 1 and part 2). These have been my most popular posts, up until I published my article on learning programming languages (featuring my dad’s story as a programmer), and has been translated into both Russian (which...
 
Maxim Dmitrievsky:

А кто в R понимает? завтык в первом же примере с загрузкой котировок через quantmod, не могу нарисовать полученные котировки

Выполнил код из статьи, всё заработало с первого раза.
Версия R 3.4.2, но не думаю что это особо важно.

 

Есть примета что для обучения классификационной модели нужно отбалансировать число классов, чтоб количество обучающих примеров с классом "1" совпадало с количеством обучающих примеров с классом "2" (а лишние примеры удалить)

Я заметил похожее требование и к некоторым регрессионным моделям, но тут сложнее - число примеров с таргетом 0.001 должно совпадать с кличеством обучающих примеров с таргетом -0.001,
количество примеров с таргетом 0.002 должно совпадать с количеством примеров с таргетом -0.002, итд

Вот скрипт чтоб сделать подобную балансировку - 

#Подготовка таблички для обучения модели, тут рандомные значения
#таргет в колонке 11
trainTable <- cbind(matrix(runif(10000), nrow = 1000, ncol=10), 
                    round(sample(c(-runif(480)*runif(480), runif(520)*runif(520))*0.1), 3))#рандомные значения для таргета, 3 знака после запятой.
                                                                                           #Позитивных значений на 40 больше чем негативных имитируя тренд в исходных ценах.


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

target <- trainTable[,11]
target <- round(target, 3) #округление до определённой точности, тут 3 знака после запятой
targetFactor <- factor(target)
targetFactorLevels <- as.numeric(levels(targetFactor))
balancedIndexes <- c()
for(i in 1:length(targetFactorLevels)){
  idx <- which(target == targetFactorLevels[i])
  idxN <- which(target == -targetFactorLevels[i])
  minLength <- min(length(idx), length(idxN))
  balancedIndexes <- c(balancedIndexes, tail(idx, minLength), tail(idxN, minLength))
}
balancedIndexes <- sort(unique(balancedIndexes))

trainTableBalanced <- trainTable[balancedIndexes, ] #новая табличка на которой можно обучать модель
 

When are wavelets useful forecasters? 

Когда данные показывают высокую волантильность и гэпы, что является типичным в большинстве высокочастотных финансовых временных рядов, прогнозирование становится еще более сложным. Используя высокочастотные данные обменного курса, мы показываем, что вейвлеты, которые устойчивы к высокой волантильности и гэпам, являются полезными прогнозистами в высокочастотных применениях, когда высокая волантильность - доминирующий признак, который влияет на оценку оценки, прогноз зоны или их обоих. Результаты указывают, что разложение временного ряда в гомогенные компоненты, которые затем используются в моделях прогнозирования временного ряда, очень важно. Различные компоненты становятся более полезными, чем другие для различных  данных, связанных с режимом волантильности. Мы рассматриваем широкий спектр линейных и нелинейных моделей временного ряда для прогнозирования высокочастотного ряда приращения обменного курса. Наши результаты указывают, что, когда данные выводят на экран нестандартные признаки с высокой волантильностью, нелинейные модели опережают линейные альтернативы. Однако, когда данные находятся в низких диапазонах волантильности и для оценок и для прогнозов, простые линейные авторегрессивные модели преобладают, несмотря на то, что требуются значительные усилия по удалению шума в данных через вейвлеты.

 
Dr. Trader:

Есть примета что для обучения классификационной модели нужно отбалансировать число классов, чтоб количество обучающих примеров с классом "1" совпадало с количеством обучающих примеров с классом "2" (а лишние примеры удалить)

Я заметил похожее требование и к некоторым регрессионным моделям, но тут сложнее - число примеров с таргетом 0.001 должно совпадать с кличеством обучающих примеров с таргетом -0.001,
количество примеров с таргетом 0.002 должно совпадать с количеством примеров с таргетом -0.002, итд

Вот скрипт чтоб сделать подобную балансировку - 

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