Обсуждение статьи "Нейросети в трейдинге: Вероятностное прогнозирование временных рядов (Окончание)"
I've been having a few issues VAE.mqh and have found the following works around the issue quite well.
bool CVAE::calcInputGradients(CNeuronBaseOCL *NeuronOCL) { if(!OpenCL || !NeuronOCL) return false; //--- if(!OpenCL.SetArgumentBuffer(def_k_VAECalcHiddenGradient, def_k_vaehg_input, NeuronOCL.getOutput().GetIndex())) return false; if(!OpenCL.SetArgumentBuffer(def_k_VAECalcHiddenGradient, def_k_vaehg_inp_grad, NeuronOCL.getGradient().GetIndex())) return false; if(!OpenCL.SetArgumentBuffer(def_k_VAECalcHiddenGradient, def_k_vaehg_random, m_cRandom.GetIndex())) return false; if(!OpenCL.SetArgumentBuffer(def_k_VAECalcHiddenGradient, def_k_vaehg_gradient, Gradient.GetIndex())) return false; if(!OpenCL.SetArgument(def_k_VAECalcHiddenGradient, def_k_vaehg_kld_mult, m_fKLD_Mult)) return false; // Calculate proper work sizes uint neurons_count = (uint)Neurons(); uint local_size = 64; // or 32, 128, 256 depending on your GPU // Round up global size to be divisible by local size uint global_size = ((neurons_count + local_size - 1) / local_size) * local_size; uint work_offset[] = {0}; uint work_size[] = {global_size}; uint local_work_size[] = {local_size}; if(!OpenCL.Execute(def_k_VAECalcHiddenGradient, 1, work_offset, work_size, local_work_size)) return false; //--- return true; }
我也尝试了相同的测试路径,先是使用Study通过历史数据学习了1000000次,生成了相关的nnw文件之后。采用StudyOnline学习一年的数据(这个时候是没有任何收入的,10000美金的账户很快就没钱了,运行结束之后更新了部分的nnw文件)。最后使用Test测试和StudyOnline的结果基本一致(没有任何盈利)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Опубликована статья Нейросети в трейдинге: Вероятностное прогнозирование временных рядов (Окончание):
Приглашаем вас познакомиться с фреймворком K²VAE и вариантом интеграции предложенных подходов в торговую систему. Вы узнаете, как гибридный подход Koopman–Kalman–VAE помогает строить адаптивные и интерпретируемые модели. А в завершении статьи представлены практические результаты использования реализованных решений.
Как уже упоминалось, обучение модели осуществляется в два последовательных этапа. Сначала мы провели офлайн-обучение на 15-летней истории пары EURUSD с таймфреймом H1. Этот массив данных охватывает все типы рыночных ситуаций: от длительных боковиков до резких трендов, от спокойных периодов до всплесков волатильности. Благодаря этому, модель смогла изучить разнообразие рыночного поведения. Энкодер научился выделять ключевые закономерности и преобразовывать состояние рынка в компактное, но информативное представление, которое стало основой для принятия решений Агентом. Актёр же, используя обратную связь от Критика и Режиссёра, формировал устойчивую стратегию, способную эффективно работать в разных условиях.
Далее последовал второй этап — онлайн-обучение на данных 2024 года, организованному в тестере стратегий MetaTrader 5. Здесь модель работала в режиме, приближенном к реальному времени, анализируя рынок свеча за свечой. Она сталкивалась с шумами, случайными колебаниями и искажениями, характерными для живого рынка. Такой подход позволил не просто дообучить модель, но и адаптировать её поведение к реальной динамике, улучшить стратегию и повысить устойчивость при неопределённости.
По завершении обучения, мы провели тестирование на новых данных — котировках за Январь–Март 2025 года, с сохранением всех параметров, используемых при обучении. Результаты тестирования приведены ниже.
Результаты тестирования показывают, что модель продемонстрировала положительную прибыль на выбранном историческом периоде. Общий чистый доход составил $821.90 при начальном депозите $100.0, что говорит о росте капитала. При этом следует отметить, что коэффициент прибыльности (Profit Factor) находится на уровне 1.06 — это указывает на незначительное превосходство прибыли над убытками.
Автор: Dmitriy Gizlyk