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

 
без привязки к жизни или к ФА ТА сложных систем только в стабильных условиях может работать. 
 
mytarmailS #:
Почему? 

Мало значимых реальных данных.

Зы. генеря данные со случайным окружением создается впечатление их удлинения. Это ошибка. Данных скока есть стока и есть. 211 баров значит 211 и не больше.

 

Привет!

Истина где-то рядом ... (Фокс Малдер "Секретные материалы")

Вы явно близки к цели, надо еще поднажать.

 
Aleksey Nikolayev #:

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

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

Aleksey Nikolayev #:

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

Мне просто нужен инструмент с точной метрикой для оценки тенденции/распределения/типа волн во времени для выявления внутри них какой либо тенденции. Что это за тенденции, к примеру:

- Если долго был положительный исход после появления паттерна, то более вероятен негативный исход при появлении нового паттерна;

- Исход распределен равноверно на всех участках выборки (как делить на участки правильно?);

- Если долго был отрицательный исход по паттернам, то вероятней наступление положительного исхода;

- Если давно не было паттерна, то при его появлении будет положительный/отрицательный исход.

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

 
Aleksey Vyazmikin #:

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

Мне просто нужен инструмент с точной метрикой для оценки тенденции/распределения/типа волн во времени для выявления внутри них какой либо тенденции. Что это за тенденции, к примеру:

- Если долго был положительный исход после появления паттерна, то более вероятен негативный исход при появлении нового паттерна;

- Исход распределен равноверно на всех участках выборки (как делить на участки правильно?);

- Если долго был отрицательный исход по паттернам, то вероятней наступление положительного исхода;

- Если давно не было паттерна, то при его появлении будет положительный/отрицательный исход.

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

Самое простое что можно придумать -- статистика, которая считается в каком-нибудь серийном тесте. В трейдинге это обычно упоминается в контексте поиска зависимости результата сделки от результата предыдущей. Если какая-либо зависимость/серийность заметна, то можно пытаться изучать её структуру. Здесь, наверное, имеет смысл смотреть в сторону марковских цепей и использовать как метрики какие-нибудь функции от их вероятностных матриц.

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

 
Aleksey Nikolayev #:

Самое простое что можно придумать -- статистика, которая считается в каком-нибудь серийном тесте. В трейдинге это обычно упоминается в контексте поиска зависимости результата сделки от результата предыдущей. Если какая-либо зависимость/серийность заметна, то можно пытаться изучать её структуру. Здесь, наверное, имеет смысл смотреть в сторону марковских цепей и использовать как метрики какие-нибудь функции от их вероятностных матриц.

Немного подробнее про марковские цепи в данном контексте.

Если речь просто про серийность, то можно ввести два состояния + и -, которые обозначают качество реализации паттерна. Соответственно, есть четыре возможных варианта перехода от одного паттерна к последующему: "+"->"-",  "+"->"+",  "-"->"+",  "-"->"-". Переходам соответствуют четыре вероятности (из которых независимы только две), которые образуют вероятностную матрицу данной цепи.

Если же речь про учёт длины серий, то состояния придётся усложнить. Например, это могут быть пары  (+,n) и (-,n), где, помимо качества реализации паттерна, присутствует n - номер паттерна в содержащей его серии. Состояний получается уже потенциально бесконечное количество, но возможных переходов (с ненулевой вероятностью) также четыре:   (+,n)->(+,n+1), (+,n)->(-,1), (-,n)->(+,1), (-,n)->(-,n+1). Также окажется четыре вероятности (с двумя независимыми). Разница в том, что теперь появляется (или не появляется) зависимость этих вероятностей от длины серии n. Можно попробовать выразить эту зависимость через какой-либо коэффициент и использовать его в качестве искомой метрики.

 

Добрый день! Шалом! Найрамдал!

Вы тут все высшие математики как вижу.

Значит получится у нас.

 
Почему вы не изучаете интегральность рынка?
 
Alexander Ivanov #:
Почему вы не изучаете интегральность рынка?
Почему вы не изучаете дифиринцыальность рынка? Почему вы не изучаете дисперсность рынка? Почему вы не изучаете спектральность рынка? Почему вы.......  
Несёте ахинею??? 
 
                                А что мы прогнозируем на самом деле?

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

например, построим какую то простую тенденцию в виде синусоиды которой подчиняеться(в нашей модели) цена , назовем ее "trend"

par(mar=c(2,2,2,2))
my.sin <- function(ve,a,f,p)    a*sin(f*ve+p)
trend <- my.sin(ve = 1:100,a = 1,f = 0.05,p = 1)+100
plot(trend,t="l")

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

А теперт представим что к "нам на рынок" пришел какой то сильный рыночный покупатель и какое то время делал сильные вливания в в "наш рынок"

layout(1:2, heights = c(10,3))
plot(trend,t="l",lty=2) 
lines(trend+buy)
plot(buy,t="l",col=3,lwd=2)

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

Теперь давайте представим что по цене скажем 99.2 кто то поставил крупный лимитник и выкупает все что ему дают

buy_limit <- trend
for(i in seq_along(trend)) if(buy_limit[i]<=99.2)  buy_limit[i] <- 99.2
layout(1:1)
plot(trend,t="l")
lines(buy_limit+buy,lty=2)
segments(10,99.2,100,99.2,lty=2,col=3)

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

plot(trend,t="l",col=8,lty=2)
lines(buy_limit + buy ,t="l")

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

noise <- rnorm(100,sd = 0.05)
plot(trend,t="l",col=8,lty=2)
lines(buy_limit+buy+noise)


Вот, как то так можно смотреть на рынок, как на сложнжый процесс..

А теперь интересно поразмышлять. Когда мы прогнозируем цену, что именно мы прогнозируем?   тенденцию? рыночного покупателя? лимитного покупателя? шум? :) и стоит ли прогнозировать это все вместе?