Блог им. Feliks

Хорошо пошло обучение нейронных сетей по индексу SP_500

Всем добрый день!

Занимаюсь машинным обучением, нейронными сетями.Очень хорошо пошло прогнозирование по SP_500 по часовикам.

Хорошо пошло обучение нейронных сетей по индексу SP_500

Есть желающие поучаствовать в работе с датасетом и улучшении модели? Слишком широк выбор вариантов дальнейшего развития модели
811 | ★4
39 комментариев
сипи торгуется элементарно, т.к в нем аптренд в 11 лет… можно выкупать любое падение и сдавать выше

попробуй обучить нейросеть на лукойле… вот тогда может и будет толк

ну и на часовиках тестить нельзя
avatar
ves2010, почему нельзя на часовиках?
Феликс Дзержинский, из практики… чтоб гарантированно исключить гэп на открытии из торговли и тестов надо выкинуть первую свечку… выкидывать один час торгов из 6.5 слишком много… т.е. надо тестить на таймфрейме 15 мин и ниже...
более того… надо внимательно смотреть сами свечи… на америке в свечи зачастую включена предторговая и послеторговая сессия… т.е надо чтобы свечи были строго с 9.30 до 16.00
на дневках вообще тестить нельзя совсем… т.к многие бумаги торгуются вне времени торгов, и эти цены включают в дневки...

более того… надо смотреть среднюю сделку… в %… бывает профит есть по тестам, но профит не отбивается никак комисами
avatar
ves2010, что-то мешает торговать не основную сессию?
avatar
Replikant_mih, а смысл? там овердокуя технических ньюансов  
avatar
ves2010, Ну я торговал, кроме пониженной ликвидности ничео особо не помню такого.
avatar
Replikant_mih, а как тебе широкий спред? и переменное количество свечей, что сбивает индюки настроенные на период
avatar
ves2010, ну, широкий спред — производная от ликвидности. А свечи… ну если ты на этом обучился, и при торговли это обучение и используешь, то все остальное должно быть побоку. Если нет — ну тогда да.
avatar
ves2010, надо чтобы свечи были строго с 9.30 до 16.00 — это учел. В датасете именно такие данные.
По коммиссионным согласен, надо в итоге считать. Но это уже последняя стадия, натренируем эту сетку, будем тренировать другую — для поиска оптимального момента и определения стратегии поведения с учетом коммисионных
Феликс Дзержинский, у тя изначально подход неверный… телега впереди лошади… я не могу объяснить в чем стратегическая ошибка но она как бы есть… просто констатирую факт

тебе надо сесть и крепко подумать… как переставить телегу и лошадь

ну как бы предствь что нейросеть учится не торгового бота делать, а дом… и сразу поймешь недостаток своего подхода
avatar
Привет. Я б поучаствовал. Но я пока вожусь с простыми моделями. До нейросеток ещё не добрался).
avatar
 А че на графике? — это приращение факт и прогноз на out_of_sample??
avatar
Replikant_mih, да, именно. На будущих данных. Не всегда так хорошо, но в среднем хорошо. Хочу улучшить, поэтому пришел сюда
мне интересны обучающиеся модели. а на графике что — прогноз или результат на обучающей выборке?
avatar
sis12qw, на тестовой выборке. на данных, которые не использовались во время обучения
Мне интересны нейросети. Готов поучаствовать.
Что необходимо сделать и в какие сроки?
avatar
Александр, ниже расписал все. Если что непонятно — спрашивайте
Феликс, как с вами связаться.
avatar
rinman, пишите на rtf2@mail.ru свой номер, я позвоню
Это out of sample?
avatar
Михаил, именно
cloud.mail.ru/public/5n9a/2LuoibKv7 — вот ссылка на датасет. Загружаете на комп, импортируете в Python командой joblib.load('marked_dataset_for_regression_with_high_average_delta.pkl').

Последний столбец 'class' — и есть таргет, изменение SP&500 по часам. Это целевой показатель, уже сдвинутый назад на час. Это и является прогнозируемым показателем, разница High последующего часа минус (High+Low)/2 текущего часа. Пока что у меня loss='mean_squared_error' получается около 16.
Феликс Дзержинский, то есть по сути вы подглядываете в будущее на величину (Close - (High+Low)/2), что мягко говоря не очень. 
avatar
Михаил, Close вообще не участвует. Точка наблюдения — конец текущего часа. Мы знаем High и Low, и можем вычислить среднюю цену часа. Из будущего часа мы берем High в датасет, чтобы обучить модель. Конечно. После обучения уже не зная High, модель сама его прогнозирует, что вы и видите на картинке.
Феликс Дзержинский, в конце часа вы знаете Сlose, а соответственно и величину (Close - (High+Low)/2). Таргет у вас очень странный. Обычно изменение относительно Close берут в качестве таргета. 
avatar
Михаил, моделируем. Мне кажется мы не понимаем друг друга. Сейчас 20.59 минут 59 секунд. Я знаю (High+Low)/2     для часа который только что закончился. Часа с 20.00 до 20.59.59. Из будущего часа, с 21.00 до 21.59.59 для целей машинного обучения я беру High, который будет таргетом для меня. Это же понятно, мы кормим компьютеру данные, он учится. Потом, после обучения, он уже сам способен мне сказать, в реальной ситуации, какой же High будет в часе, который наступает. Что сложного, ничего сложного не вижу.
И обьясню почему Close нельзя брать. Это фиксация на конкретную минуту, какой-то цены. Даже секунду. Влияние случайности высокое, предсказать трудно.
А вот High — он один для целого часа. Это существенная характеристика временного промежутка. И он легче, намного легче поддается прогнозированию
Феликс Дзержинский, выпрогнозируете high или “разница High последующего часа минус (High+Low)/2”? Если второе, то к концу часа вы знаете часть этой разницы — это очевидный лик. И второй момент — зачем прогнозировать high? Как его потом реально отторговать? Как продать купить примерно по close или open вполне понятно — торгуй в конце часа и получишь близкую величину. А вот как технически продать по high или по (High+Low)/2 не понятно, поэтому это выглядит как прогнозирование ради прогнозирования, а не с целью реально потом совершать какие-то сделки. 
avatar
Михаил, разница High последующего часа минус (High+Low)/2 текущего часа. Текущего! Я ничего не знаю, ликов нет.
Как отторговать? Допустим, в 20.59.59 вы знаете, что High в следующем часе будет выше на 0,5%. Мы просто покупаем сейчас и дожидаемся в следующем часе этих 0,5% для продажи
Феликс Дзержинский, в текущем часе вы знаете close текущего часа, следовательно Close - (High+Low)/2 — значительную составляющую вашего таргета.
А как вы перед этим купили по (High+Low)/2? А если он не вырос на 0,5% — что вы будете делать? При вашем подходе ошибка прогноза ничего не говорит о реальном результате ваших сделок. 
Если же вы прогнозируете close следующего часа относительно close текущего часа, понятно как продавать и покупать по ценам близким к ним и ошибка прогноза будет близко к жизни показывать насколько вы будете ошибаться при совершении этих сделок. 
avatar
Суть в чем. Одна строка — это данные агрегированные по американскому рынку в течение часа. Последний столбец — факт, то насколько высоко забрался HIGH по индексу в течение следующего часа.
То есть если у вас получится хорошо натренировать сеть, то вы сможете прогнозировать изменение SP&500 в течение ближайшего часа. Потом уже можно заняться датасетом по нижней границе LOW.

Предполагается, что вы разбираетесь в способах машинного обучения. Это не только нейросети, там куча всего — xgboost, рандом-форрест и т.п.

Не забывайте про валидацию. Я на валидацию ставил последние 3000 сэмплов, это где-то 2 года наблюдений. Таким образом обеспечиваете имитацию испытания модели в реале
Феликс Дзержинский, Я вынужден Вас огорчить, но машинное обучение неприменимо в том виде, в каком Вы его рассматриваете. Целью любого машинного обучения является прогнозирование (или классификация как вариант прогнозирования). Цена же НЕ является стационарным временным рядом (сигналом). 
https://ru.wikipedia.org/wiki/%D0%A1%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D0%B9_%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81
Ц
итата: «Случайная функция называется стационарной в широком смысле, если её математическое ожидание и дисперсия постоянны, а АКФ зависит только от разности моментов времени, для которых взяты ординаты случайной функции. Понятие ввёл А. Я. Хинчин.».
Поэтому рано или поздно, но Вы сольете :-)
На самом деле машинное обучение и вообще нейросети в трейдинге применяются, но они обучаются анализировать совершенно иные параметры, в число которых цена не входит в принципе.
avatar
agraton, проанализировал этот момент. поэтому в качестве временного ряда берется не цена, а отклонение цены от некой величины. формулу я расписал при постановке задачи, см. выше.
можете взять целевой столбец. он имеет нормальное распределение, типичный колокол. с вполне четким матожиданием и дисперсией
Eugene Logunov, Согласен). Но хз.
avatar
Eugene Logunov, это один из лучших отрывков. В основном похуже, но тоже привлекает внимание. Не зря же я сюда пришел, хочу улучшить
взялся Железный Феликс и за машинное обучение, теперь все наладится)
avatar
Тема эта поднимается здесь уже несколько раз, поэтому повторюсь- прогнозирование high и low следующего часа ( или дня, или другого таймфрейма) не так легко превращается с прибыльную стратегию, несмотря на привлекательность картинок. Примерно в 50% случаев, цена будет недолетать совсем немного до вашего прогноза, и вместо прибыли вы получите убыток, а итоговая прибыль будет чуть хуже случайного подбрасывания монетки. Можете проверить. И да, для прогнозирования этой величины можно использовать более простые методы прогноза, чем нейросеть. Захотите пообсуждать детали- пишите.
avatar

Вот 15 минутки сургутка CNN тупо решение в лоб. По цене закрытия. Если уж и брать, что-то другое, кроме закрытия, то простое среднее min max цены как то математически не очень красиво, должно быть что-то посложнее, ИМХО. Насчет часовиков и дневок согласен, дневки лучше, но где ж их столько взять. Поведение цены меняется с годами, старые данные не пойдут.
А у вас что за сеть? LSTM?
И какую вы помощь по датасету ждете от народа? Я его вообще никак не обрабатывал, ну кроме как к 0-1 привел.

avatar

Читайте на SMART-LAB:
Кто является настоящим конкурентом карт МИР?
Генеральный директор НСПК (оператора платежной системы МИР) Дмитрий Дубынин заявил, что за 10 лет работы этой системы общий объем транзакций с...
Предварительные итоги года на рынке жилья и ипотеки
Аналитический центр ДОМ.РФ подводит предварительные итоги года. Объём продаж жилья по договорам долевого участия (ДДУ) в 2025 г. (в рамках...
Фото
С Новым годом от кманды SFI
Дорогие друзья! Поздравляем вас с наступающим Новым годом! Прошедшие 12 месяцев стали для SFI по-настоящему важными и во многом поворотными....

теги блога Феликс Дзержинский

....все тэги



UPDONW
Новый дизайн