Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 115
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вы случайно не клерк в брокерской канторе старого образца?
Просветите пожалуйста "как надо", полагаю Ваш "секретный метод" это торговать машки(рандом) и удваиваться при проигрыше, так?)))
На комиссию жить придется господа, только на комиссию...
Создание комитета, и тестирование:
Есть проблема в том что оригинальные классы типа фактор, а результат в матрице конвертируется в соответствующие факторам порядковые номера. Поэтому в конце сравнение идёт через as.numberic().
Что бы всё работало нормально с факторами, нужно predictionMatrix создавать как data.frame, но после этого у меня функция rbind выдавала варнинги, нужно что-то ещё менять, я не разбирался что там не так.
Несколько мыслей по коду:
1. Не нужно применять конструкцию for() без крайней необходимости. Есть чудесная альтернатива foreach() которая кроме высокой скорости выполнения позволяет распараллелить вычисления между доступными ядрами.
2. Ансамбль моделей имеет смысл и дает результат только если модели имеют значительные отличия. Два варианта: один набор данных - разные модели (RF, DT, SVM); однв модель - разные наборы данных. Пример по последнему варианту ниже
Выбираем модели с лучшими показателями и дальше работаем с ними.
Удачи
Несколько мыслей по коду:
1. Не нужно применять конструкцию for() без крайней необходимости. Есть чудесная альтернатива foreach() которая кроме высокой скорости выполнения позволяет распараллелить вычисления между доступными ядрами.
2. Ансамбль моделей имеет смысл и дает результат только если модели имеют значительные отличия. Два варианта: один набор данных - разные модели (RF, DT, SVM); однв модель - разные наборы данных. Пример по последнему варианту ниже
Выбираем модели с лучшими показателями и дальше работаем с ними.
Удачи
Выбираем модели с лучшими показателями и дальше работаем с ними.
Вот тут и кроется беда.
А лучшие показатели на каких данных посчитаны?
Почему спрашиваю, потому что вконты вовсю пытаются понять, как выбрать модель (из множества моделей), используя данные обучения и тестирования. А тут у вас так прямо: берем лучшие показатели и работаем с ними.
Вот тут и кроется беда.
А лучшие показатели на каких данных посчитаны?
Почему спрашиваю, потому что вконты вовсю пытаются понять, как выбрать модель (из множества моделей), используя данные обучения и тестирования. А тут у вас так прямо: берем лучшие показатели и работаем с ними.
Исходный набор делится на train/test стратифицировано. На train обучаем на тест соответственно тестируем. Неужели из кода непонятно?
Удачи
Хотелось бы видеть Вас почаще. Не пропадайте.
Исходный набор делится на train/test стратифицировано. На train обучаем на тест соответственно тестируем. Неужели из кода непонятно?
Удачи
Попробую rminer::holdout, спасибо за пример. Вообще, из опыта, если подбирать модель и её параметры так чтобы получить лучший результат на тестовой выборке - то модель в итоге будет показывать действительно хороший результат на тестовой выборке. Но при этом результат обычно очень низок на новых данных. Я говорю конкретно о данных с форекса, в других областях это есть вполне нормальный подход. Не надеюсь что rminer::holdout для форекса что-то кардинально изменит.
то модель в итоге будет показывать действительно хороший результат на тестовой выборке. Но при этом результат обычно очень низок на новых данных. Я говорю конкретно о данных с форекса,
Рынок ходит против своей же статистики, это теория которую я подтвердил практикой, это единственная известная мне теория которая дает ответы на все вопросы начиная от того почему модель не работает на новых данных и заканчивая почему вообще все теряют деньги на рынке...
почему вам так сложно это принять?
неужели багаж старых знаний и привычек на столько сильно подавляет восприятие новой информации?
зачем так сильно концентрироваться на модели если разница в производительности между моделями в пределах от 0,5% до 5%
никакая модель тут не поможет ведь суть в самих данных
уже не раз кидал эту картинку, но тем не менее.....
Всмотритесь! это разница кумулятивных прогнозов на бай и на сел от двух сетей cum(buy.signal) - cum(sell.signal), в идеале если наша модель хороша то синий график должен коррелировать с ценой, это значит что сеть хорошо понимает данные и адекватно на них реагирует, по факту что мы видим????????
Нельзя сказать что модель не понимает данные, ведь корреляция хоть и обратная но структура идентичная, но с направлением беда, те рынок ходит против прогнозов те против статистики на которой сеть обучилась в прошлом...
А теперь скажите мне какая модель справиться с этим? какая кросвалидацыя тут поможет? любое обучение модели с последующей проверкой на out of sample (новых данных) будет ничто иное как подгонка модели которая хорошо работает на out of sample и не более того.. И вы при тренировке моделей сами это постоянно видите, что на абсолютно новых данных модель всегда сливает, ну видите же??? согласитесь!! Я вам даю ответ почему так происходит
А это график с данными на которых проходило само обучение, или тут только тест на новых данных? Если нарисовать график для обоих периодов времени сразу, и для тренировочного, и для тестового, то на первой (тренировочной) части данных будет полное совпадение синего и серого графика, а с началом новых данных - произойдёт резкий переход в обратную корреляцию?
Если всё было бы так просто, то достаточно обучить любую модель, и просто инвертировать её предсказания. Это не работает к сожалению.
Обучить модель дающую 0% точности на новых данных так-же сложно как и добиться точности 100%. По дефолту, например подбрасывая монетку точность будет 50%, и уйти на пару десятков процентов в любую сторону это задача одинаковой сложности. Проблема не в том что модели дают противоположный результат, а в том что на каких-то барах результат будет правильный, на каких-то других - неправильный, и всё это рандомно и без возможности отфильтровать только правильные результаты.
И почему вы от прогноза B отнимаете прогноз S? Может быть стоит делать наоборот, S-B? Тогда и корреляция внезапно станет правильной.