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

 
sibirqk:

Как я понял, авторы не слишком раскрывают сам алгоритм, отделываясь сентенциями вроде:

 

Therefore, the GenericPred method uses two basic rules:

R1: Always endeavour to keep the value of a nonlinear measure as steady as possible during prediction (Fig. 3).

R2: The new value must be chosen from a set of potential values generated from a probability distribution.

The prediction has to be pursued one step at a time because the predicted value in the current step is needed for determining the valid range of change for the next step.


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

На мой взгляд подход чем-то похож на тот который используется в пакете "пророк" в R.  

Посмотрел немного повнимательнее - вижу что несколько ошибся. Они из исходного ряда делают ряд из скользящих нелинейных метрик (пишут про фрактальную размерность и показатели Ляпунова). Этот новый ряд они считают (исходя из практических наблюдений) похожим на СБ. И вот этот ряд они методом типа Монте-Карло размножают в будущем и из получившегося набора берут вариант с наибольшей близостью к исходному.

Секретом остаётся вид конкретного преобразования исходного ряда в ряд из метрик и, что важнее - обратное преобразование.

В целом, выглядит всё это подозрительно (прежде всего, стиль изложения результатов) и не вызывает особого желания дальнейшего изучения вопроса.

 
Aleksey Nikolayev:

Посмотрел немного повнимательнее - вижу что несколько ошибся. Они из исходного ряда делают ряд из скользящих нелинейных метрик (пишут про фрактальную размерность и показатели Ляпунова). Этот новый ряд они считают (исходя из практических наблюдений) похожим на СБ. И вот этот ряд они методом типа Монте-Карло размножают в будущем и из получившегося набора берут вариант с наибольшей близостью к исходному.

Секретом остаётся вид конкретного преобразования исходного ряда в ряд из метрик и, что важнее - обратное преобразование.

В целом, выглядит всё это подозрительно (прежде всего, стиль изложения результатов) и не вызывает особого желания дальнейшего изучения вопроса.

Выглядит как какой-то тошнотворный кал, если перефразировать )

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

 
Aleksey Nikolayev:

Секретом остаётся вид конкретного преобразования исходного ряда в ряд из метрик и, что важнее - обратное преобразование.

Код же есть!

 
Aleksey Nikolayev:

Ну, в сервера ДЦ и ECN нас не пускают) Приходится самим всё выдумывать)

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

 

статья 2014 года. Я точно читал её русский перевод или изложение в труде какого-то популярного "трейдера-учителя".

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

 

Тема МО скатилась до уровня ЦОС и Арим, прикольно

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

пиши исчо про синусойды и проч.
 
mytarmailS:

Код же есть!

Я не знаю что было с автором статьи когда он писал код в третьей части, но код был "сломан" в трех местах, жесть....

Я поправил 

library(quantmod)
library(fractaldim)


getSymbols("SPY",src="yahoo", from="2019-01-01")


N <- 10  # Predict the last N bars

mainData <- SPY$SPY.Close



colnames(mainData) <- c("data")
endingIndex <- length(mainData$data)-(N+1)

TEST <- mainData[1:endingIndex]
total_error <- 0
error_per_prediction <- matrix(ncol = 1,nrow = 0)

#These are the fractal dimension calculation parameters
#see the fractaldim library reference for more info

method <- "rodogram"
Sm <- as.data.frame(TEST, row.names = NULL)
delta <- c()

# calculate delta between consecutive Sm values to use as guesses
for(j in 2:length(Sm$data)){
  delta <- c(delta, (Sm$data[j]-Sm$data[j-1])/Sm$data[j-1])
}

Sm_guesses <- delta

#do 100 predictions of next values in Sm
for(i in 1:N){
  
  #update fractal dimension used as reference
  V_Reference <- fd.estimate(Sm$data, method=method)$fd
  minDifference = 1000000
  
  # check the fractal dimension of Sm plus each different guess and
  # choose the value with the least difference with the reference
  for(j in 1:length(Sm_guesses)){
    
    new_Sm <- rbind(Sm, Sm_guesses[j]*Sm$data[length(Sm$data)]+Sm$data[length(Sm$data)])
    new_V_Reference <- fd.estimate(new_Sm$data, method=method)$fd
    
    if (abs(new_V_Reference - V_Reference) < minDifference ){
        Sm_prediction <- Sm$data[length(Sm$data)]+Sm_guesses[j]*Sm$data[length(Sm$data)]
        minDifference <- abs(new_V_Reference - V_Reference)
    }
  }
  
  print(i)
  #add prediction to Sm
  Sm <- rbind(Sm, Sm_prediction)
 
 
}

id <- endingIndex:(endingIndex+N)

pred <- Sm$data[id]
real <- as.data.frame(mainData$data[id], row.names = NULL)

plot(pred, type="l",col=2,ylim = range(pred,real),lty=3)
lines(real,lwd=2)

играйтесь

 
Maxim Dmitrievsky:

Тема МО скатилась до уровня ЦОС ......

 Когда мало знаешь, кругом одни чудеса...

 
mytarmailS:

Идея в том что рынок можно описать всего двумя синусоидами + тренд линейный или тоже синусода

У синусоид должны быть правильные частоты относительно друг друга, чтобы получилась классическая елиотовская модель 5-3-5... и так по кругу

Тогда и все фигуры ТА показывают себя , голова плечи , двойная вершина итп...   И нету тут никакой магии

видео  - смещаю фазы в гармониках   https://radikal.ru/video/oVpWCd1Q1pA

Если найти способ перенести цены в такой же вид, (на четких параметрах) то успех практически гарантирован


Вот еще круче, уже с трендом, четко видна 3-5 структура..

Если правильно описать тренд, то можно вообще без остальных синусоид))

Вообще - вы серьёзно думаете что двумя синусоидами - т.е. функциями, не меняющими своих параметров, можно описать РЫНОК?

Не какой то участок графика выбранный произвольно или не очень, а именно РЫНОК? Т.е. на всём протяжении графика рынка, ну хотя бы 10 лет, можно описать двумя синусоидами?

 
Aleksey Mavrin:

1) Вообще - вы серьёзно думаете что двумя синусоидами - т.е. функциями, не меняющими своих параметров, можно описать РЫНОК?

2) Не какой то участок графика выбранный произвольно или не очень, а именно РЫНОК? Т.е. на всём протяжении графика рынка, ну хотя бы 10 лет, можно описать двумя синусоидами?

1) нет

2) нет

Я о другом говорил, все остальное ваше.

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