Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 51
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Приветствую!!!! Пользуюсь LibVMR Но видать старой версией, потому как вылетает ошибка "Bad Data" . Я так понимаю что вышла новая версия. Где её можно скачать??? Если это возможно??
Свежачки и сырцы к ним сейчас распространяются через репозиторий BitBucket по ссылке: https://bitbucket.org/jprediction/jprediction/downloads
Название проекта тоже сменилось с libVMR на jPrediction
Не совсем понятно? Вы берёте цены в виде OHLC для паттернов или их какие-то преобразования?
Дело в том, что если взять OHLC, как есть, то похожий паттерн, но отстоящий на 1000 пунктов выше или ниже от сравниваемого будет по евклидову расстоянию отличаться сильнее, чем совершенно не похожий паттерн, но отстоящий на 10 пунктов выше или ниже от сравнивемого. Причём разница будет на два порядка, а соответственно и ошибка сравнения также будет двухпорядковая.
Когда мерял евклидом то все вектора нормализировались и ценрировались
Решение все же было найдено.....
Решение состояло в том что если применить спектральный анализ к текущему вектору (тек. ценам) и разложить его на более простые составляющие то такие составляющие из за своей простой структуры могут быть более легко найдены в истории
Для разложения я использовал метод "гусениа" или "ssa" http://www.milanor.net/blog/wp-content/uploads/2014/07/SingularSpectrumAnalysisWithRssa.pdf
Итак суть осталась прежней, тоже ищем аналоги в истории и смотрим чем они заканчивались, но ищем аналоги не цены а по каждой отдельной спектральной составляющей, потом смотрим чем каждая из соствляющих заканчивалась в истории и соединяем - реконструируем все прогнозы и получаем обычный прогноз
По первым тестам , тема довольно перспективная, если прогнозировать каждую составляющюю по отдельности. Прогноз часто бывает правильный но редко не смещенный..
Черным цветом обозначена одна из текущих составляющих , синим цветом обозначена составляющая - аналог найденая в истории после черной вертикальной линии это уже новые данные неведомы алгоритму - по сути прогноз - как видите довольно таки эффективно
Но как видите всегда есть смещенность в прогнозе да и не всегда он такой хороший естесно , близость между аналогами ищу по старинке через корреляцыю, понимаю что ето один из самых неподходящих способов, потому и хотел заменить какой то алгоритм который бы искал схожести через амплитуду, фазу, частоту. Теперь понимаете что я вообще имел ввиду когда про Фурье говорил?
Dr.Trader
как там ваша нейросеть? натренировалась?
Каким образом?
ну просто перед тем как сравнивать два вектора я скалировал функцией " scale "
scale(x = data , center = TRUE, scale = TRUE )
Каким образом?
Интересно скачал версию 6.0 потому как 5.0 не сохраняет и не создаёт текстовый файл, так вот не понятно почему при тренировке одни показатели ошибок, а в текстовом файле значения совершенно другие???
RNeat? Нет, обучение очень медленное, фитнесс который определяет модель сейчас 0.018, растёт по одной сотой в день. Точность на тренировочных и валидационных данных сейчас 0.52, очень мало, но хотя бы в плюсе и без переобучения.
Оо 52 это уже лучше чем 50 , на сколько я помню в прошлый раз было 0,017 получается одна сотая поднимает точность прогноза на 2% ) , я думаю если сеть достойна внимания то ее лучше на СИ переписать, держите меня в курсе, мне крайне интересно...
Фитнесс может вырасти просто потому что модель улучшила свою топологию и выкинула пару нейронов, при той-же точности.
Насколько я понял по комментариям в коде - это порт с Lua. А Lua это тоже порт, потому что оригинал и так уже был на c++: http://nn.cs.utexas.edu?neat
Порт с порта это неудачно, много ненужных действий, лучше бы автор RNeat взял C++ код за основу, и применил существующие генетические пакеты R для эволюции сети.