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

Rorschach:

Можно для началя пройти тест на случайность

Не пройдет, явно ведь корреляция между приращениями будет.

[Удален]
Rorschach:

Можно для началя пройти тест на случайность

Не нравятся мне всякие шарпы.

https://ru.qaz.wiki/wiki/Randomness_tests 

В данном случае "пройти тест на случайность" -- это, пардон, полная чушь, бессмыслица.

Тесты на случайность - Randomness tests - qaz.wiki
  • ru.qaz.wiki
Тестирование псевдослучайных последовательностей (или тесты на случайность ), в оценке данных, которые используются для анализа распределения набора данных , чтобы увидеть , если она может быть описана как случайная (patternless). В стохастическом моделировании , как и в некоторых компьютерных моделированиях , ожидаемая случайность...
Rorschach:

Мне эти картинки не дают покоя

Вход 2 раза в неделю в определенный час. Счета не копеешные.

А если что-то пошло не так, то усреднение с лотом х10, судя по свисающим соплям?

Rorschach:

Покупаем в определенный день недели и определенный час с разными СЛ и ТП. За 10 лет есть системы в плюсе, где прибыль в несколько раз больше максимальной просадки.

Такую же систему гонял окном по году и по месяцу. Видно, что некоторые сочетания параметров появлются чаще других.


Вопрос знатокам: Уважаемые знатоки, хочу "научно" доказать значимость результата. Для этого используют закон больших чисел и 4*ско. Можно ли это использовать для ТС с неравными СЛ и ТП, и сколько сделок нужно?

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

Пусть доходность каждой сделки имеет стандартное нормальное распределение (нулевое среднее и единичная дисперсия). Число разных серий сделок - 120 = 24 часа * 5 рабочих дней. В каждой серии 150 сделок - около трёх лет. Код в R:

nw <- 150
nts <- 120
bst <- rep(0, nw)
for (i in 1:nts) {
  tst <- rnorm(nw)
  if (mean(tst) > mean(bst)) bst <- tst
}

mean(bst)
plot(cumsum(bst), type = 'l')

результат:

среднее лучшего прохода = 0.3418549

эквити лучшего прохода:

эквити

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

Все графики в этой ветке начинаются в левом нижнем углу, а заканчиваются в правом верхнем ))
Шоб я так жил...
Andrey Khatimlianskii:

А если что-то пошло не так, то усреднение с лотом х10, судя по свисающим соплям?

Около того. Там много к чему можно придраться, к автору, стейту от брокера, отчету тестера.

Evgeny Dyuka:
Все графики в этой ветке начинаются в левом нижнем углу, а заканчиваются в правом верхнем ))
Шоб я так жил...

нет не все)

Я так делал, даже описывал это тут..

Только я пошел еще дальше..

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

Это все по мотивам МГУА самоорганизация или мета признаки из современного..


За ссылку спасибо, классный малый, весело читать ))

Когда нужно описать экстремум в более человеческой форме чем четкий и не очень реалистичный зигзаг..

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

Решения такое : делаем шаблон экстремума и смотрим корреляцию текущей цены и шаблона..

код на самом лучшем в мире языке )

y <- c(1:10,9:0)
x <- cumsum(rnorm(length(y)))

ccor <- cor(y,x)

layout(1:2)
plot(x,t="l",main = paste("corelation",round(ccor,2)))
plot(y,t="l",main ="шаблон екстремума")

Шаблон может быть любой, хоть тренд хоть что, фантазируйте..  


Вот так выглядит это на графике посчитана корреляция в скользящем окне, с сигнальными линиями -0,7 и 0,7


Как по мне , очень даже по человечески определяет экстремумы, так же фильтрует малозначимые от значимых

Далее можно пробовать тренировать регрессионную модель  и смотреть что будет

xx <- cumsum(rnorm(100))
layout(1:2)
plot(xx,t="l")
cor.vec <- rep(NA, length(xx))
for(i in 10:(length(xx)-10)){
  ii <- (i-9):(i+10)
  cor.vec[i] <- cor(xx[ii] , y)}
plot(cor.vec,t="l",col=4)
abline(h=c(-0.7,0.7),col=2)