Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 12
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте! я новичок в машинном обучении и у меня возник вопрос, почему вы все стараетесь предсказать именно направление цены, либо зигзагом либо просто через приращение следующей свечи, в рынке же присутствует много хаоса, нужно в предсказание включать некий коридор в котором цена могла бы "погулять" . Мне кажется что более эффективным было бы брать за целевую результат торгов. Например во время обучения считаем идеальную кривую дохода и целевая будет обозначаться как не отклонение от идеала более чем на 15% например, или другой вариант, считать фактор востановления и чтоб он не падал ниже n , такие целевые будут более гибкими для рыночных данных. И самое интересное как функцию в таком виде реализовать например для того же random forest"а ?
Здравствуйте!
слева это просто типа цена, справа черным обозначена кривая идеального баланса (все что можно было заработать) , зеленым обозначен некий рендж (коридор) от кривой идеал. баланса за который мы не должны выходить в своей торговле, серым обозначен баланс типа реальной торговли)
Так вот суть целевой не прогнозирование цены и целевой в виде вектора 11100001111100 , а нахождение некого состояния в котором серая линия не будет заходить за рамки зеленой
Но как это сделать я сам не понимаю, по этому хочется дискуссии )
Здравствуйте!
слева это просто типа цена, справа черным обозначена кривая идеального баланса (все что можно было заработать) , зеленым обозначен некий рендж (коридор) от кривой идеал. баланса за который мы не должны выходить в своей торговле, серым обозначен баланс типа реальной торговли)
Так вот суть целевой не прогнозирование цены и целевой в виде вектора 11100001111100 , а нахождение некого состояния в котором серая линия не будет заходить за рамки зеленой
Но как это сделать я сам не понимаю, по этому хочется дискуссии )
Угол наклона линии при торговле с ошибками будет меньше идеального. Вы изобразили торговлю серым цветом, где скорее всего увеличением лота осуществляется возврат к запланированному углу.
Не понял )) нет никаких лотов, нету никакой системы которая работает усилено), это рандомно сгенерированая дата.. просто изобразил целевую какая должна работать лучше чем зигзаг по моему скромному мнению конечно, но как такое реализовать не знаю, думал может кто подскажет
Я вас тоже понять не могу.
Ваша серая кривая - это похоже на торговлю с переменным лотом, чтобы всегда возвращаться на линию с высоким углом наклона.
Это как мартин, у которого всегда один угол наклона линии торговли.
В реальности так торговать не реально. При наличии ошибок (убыточных сделок) ваша реальная кривая будет гораздо более ближе к нулю.
Как целевка реализуется тоже не понятно. Такой вид временного ряда возможен только тогда, когда торговля возвращается всегда в плюс после накопления минусов. Это вряд ли возможно заложить в обучение, по крайней мере стандартно.
Да это не система никакая, а иллюстрация ))) нету там никакой торговли.
Извините я наверное плохо излагаю свои мысли
вот код
PRICE <- cumsum(rnorm(200))+1000
par(mfrow=c(1,2))
plot(PRICE,t="l",,lwd=2)
PD <- c(0,diff(PRICE))
BAL <- PD
for (i in 1:length(PD)){
if(BAL[i] < 0) BAL[i] <- BAL[i]/-1
}
BAL <- cumsum(BAL)
lowBAL <- BAL - 50
plot(BAL,t="l",lwd=3)
lines(lowBAL,t="b",col="green")
realBAL <- BAL+rnorm(200,sd = 20)
lines(realBAL,t="l",col="grey")
Давайте начнем сначала, есть стандартная целевая функция это вектор который обозначает направление движения , описать можно зигзагом или просто следующее закрытие свечи, вектор преобразовуют как правило в 1110000111 или -1-1-11111
Так я умею делать, но по моему такие подходы ущербны
Я предлагаю сделать так : пусть алгоритм во время обучения как то имитирует свою торговлю(серый график) и сравнивает с идеальным доходом который мог бы бить (черный график) то есть алгоритм не пытается предсказать следующую цену а просто старается не заходить за зеленую линию. Вот и все что пытался показать на графике.
Вопрос : возможно ли такое реализовать , ведь все алгоритмы которые я видел (neural,RF...) хотят в виде целевой вектор из 11100011
Да это не система никакая, а иллюстрация ))) нету там никакой торговли.
Извините я наверное плохо излагаю свои мысли
вот код
PRICE <- cumsum(rnorm(200))+1000
par(mfrow=c(1,2))
plot(PRICE,t="l",,lwd=2)
PD <- c(0,diff(PRICE))
BAL <- PD
for (i in 1:length(PD)){
if(BAL[i] < 0) BAL[i] <- BAL[i]/-1
}
BAL <- cumsum(BAL)
lowBAL <- BAL - 50
plot(BAL,t="l",lwd=3)
lines(lowBAL,t="b",col="green")
realBAL <- BAL+rnorm(200,sd = 20)
lines(realBAL,t="l",col="grey")
Давайте начнем сначала, есть стандартная целевая функция это вектор который обозначает направление движения , описать можно зигзагом или просто следующее закрытие свечи, вектор преобразовуют как правило в 1110000111 или -1-1-11111
Так я умею делать, но по моему такие подходы ущербны
Я предлагаю сделать так : пусть алгоритм во время обучения как то имитирует свою торговлю(серый график) и сравнивает с идеальным доходом который мог бы бить (черный график) то есть алгоритм не пытается предсказать следующую цену а просто старается не заходить за зеленую линию. Вот и все что пытался показать на графике.
Вопрос : возможно ли такое реализовать , ведь все алгоритмы которые я видел (neural,RF...) хотят в виде целевой вектор из 11100011
Спасибо. Я вас понял сразу. Просто это стандартно не реализуемо.
Возьмем random forest. Вы с этим методом машинного обучения, я предполагаю, знакомы.
Эта штука может работать только одним способом. Если у нас бинарная переменная на выходе, лес решений для каждого из входа просто будет тупо искать область значений, где перекос одного из класса выходной будет статистически больше. И итеративно это делается для всех переменных.
Если вы хотите, чтобы машина учитывала отклонение реальной точности торговли от идеала, нужно, чтобы область решений подбиралась соответственно, а не на основе перекоса в классах. При этом нужно учитывать динамическое изменение отклонения то идеальной торговли, что также не реализуемо стандартно. ДЛя этого нужно машине в динамике подавать данные о совершенной торговли. Для этого нужно заново писать метод. Стандартные средства просто не могут это сделать.
Есть же градиента функции. Для стандартного леса градиент задается своим способом. Если нужно оптимизировать отклонение торговли от идеала, это будет совсем другой градиент. Я как-то не думаю, что лично могу его написать прямо на коленке.