Нейросети в трейдинге: Принятие торговых решений с учётом неопределенности (UncAD)
Введение
Финансовые рынки традиционно рассматриваются как задача прогнозирования временных рядов. Большинство существующих торговых систем сосредоточено на поиске направления движения цены, оценке вероятности роста или снижения инструмента или выявлении локальных закономерностей в исторических данных. Однако практическая работа на рынке показывает, что сама по себе точность прогноза далеко не всегда определяет устойчивость торговой системы. Даже корректно распознанное направление движения может сопровождаться разрушительным ростом волатильности, резким ухудшением ликвидности, ценовыми разрывами или полной деградацией рыночной структуры. В результате ключевой проблемой алгоритмического трейдинга становится не столько прогноз цены, сколько принятие устойчивых торговых решений в условиях постоянно изменяющейся и неопределенной рыночной среды.
Ситуация дополнительно осложняется тем, что финансовый рынок представляет собой нестационарную систему с непрерывно изменяющимися внутренними взаимосвязями. Рыночные режимы сменяют друг друга, корреляции между инструментами распадаются, характер волатильности может изменяться скачкообразно, а ранее устойчивые статистические зависимости быстро теряют актуальность. В таких условиях классические модели прогнозирования начинают демонстрировать нестабильность, поскольку рассматривают исторические данные преимущественно как последовательность наблюдений, не учитывая степень надежности самой рыночной среды. На практике это приводит к появлению торговых решений, формально обладающих высокой ожидаемой доходностью, но сопровождающихся неприемлемым уровнем риска.
Опыт реального трейдинга показывает, что успешная работа на рынке определяется не только способностью обнаруживать потенциально прибыльные сценарии, но и умением избегать опасных рыночных состояний. Именно поэтому в последние годы все больший интерес вызывают риск-ориентированные подходы, в которых неопределенность рассматривается как самостоятельная характеристика состояния среды. Подобные системы стремятся не просто прогнозировать дальнейшее движение рынка, а оценивать степень доверия к текущей рыночной конфигурации и принимать решения с учётом вероятности возникновения неблагоприятных сценариев.
Одним из наиболее интересных представителей подобных подходов является фреймворк UncAD, предложенный в работе "UncAD: Towards Safe End-to-end Autonomous Driving via Online Map Uncertainty" для решения задач автономного вождения. В исходной постановке задача автономного управления транспортом рассматривается как процесс движения в сложной и частично неопределенной среде. Система должна не только строить траекторию движения, но и оценивать надежность окружающей карты пространства. Фреймворк использует оценку неопределенности как меру риска и на ее основе выбирает наиболее безопасную траекторию движения среди нескольких допустимых вариантов. Таким образом, ключевой задачей становится не поиск формально оптимального маршрута, а принятие устойчивого решения в условиях ограниченной достоверности наблюдаемой среды.
Несмотря на различия между автономным вождением и финансовыми рынками, между задачами есть концептуальная близость. В обоих случаях система функционирует в динамической среде с высокой степенью неопределенности, где ошибка принятия решения может приводить к критическим последствиям. Как автономный автомобиль непрерывно анализирует дорожную обстановку, оценивает потенциальные препятствия и выбирает безопасную траекторию движения, так и торговая система вынуждена анализировать состояние рынка, учитывать вероятность разрушения текущих закономерностей и выбирать наиболее устойчивый сценарий управления капиталом. Более того, в обоих случаях принятие решений осуществляется в условиях неполной информации, шумных наблюдений и постоянно изменяющейся структуры среды.
В работе предлагается адаптировать принципы фреймворка UncAD для алгоритмического трейдинга. Архитектура рассматривает рынок как пространство состояний с различной статистической устойчивостью. Исторические данные преобразуются в компактную карту распределения состояний, что позволяет выявлять области повышенной неопределённости и принимать риск-ориентированные торговые решения. При этом неопределенность рассматривается как количественная мера надежности текущего состояния рынка, а выбор торгового действия осуществляется с учётом оценки потенциального риска дальнейшего развития рыночной ситуации.
Предложенный авторами фреймворка UncAD подход позволяет перейти от классической задачи прогнозирования временных рядов к задаче навигации капитала в условиях неопределенной рыночной среды. Подобная постановка задачи не только лучше соответствует практической природе финансовых рынков, но и открывает возможности для построения более устойчивых торговых систем, способных эффективно работать в условиях структурной изменчивости рынка и ограниченной предсказуемости будущих состояний.
Алгоритм фреймворка UncAD
Фреймворк UncAD был предложен авторами как риск-ориентированная архитектура для решения задач автономного вождения в условиях неопределенной окружающей среды. В основе подхода лежит идея о том, что система автономного управления должна учитывать не только геометрию наблюдаемого пространства, но и степень надежности самой карты окружающей среды. Подобная постановка существенно отличается от классических подходов к планированию движения, в которых окружающая среда обычно рассматривается как полностью наблюдаемая и достаточно достоверная.
Общая архитектура фреймворка включает несколько взаимосвязанных компонентов: модуль построения пространственного представления окружающей среды, систему оценки неопределенности карты, модуль прогнозирования поведения объектов, а также блок планирования и выбора безопасной траектории движения. В совокупности эти элементы формируют единую систему принятия решений, ориентированную не только на эффективность движения, но и на минимизацию риска в условиях неполной или нестабильной информации.
На вход модели поступают данные сенсорных систем автомобиля, включая изображения камер, информацию лидаров, радаров и другие источники пространственных наблюдений. На основе этих данных формируется унифицированное представление окружающей среды в формате центрированной карты Bird’s Eye View (вид с высоты птичьего полета). Использование BEV-представления позволяет перевести разнородные пространственные наблюдения в единую координатную систему, удобную для последующего анализа и планирования движения. Фактически BEV-карта становится компактным описанием окружающего пространства, содержащим информацию о дорожной структуре, расположении объектов и потенциальных препятствиях.
Ключевой особенностью UncAD является то, что формируемая карта среды рассматривается как вероятностная модель окружающей обстановки. Авторы исходят из того, что в реальных условиях данные сенсоров неизбежно содержат шум, искажения, области неполной видимости и неоднозначные наблюдения. В результате различные участки карты обладают различной степенью надежности, а ошибка интерпретации окружающей среды может приводить к формированию опасных траекторий движения.
Для учета этой особенности во фреймворке вводится механизм оценки неопределенности элементов карты (Map Uncertainty Estimation — MUE). Каждая точка карты моделируется с использованием распределения Лапласа. Для точки 𝐩 = (𝝁, 𝐛) модель прогнозирует нормализованные координаты точки в пространстве BEV (𝝁1,𝝁2) и параметры масштаба распределения Лапласа, определяющие степень неопределенности предсказания по каждой координате (𝐛1, 𝐛2).
Для элемента карты M={𝐩i}i=1N, состоящего из N точек, совместная плотность распределения записывается следующим образом.

Здесь 𝐩j(i) — истинное значение координаты, 𝝁j(i)— предсказанное положение точки и 𝐛j(i)— масштаб распределения Лапласа.
Использование распределения Лапласа позволяет одновременно моделировать как положение элемента карты, так и степень уверенности модели в предсказанной координате. Чем больше значение параметра b, тем выше неопределенность положения соответствующей точки.
Для формирования карты среды используется набор Map Queries (Qm), которые извлекают пространственную информацию из сцены Fscene. После этого MLP-декодер формирует набор векторизованных элементов карты Vm ∈ RNv*Np*4. В своей работе авторы фреймворка используют 100 прогнозируемых векторов карты (Nv), по 20 точек в каждом векторе (Np), и размерность 4 соответствует параметрам (𝝁1, 𝝁2, 𝐛1, 𝐛2) для каждой точки.
В отличие от классических методов, использующих L1-функцию ошибки, обучение модели выполняется с использованием функции отрицательного логарифма правдоподобия распределения Лапласа.

Данная функция потерь одновременно минимизирует ошибку локализации и обучает модель корректно оценивать собственную неопределенность. Если ошибка прогнозирования возрастает, модель может увеличить параметр b, тем самым отражая снижение уверенности в текущем наблюдении.
После прогнозирования координат элементов карты модель получает соответствующие оценки неопределенности, характеризующие степень надежности каждого элемента пространственного представления. Однако авторы UncAD не ограничиваются использованием неопределенности исключительно внутри функции потерь. Вместо этого информация о неопределенности рассматривается как самостоятельный источник признаков, описывающий качество наблюдаемой среды. Для извлечения этих признаков параметры неопределенности дополнительно обрабатываются отдельным MLP-энкодером.
Qunc = MLPEncoder(b)
В результате формируется набор Uncertainty Queries (Qunc), содержащий компактное представление распределения неопределенности внутри карты окружающей среды. Далее полученные Uncertainty Queries объединяются с исходными Map Queries.
Q'm = MLP([Qm, Qunc])
Таким образом карта начинает содержать не только геометрию окружающей среды, но и информацию о степени доверия к различным областям наблюдаемого пространства. Это позволяет последующим модулям прогнозирования и планирования учитывать не только расположение объектов, но и надежность самой карты при выборе безопасной траектории движения.
Подобная постановка представляет особый интерес и для задач трейдинга. Финансовый рынок, как и дорожная среда при автономном вождении, также является частично наблюдаемой и динамически изменяющейся системой. Исторические данные рынка содержат шум, неоднозначные сигналы и нестабильные зависимости. А различные рыночные режимы обладают различной степенью предсказуемости. Поэтому сама идея оценки надежности среды и использования неопределенности в качестве меры риска выглядит естественной для задач принятия торговых решений.
После построения карты среды и оценки ее неопределенности фреймворк переходит к этапу прогнозирования поведения участников сцены и последующего планирования движения. На этом уровне неопределенность карты уже не просто фиксируется как вспомогательная характеристика, а начинает влиять на прогнозирование траекторий. Иными словами, карта с оценкой риска становится активным источником информации для прогнозирования и планирования.
Для прогнозирования поведения окружающих объектов авторы используют набор Agent Queries (Qa), который извлекает признаки агентов из промежуточного представления сцены (Fscene) и обновленной карты (Qm'). Сначала выполняется взаимодействие между агентами с помощью механизма Self-Attention, что позволяет учесть взаимное влияние участников движения.
Qa' = Self-Attention(Qa)
Полученные обновленные признаки агентов (Qa') взаимодействуют с картой среды (Qm') через Cross-Attention. На этом шаге модель начинает учитывать не только динамику самих агентов, но и структуру окружающего пространства, включая зоны повышенной неопределенности.
Qa'' = Cross-Attention(q=Qa', k=Qm', v=Qm')
После этого на основе обогащенного представления признаков агентов MLP-декодер формирует многомодальные траектории движения.
ꚍa = MLP(Qa'')
Таким образом, для каждого участника сцены модель выдает несколько возможных сценариев движения с соответствующими оценками уверенности. Это особенно важно в ситуациях, когда поведение агента неоднозначно и не может быть надежно описано одной детерминированной траекторией.
На этапе планирования используется информация о собственном автомобиле. Однако авторы, как и многие системы автономного вождения, не вводят её как отдельный статический вектор состояния. Вместо этого Ego Information кодируется через историческую траекторию автомобиля. Для этого формируется набор Ego Queries (Qe). Дополнительно используются Mode Queries (Qmode), полученные на основе кластеризации многомодальных траекторий из датасета. Эти Mode Queries задают возможные базовые сценарии движения и помогают модели учитывать многовариантность будущих маневров.
Сначала Ego Queries и Mode Queries объединяются и проходят обработку Self-Attention.
Qe' = Self-Attention([Qe, Qmode])
После этого обновленные Ego-признаки (Qe') взаимодействуют с прогнозами поведения окружающих агентов (Qa'') через Cross-Attention.
Qe'' = Cross-Attention(q=Qe', k=Qa'', v=Qa'')
На следующем шаге Ego-признаки дополнительно связываются с обновленной картой среды (Qm'). Это позволяет учитывать не только возможное поведение других участников движения, но и локальную структуру карты, включая зоны неопределенности, потенциальные препятствия и области повышенного риска.
Qe''' = Cross-Attention(q=Qe'', k=Qm', v=Qm')
Здесь особенно важно, что карта неопределенности начинает непосредственно влиять на выбор траектории. Модель не просто строит путь по геометрии сцены, а оценивает, насколько безопасно следовать тем или иным сценарием в текущей конфигурации среды. Тем самым неопределенность карты становится направляющим фактором планирования.
Завершающий MLP-декодер формирует многомодальные траектории движения собственного автомобиля.
τe = MLP(Qe''')
Таким образом модель выдает не один фиксированный маршрут, а набор возможных траекторий для каждой команды движения, что позволяет выбрать наиболее устойчивый и безопасный вариант с учётом текущей неопределенности среды.
Особенность блока в том, что прогнозирование и планирование не разделены жёстко. Прогноз агентов, карта среды и её неопределённость объединяются в одном пространстве внимания, где формируется будущая траектория. Именно это делает архитектуру UncAD риск-ориентированной: выбор движения определяется не только ожидаемой выгодой, но и тем, насколько надежной является окружающая среда в данной точке пространства.
После генерации многомодальных траекторий фреймворк переходит к этапу выбора окончательного маршрута (Uncertainty-Collision-Aware Selection — UCAS), в котором объединяются два источника риска: неопределенность карты и вероятность столкновения. На этом шаге каждая сгенерированная траектория оценивается не только по собственной вероятности, но и по степени согласованности с картой окружающей среды и прогнозируемыми агентами. В результате итоговым становится не просто наиболее вероятный, а наиболее безопасный сценарий движения.
Сначала из полного набора многомодальных траекторий выбираются подмножества траекторий, соответствующие высокоуровневым командам движения τa,cmd. Каждая траектория τk в подмножестве проверяется на две группы рисков: риск движения в области высокой неопределенности карты и риск столкновения с агентами либо границами карты.
Для оценки риска, связанного с неопределенностью карты, каждая граничная точка карты интерпретируется как вероятностная область, заданная распределением Лапласа. Для каждой точки вычисляется значение отрицательного логарифма правдоподобия относительно соответствующей вероятностной карты. Если для части точек траектории значение NLL оказывается ниже порогового уровня, то траектория проходит через область с высокой неопределенностью карты. Такая траектория считается рискованной, и ее оценка понижается. На практике авторы упрощают этот механизм: если траектория попадает в область высокого риска по карте, ее Confidence Score обнуляется.
Второй этап проверки связан с возможностью столкновения. Для этого используется модуль Collision Checking, который оценивает пересечение траектории с прогнозируемыми агентами и с границами карты. Проверка с агентами выполняется на основе прогнозных траекторий окружающих объектов, а проверка с картой — через расстояние до граничных элементов среды. Если траектория оказывается слишком близка к агенту либо нарушает допустимую границу движения, ее оценка также переводится в нуль.
После применения обоих фильтров для каждой траектории остается итоговый Score, который отражает ее пригодность с точки зрения безопасности. Финальный выбор производится по правилу максимального Score, то есть наиболее безопасный сценарий движения в текущих условиях среды.
Для задач трейдинга подобная архитектурная философия также представляет значительный интерес. Финансовые рынки редко находятся в полностью предсказуемом состоянии, а большинство критических убытков возникает именно в периоды разрушения привычной структуры рынка. Поэтому использование неопределенности как меры риска и выбор наиболее устойчивого сценария управления капиталом могут рассматриваться как естественное развитие современных риск-ориентированных торговых систем.

Реализация средствами MQL5
После рассмотрения теоретических аспектов фреймворка UncAD перейдем к практической части, в которой рассмотрим один из возможных вариантов интерпретации предложенных идей для решения задач трейдинга. Сразу отметим, что перед нами стоит значительный объем работы, требующий последовательного и поэтапного выполнения. Поэтому дальнейшее построение решения мы разобьем на несколько логически связанных этапов и будем двигаться от базовой формализации к более сложным компонентам модели шаг за шагом.
На первом этапе нам необходимо решить ключевую задачу всей архитектуры — сформировать представление рыночной среды, аналогичное пространственной карте в исходном фреймворке UncAD. Именно этот компонент становится фундаментом всей дальнейшей системы, поскольку от качества представления рыночного состояния напрямую зависит корректность оценки неопределенности, устойчивость прогнозирования и итоговый выбор торгового решения. При этом в отличие от задач автономного вождения, где карта формируется в физическом пространстве окружающей сцены, в трейдинге нам предстоит построить карту состояний рынка в скрытом пространстве признаков.
Классические торговые системы обычно работают с историей как с последовательностью временных наблюдений фиксированной длины. Однако подобный подход имеет сразу несколько серьезных ограничений. Во-первых, вычислительная сложность большинства современных архитектур растет вместе с глубиной анализируемой истории. Во-вторых, сама временная последовательность далеко не всегда является наиболее удобной формой представления рыночной среды. Для оценки устойчивости текущего состояния рынка зачастую важнее понимать не точный порядок исторических событий, а статистическую структуру ранее наблюдавшихся рыночных конфигураций.
По этой причине в качестве основы будущей архитектуры мы будем использовать иной подход к представлению истории рынка. Вместо непосредственной обработки длинной последовательности наблюдений система будет формировать компактную карту распределения рыночных состояний в латентном пространстве. Подобная карта должна сохранять глобальную структуру исторических состояний рынка, одновременно устраняя жесткую зависимость вычислительной сложности от размера анализируемого исторического окна.
Для построения такого представления исходные рыночные данные сначала будут преобразовываться энкодером в набор латентных токенов состояния. Далее нормализованные представления будут накапливаться в историческом стеке, после чего для каждой компоненты скрытого пространства будет вычисляться распределение плотности по фиксированному набору квантов. В результате вместо хранения полной последовательности исторических состояний модель получит компактное пространственное представление рыночной среды, отражающее статистическую геометрию поведения рынка.
Подобная постановка хорошо согласуется с исходной философией UncAD. Как и в задаче автономного вождения, система перестает рассматривать среду как полностью детерминированную и начинает анализировать структуру пространства состояний, степень их устойчивости и потенциальную надежность дальнейшего движения внутри этой среды. В дальнейшем именно эта карта рыночных состояний станет основой для оценки неопределенности, прогнозирования возможных сценариев развития рынка и выбора наиболее устойчивых торговых решений.
После определения общей архитектуры переходим к практической реализации первого ключевого компонента системы — построению карты плотности рыночных состояний. Именно этот модуль отвечает за преобразование длинной последовательности исторических наблюдений в компактное пространственное представление рыночной среды, которое в дальнейшем будет использоваться для оценки неопределенности и принятия торговых решений.
Для решения данной задачи реализуем OpenCL-ядро MarketStateDensity, выполняющее построение распределения плотности исторических состояний относительно текущего положения рынка. На вход ядро получает последовательность латентных токенов состояния.
__kernel void MarketStateDensity(__global const float* sequence, __global float* distribution, const uint sequence_size, const uint quantiles, const float quant_step ) { //--- features const uint feature = get_global_id(0); const uint dimension = get_global_size(0); //--- local worker index const uint lid = get_local_id(1); //--- local size over sequence axis const uint local_n = get_local_size(1); //--- total quantiles const int bins = 2 * quantiles + 1; //--- variables const uint var = get_global_id(2); const uint variables = get_global_size(2);
Здесь sequence содержит историческую последовательность скрытых состояний рынка, distribution используется для сохранения итоговой карты распределения, sequence_size определяет глубину исторического окна, quantiles задает число квантов распределения, а quant_step определяет шаг квантования в пространстве признаков.
Обработка внутри ядра организована независимо для каждой компоненты латентного пространства. Каждый поток по первой оси пространства задач OpenCL отвечает за анализ отдельного признака скрытого состояния рынка. Размерность скрытого пространства определяется непосредственно размерами пространства задач. Подобная организация позволяет параллельно строить распределения плотности сразу для всех компонент латентного представления рынка.
Дополнительно ядро поддерживает обработку нескольких независимых наборов состояний через третье измерение пространства задач OpenCL. Это дает возможность одновременно работать с несколькими инструментами, таймфреймами или различными группами признаков.
Поскольку алгоритм требует коллективного накопления статистики внутри рабочих групп, в реализации активно используется локальная память OpenCL. Это позволяет существенно сократить количество обращений к глобальной памяти и ускорить операции редукции.
__local float4 Temp[LOCAL_ARRAY_SIZE];
Центральной идеей алгоритма является построение распределения исторических состояний относительно текущего положения рынка. В качестве опорного состояния используется первый элемент последовательности. Его значение считывается одним потоком рабочей группы и помещается в локальную память.
//--- current state reference if(lid == 0) Temp[0].s0 = IsNaNOrInf(sequence[RCtoFlat(0, feature, sequence_size, dimension, var)], 0.0f); BarrierLoc; const float current = Temp[0].s0;
После синхронизации потоков текущее состояние становится доступным всей рабочей группе. Именно этот шаг формирует основу всей дальнейшей архитектуры. Система перестает анализировать абсолютные значения признаков и переходит к оценке относительного положения исторических состояний относительно текущей рыночной конфигурации. Фактически модель начинает работать с геометрией пространства состояний рынка.
Далее ядро последовательно обходит всю историческую последовательность.
//--- iterate through sequence uint count = 0; for(uint i = 0; i < sequence_size; i += local_n) { int q = bins + 2; if(i + lid < sequence_size) { const float value = IsNaNOrInf(sequence[RCtoFlat(i + lid, feature, sequence_size, dimension, var)], 0.0f); //--- deviation from current state const float diff = current - value; //--- quantization q = (int)floor(diff / quant_step); // center shift q += (int)quantiles; //--- clamp q = clamp(q, 0, bins - 1); }
Каждый поток извлекает собственный элемент истории и вычисляет отклонение исторического состояния от текущего.
Содержательно именно здесь формируется карта рыночной среды. Модель оценивает, насколько близко ранее наблюдавшиеся состояния расположены к текущему положению рынка в скрытом пространстве признаков. Высокая плотность распределения соответствует областям, в которых рынок исторически проводил значительное время. Подобные зоны отражают повышенную концентрацию рыночных состояний и естественным образом начинают играть роль уровней поддержки и сопротивления. При приближении цены к таким областям возрастает вероятность замедления движения, консолидации или разворота рынка.
Напротив, области низкой плотности представляют собой своеобразные разреженные зоны рыночного пространства, внутри которых исторически наблюдалось минимальное число состояний. В подобных участках рынок обладает значительно меньшей структурной устойчивостью, вследствие чего цена чаще проходит их практически без сопротивления, сохраняя инерцию движения. Таким образом, карта плотности начинает описывать не только статистическую структуру рынка, но и потенциальную динамику распространения движения внутри пространства состояний.
Полученное отклонение далее переводится в дискретное пространство квантов. Для этого выполняется операция квантования.
Поскольку распределение строится относительно текущего состояния, центральный квант соответствует нулевому отклонению. Для перехода к положительной индексации используется дополнительное смещение. После чего индекс ограничивается допустимыми границами распределения. Тем самым пространство распределения становится симметричным относительно текущего состояния рынка и охватывает как области положительных отклонений, так и области отрицательных смещений в пространстве признаков.
Следующий этап выполняет накопление статистики распределения. Для повышения производительности обработка организована пакетами по четыре квантовых ячейки с использованием векторного типа float4.
//--- accumulate for(int b = 0; b < bins; b += 4) { float4 b4 = (float4)0.0f; switch(q - b) { case 0: b4.s0 = 1; break; case 1: b4.s1 = 1; break; case 2: b4.s2 = 1; break; case 3: b4.s3 = 1; break; } BarrierLoc; count += (uint)vget4(LocalSum4(b4, 1, Temp), lid - b); } }
В зависимости от положения текущего значения внутри диапазона активируется соответствующая компонента вектора. Затем выполняется локальная редукция и накопление числа попаданий в соответствующие кванты распределения.
Фактически на данном этапе ядро строит нормализованную гистограмму плотности исторических состояний относительно текущего положения рынка. При этом вычислительная сложность итогового представления определяется числом квантов распределения, а не длиной исторической последовательности. Это является важным свойством предлагаемой архитектуры, поскольку позволяет практически бесплатно увеличивать глубину анализируемой истории без пропорционального роста размерности карты состояния.
На завершающем этапе выполняется нормализация накопленной статистики.
//--- normalization and save if(lid < bins) distribution[RCtoFlat(lid, feature, bins, dimension, var)] = ((float)count / sequence_size); }
В результате каждая компонента скрытого пространства получает собственное распределение плотности исторических состояний. Совокупность таких распределений формирует компактную карту рыночной среды.
Полученная структура выступает аналогом BEV-карты в оригинальном фреймворке UncAD. Однако если в задачах автономного вождения карта описывает геометрию физического пространства, то в рассматриваемой архитектуре карта отражает статистическую геометрию рынка в пространстве скрытых состояний. Высокая плотность распределения соответствует устойчивым и часто наблюдаемым конфигурациям рынка.
Заключение
В данной работе рассмотрена возможность применения риск-ориентированного подхода фреймворка UncAD для решения задач алгоритмического трейдинга. В отличие от классических моделей, ориентированных преимущественно на прогнозирование цены, предложенная интерпретация рассматривает рынок как динамическое пространство состояний с различной степенью устойчивости и неопределенности. Проведенный анализ оригинальной архитектуры UncAD показал, что между задачами автономного вождения и трейдинга существует глубокая концептуальная близость: в обоих случаях система вынуждена принимать решения в сложной и частично неопределенной среде, где критически важной становится оценка надежности самой среды.
Практическая часть работы была посвящена построению карты плотности рыночных состояний. Для этого реализовано OpenCL-ядро MarketStateDensity, преобразующее длинную последовательность исторических латентных состояний в компактное распределение плотности в пространстве признаков. Предложенный подход позволяет существенно снизить зависимость вычислительной сложности от глубины анализируемой истории и одновременно сохранить глобальную структуру рыночной среды. При этом высокая плотность распределения естественным образом начинает соответствовать зонам поддержки и сопротивления, тогда как области низкой концентрации формируют своеобразные зоны рыночной пустоты, внутри которых движение цены может распространяться значительно быстрее.
Полученный результат формирует основу для дальнейшего построения полноценной риск-ориентированной торговой архитектуры. В следующей статье мы продолжим развитие предложенного подхода, реализуем механизмы оценки неопределенности рыночной среды и перейдем к построению системы прогнозирования и выбора устойчивых торговых решений на основе сформированной карты состояний рынка.
Ссылки
Программы, используемые в статье
| # | Имя | Тип | Описание |
|---|---|---|---|
| 1 | Study.mq5 | Советник | Советник офлайн-обучения моделей |
| 2 | StudyOnline.mq5 | Советник | Советник онлайн-обучения моделей |
| 3 | Test.mq5 | Советник | Советник для тестирования модели |
| 4 | Trajectory.mqh | Библиотека класса | Структура описания состояния системы и архитектуры моделей |
| 5 | NeuroNet.mqh | Библиотека класса | Библиотека классов для создания нейронной сети |
| 6 | NeuroNet.cl | Библиотека | Библиотека кода OpenCL-программы |
Проект представлен на forge.mql5.io/dng.
Предупреждение: все права на данные материалы принадлежат MetaQuotes Ltd. Полная или частичная перепечатка запрещена.
Данная статья написана пользователем сайта и отражает его личную точку зрения. Компания MetaQuotes Ltd не несет ответственности за достоверность представленной информации, а также за возможные последствия использования описанных решений, стратегий или рекомендаций.
Особенности написания Пользовательских Индикаторов
Архитектура машинного обучения для MetaTrader 5 (Часть 10): Определение размера позиции в финансовом машинном обучении
Низкочастотные количественные стратегии в MetaTrader 5: (Часть 2) Бэктестинг lead/lag-анализа в SQL и MetaTrader 5
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования