МАШИННОЕ ОБУЧЕНИЕ ФОРЕКС

Лучшие Форекс брокеры 2021:

Машинное обучение: что нужно знать о создании стратегий для торговли на бирже. Часть IV

На Хабре и в аналитическом разделе нашего сайта мы много пишем о тенденциях финансового рынка и продолаем публикацию серии материалов, посвященных вопросам создания стратегий для торговли на бирже, основанную на статьях автора блога Financial Hacker. В предыдущих топиках мы поговорили об использовании неэффективностей рынка на примере истории с ценовыми ограничением для швейцарского франка, рассмотрели важные факторы, влияющие на эффективность стратегии и обсудили общие принципы разработки модель-ориентированных торговых систем.

Сегодня же речь пойдет об использовании для этих целей технологий дата майнинга и машинного обучения.

В 1996 году компьютер Deep Blue впервые победил чемпиона мира по шахматам. Прошло еще 20 лет и программа AlphaGo победила в серии с лучшим игроком в Го, уступив лишь одну игру. Deep Blue представлял собой модель-ориентированную систему с жестким набором шахматных правил. AlphaGo же использует технологии Data Mining. Это нейронная сеть, обученная на примерах тысячи партий Го. В отличие от шахмат, в этой игре пространство выбора вариантов настолько огромно, что простой перебор не поможет. Поэтому прорыв произошел не за счет совершенствования «железа», а исключительно благодаря новому софту.

Сегодня мы мы рассмотрим подход к использованию дата-майнинга для разработки торговых стратегий, который не подразумевает глубокого анализа рыночных механизмов. Вместо этого он использует информацию из кривой цен и других источников для поиска в ней предсказуемых аномалий. Машинное обучение или «искусственный интеллект» — не всегда обязательная часть подобной стратегии. На практике самым популярным и самым успешным вариантом применения данного метода является работа без привлечения навороченных нейронных сетей или метода опорных векторов.

Принципы машинного обучения

В основе обучающего алгоритма заложена концепция шаблонов. Обычно это исторические данные о ценах. Каждый шаблон состоит из n переменных x1… xn, обычно называемых маркерами предсказания (предикторами) или просто параметрами. В качестве таких предикторов могут выступать ценовой возврат последних n-делений или набор классических индикаторов, а также любые другие функции кривой цен. Каждый шаблон включает целевую величину y — например, прибыль следующей сделки после применения шаблона или следующее движение цены. В процессе обучения алгоритм узнает, как получить целевую величину, основываясь на предикторах. Это знание хранится в структуре данных, именуемой в нашем случае моделью, индивидуальной для каждого алгоритма. Эта модель может быть функцией языка C, описывающей правила прогнозирования, выработанные в процессе обучения. Или это может быть набор соединений в нейронной сети.

Предикторы должны аккуратно обрабатывать информацию, которая необходима для предсказания целевой величины. Они обязаны отвечать двум формальным условиям: все значения этих маркеров должны быть одного порядка (например, -1… +1 для алгоритмов на R или -100… +100 для алгоритмов на языке Zorro). Это значит, что до отправки торговому «движку» их нужно нормализовать. Во-вторых, шаблоны должны быть сбалансированы, то есть равномерно распределены по всем значениям целевой величины. Шаблонов, описывающих выигрышный вариант, должно быть столько же, сколько и проигрышный.

Лучшие Форекс брокеры 2021:

Регрессивные алгоритмы предсказывают числовые значения, такие как величина следующего изменения цены. Классификационные алгоритмы генерируют класс качественных шаблонов. Например, связанных с прибылью или убытком. Ряд алгоритмов нейронных сетей или опорных векторов могут одновременно работать в обеих версиях. Некоторые алгоритмы не нуждаются в целевой величине для разделения шаблонов на классы. Это так называемое обучение без учителя (unsupervised learning), в отличие от обычного с учителем (supervised learning).

Какие бы сигналы мы не использовали в качестве маркеров предсказания в сфере финансов, большинство из них будет содержать много шума и мало полезной информации. Поэтому финансовое прогнозирование – самая сложная задача в машинном обучении. Более сложные алгоритмы не всегда дают более качественный результат. Для конечного успеха критичным является выбор предикторов. На этот случай в стратегии интеллектуального анализа предусмотрен алгоритм предварительного отбора, который выбирает несколько полезных маркеров предсказаний из множества вариантов. Этот отбор может проходить на основе их корреляции, значимости или просто берутся те, что прошли тест.

Далее мы поговорим о наиболее популярных методиках интеллектуального анализа, используемых в мире финансов.

Метод проб и ошибок

Большинство торговых систем, которые компания автора блога Financial Hacker разрабатывает для своих клиентов, изначально основаны не на финансовой модели. Заказчик хочет получать сигналы для совершения транзакций, опирающиеся на конкретные технические индикаторы, фильтруемые через индикаторы с использованием еще большего числа технических индикаторов. Обычно, никто толком не может ответить на вопрос о том, как это месиво индикаторов может являться рабочей стратегией. Ответ, как правило, такой: «Просто поверьте. Я так вручную торгую уже много лет, и все работает».

На самом деле, все так и есть. По крайней мере, в некоторых случаях. Хотя многие эти системы не были прошли форвардный анализ (некоторые — даже элементарный бэктест), большинство неплохо справляется со своими задачами. Клиент систематически экспериментирует с техническими индикаторами, пока не найдет нужную комбинацию, которая работает на реальном рынке с выбранными активами. Метод проб и ошибок – это классический вариант интеллектуального анализа. Просто он производится человеком, а не машиной. Иногда это дает хороший результат.

Свечные паттерны

Нет смысла останавливаться на разборе устаревших методик, типа японских свечных паттернов, которые были популярны 200 лет назад. Современный эквивалент свечных паттернов – это безиндикаторный анализ price action. В нем трейдеры все еще пытаются найти паттерн, предсказывающий движение цены. Но в данном случае они анализируют современные ценовые кривые. Для этой цели существует набор специальных программ. Они подбирают подходящие паттерны по заложенным пользователем критериям и используют их для построения функции. В системе Zorro это может выглядеть так:

Лучшие Форекс брокеры 2021:

Функция C делает возврат 1, когда сигнал соответствует одному из паттернов. В ином случае значение – 0. По этому коду можно видеть, что это не самый быстрый путь поиска паттернов. Альтернативный вариант – вначале сортировать сигналы по их значению, затем проверять порядок сортировки.

Даже несмотря на применение техник дата-майнинга такой ценовой трейдинг должен иметь под собой какие-то рациональные основания. Можно представить, что определенные последовательности движения цены приводят к определенной реакции участников рынка. Это и будет паттерном прогноза. Число паттернов всегда будет ограничено, если внимательно присмотреться к последовательности смежных свечей. Следующий шаг – сравнение свечей, которые находятся на расстоянии друг от друга. Мы выбираем их произвольно за достаточно долгий период времени. В этом случае число паттернов может быть безграничным. Но здесь легко потерять почву под ногами. В то же время, трудно представить, что движение цены может быть предсказано свечным паттерном недельной давности. Но в целом задача поиска свечных паттернов архисложная и чревата множеством ошибок.

Линейная регрессия

Смысл работы большинство сложных алгоритмов машинного обучения прост: нужно предсказать переменную целевую величину y через линейную комбинацию предикторов x1 … xn.

Коэффициент an рассчитывается для минимизации суммы квадратов различий между истинным значением y обучающего шаблона и предсказываемыми значениями y по следующей формуле:

Для нормального распределения шаблонов минимизация возможна через математическую матрицу, поэтому никакой итерации не требуется. В случае n = 1 с одной переменной предиктора x формула регрессии упрощается до:

Это является простой линейной регрессией. Она применяется на большинстве торговых платформ. Если y = цена, а x = время, то она часто используется как альтернатива скользящим средним. Есть еще полиноминальная регрессия, когда все еще есть один предиктор x, но есть и x2 и в более высокой степени. Таким образом, xn == x n .

Перцепция

Нередко этот метод рассматривают как нейронную сеть с одним нейроном. На самом деле перцепция – это та же функция регрессии, которую мы рассмотрели выше. Но с двоичным результатом. Поэтому ее еще называют логистическрй регрессией. Хотя, по сути, это алгоритм классификации. Функция advise(PERCEPTRON, …) в Zorro генерирует C-код, делающий возврат 100 или -100, в зависимости от того, расположен ли предсказанный результат в рамках или за рамками установленного порога.

В этом фрагменте видно, что массив sig эквивалентен нашим маркерам предсказания xn в формуле регрессии, а числовые множители – это коэффициенты an.

Нейронные сети

Линейная или логистическая регрессия может решить лишь линейные проблемы. Многие просто не работают с такой категорией вопросов. Искусственная нейронная сеть (ИНС) призвана решать нелинейные проблемы. Она представляет собой пучок перцептронов, соединенных в набор слоев. Каждый из них является нейроном сети. Вот как выглядят инпуты и аутпуты такой сети:

Нейронная сеть обучается через распознавание коэффициента, который бы минимизировал расхождение между шаблоном предсказания и шаблоном цели. Но теперь нам нужно задействовать еще и процесс аппроксимации. Обычно он применяется вместе с методом обратного распространения ошибки от входных данных к выходным, по пути оптимизируя нагрузку.

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

Если использовать нейронную сеть для торговли, то необходимо варьировать и изменять множество параметров. Неосторожность в обращении с ними может привести к тому, что будут искажены:

  • число скрытых слоев;
  • число нейронов для каждого скрытого слоя;
  • число циклов обратного распространения, или эпох;
  • скорость обучения, ширина шага одной эпохи;
  • моментум;
  • функция активации.

Глубокое обучение

Если речь идет о множестве скрытых слоев и тысячах нейронов, то это уже глубокое обучение. Здесь стандартное обратное распространение не работает. В последние несколько лет появились несколько популярных методик обучения такой огромной системы. Обычно они включают этап пред-обучения скрытых слоев для достижения нужного эффекта. Один из вариантов – машина Больцмана – неконтролируемый классифицирующий алгоритм со специальной структурой сети, где отсутствуют соединения между скрытыми нейронами. Разреженный автокодировщик (Sparse Autoencoder) – другой вариант, он использует стандартную структуру сети и предобучает скрытые слои через воспроизводство сигналов инпута для аутпута слоев с минимальным, насколько это возможно, количеством активных соединений. Такие методы уже позволяют решать серьезные задачи. Ну, например, побеждать лучшего в мире игрока в го.

Ниже пример скрипта на R, использующий автокодировщик с тремя скрытыми слоями для определения сигналов трейдинга с помощью функции neural() пакета Zorro:

Метод опорных векторов

Также как и нейронная сеть, метод опорных векторов – это расширенный вариант линейной регрессии. Взглянем на эту формулу еще раз:

Маркеры предсказания xn можно рассматривать как координаты пространства с n измерениями. Привязав целевую величину y к фиксированному значению, мы определим плоскость или, как ее еще называют – гиперплоскость. Она отделяет шаблоны с y > 0 от шаблонов с y < 0. Коэффициент an может быть рассчитан как максимальное расстояние от плоскости к ближайшему шаблону, называемому опорным вектором. Таким образом, мы получаем бинарный классификатор с оптимальным делением шаблонов на выигрышные и проигрышные.

Есть небольшая проблема: обычно эти шаблоны нельзя отделить линейно, они рассредоточены в нашем пространстве маркеров нерегулярно. Мы не можем поместить в него ровную плоскость. Если бы и могли, то есть более простой способ определить плоскость – линейный дискриминантный анализ. Но в большинстве случаем мы вынуждены воспользоваться уловкой, которую предоставляет метод опорных векторов: добавить больше измерений в наше пространство. После этого алгоритм производит больше маркеров с помощью функции ядра, которая объединяет два любых предиктора в новый маркер. Чем больше измерений будет добавлено, тем легче разделить шаблоны с помощью гиперплоскости. Затем эта плоскость трансформируется обратно в исходное пространство с n измерениями, обрастая по пути складками. Для того чтобы функция ядра не сбивалась и работала оптимально, процесс должен выполняться без фактического вычисления параметров такого преобразования.

Метод опорных векторов может быть использован не только для классификации, но и для регрессии. Он также позволяет оптимизировать процесс предсказания через следующие параметры:

  • функция ядра: обычно используют радиальную базисную функцию ядра, но у вас есть выбор, можно использовать полиномиальный, сигмоидный или линейный вариант;
  • гамма, ширина захвата радиальной базисной функции ядра;
  • параметр стоимости C, «штраф» за неверную классификацию шаблонов в процессе обучения.

Метод k ближайших соседей

В сравнении с опорными векторами, это довольно простой алгоритм с кучей уникальных возможностей. Он не требует обучения. Поэтому шаблоны в данном случае – это модель. В трейдинговых системах он позволяет обучаться непрерывно через добавление большего количества шаблонов. Метод ближайших соседей производит расчет расстояния от текущих значений маркеров к ближайшим k-шаблонам. В пространстве с n измерениями это расстояние рассчитывается также, как и по двум измерениям:

Алгоритм просто предсказывает целевую величину по среднему значению целевых переменных k ближайшего шаблона, распределенных по их обратным расстояниям. Его можно использовать как для классификации, так и для регрессии. Заимствованные из графических редакторов штуки (например, адаптивное двоичное дерево) помогут отыскать ближайшего соседа довольно быстро. Раньше такие вещи часто использовали в программирование игрушек, когда нужно было запустить самообучение интеллекта врага. Можно использовать для наших целей функцию knn в R или написать свою на C.

Метод k-средних

Метод k-средних использует алгоритм аппроксимации для неконтролируемой классификации. Он в чем-то очень похож на предыдущий метод. Для разделения шаблонов алгоритм первым делом размещает случайные отметки k в пространстве маркеров. Затем этим точкам назначаются все ближайшие к ним шаблоны. Следующий шаг: эти точки перемещаются к среднему значению ближайших шаблонов. И мы получаем новое распределение шаблонов, теперь определенные шаблоны становятся ближе к другим отметкам. Процесс повторяется, пока распределение не станет неизменным. То есть каждая отметка будет располагаться в точности по среднему значению ближайших шаблонов. Следовательно, у нас в наличие класс k-шаблонов, каждый из которых в непосредственной близости от одной из k-точек. Алгоритм простой, но он может привести к неожиданно хорошим результатам.

Наивный байесовский классификатор

Следующий алгоритм использует теорему Байеса для классификации шаблонов по нечисловым признакам (событиям), так же, как уже обговоренный метод свечных паттернов. Предположим, у нас есть событие X, проявляющее себя в 80% случаях удачных шаблонов. Что можно из этого извлечь? Подсчитать вероятность выигрыша варианта, содержащего X. Она не будет равна 0,8, как это можно было бы предположить. Действие этой вероятности может быть рассчитано по байесовской теореме:

P(Y|X) — это вероятность того, что событие Y (выигрыш) появляется во всех шаблонах, содержащих событие X. Она будет равна вероятности появления X во всех выигрышных шаблонах (то есть 0,8) умноженной на вероятность проявления Y во всех шаблонах (в нашем случае 0,5, если вы внимательно прочли советы по балансировке шаблонов) и разделенной на вероятность наличия X во всех имеющихся шаблонах.

Если мы в меру наивны и предполагаем, что все события X независимы друг от друга, мы можем подсчитать общую вероятность того, что определенный шаблон будет выигрышным, по следующей формуле, используя коэффициент масштабирования s:

Для того чтобы формула сработала, нужно разделить маркеры предсказаний так, чтобы они были максимально независимы друг от друга. А это и есть самое главное препятствие для использования теоремы Байеса в трейдинге. В большинстве случаев два события будут, так или иначе, зависеть друг от друга.

Метод байесовского классификатора доступен в пакете e1071 для языка R.

Дерево принятия решения и дерево регрессии

Оба дерева нацелены на предсказание числовых значений на выходе, основываясь на серии решений да/нет. Ответ в каждом случае зависит от наличия или отсутствия события (в варианте нечисловых признаков) или от сравнения значений маркеров предсказания с фиксированным порогом. Стандартная функция дерева на Zorro будет выглядеть так:

Как это дерево возникает из набора шаблонов? Есть несколько методов. Zorro предпочитает метод информационной шенноновской энтропии. Для начала он проверяет один из маркеров, допустим, x1. Он устанавливает гиперплоскость по формуле x1 = t . Эта плоскость отделяет шаблоны со значением x1 > t от шаблонов со значением x1 < t. Разделительный порог t является выборочным, поэтому информационный прирост (отношение информационной энтропии всего пространства к сумме информационных энтропий двух разделенных субпространств) будет максимальным. Это тот случай, когда шаблоны в субпространствах более схожи друг с другом, чем шаблоны в целом пространстве.

Затем процесс запускается для следующего маркера x2, тогда уже две гиперплоскости расщепляют два субпространства. В каждом случае условием для этого является сравнение маркера с установленным порогом. В скором времени мы получаем разветвленное дерево с тысячами сравнений. Следом процесс запускается в обратном направлении, нам нужно подрезать дерево, удалив все решения, которые не ведут к существенному информационному приросту. Наконец, получается относительно небольшое дерево, как в примере кода выше.

Дерево решений может быть применено по-разному. Но его нельзя использовать в качестве решения всех проблем, так как его плоскости деления всегда параллельны осям пространства маркеров. Это ограничивает возможности делать точные предсказания. Для регрессии его также можно использовать. Например, для определения доли шаблонов, привязанных к определенной ветке дерева. Дерево Zorro – это дерево регрессии. Самый распространенный алгоритма классификации по методу дерева — C5.0, доступный в пакете C50 для R.

Заключение

В распоряжении трейдеров сегодня есть множество различных методов интеллектуального анализа. Но что эффективней: ориентированные на определенную модель стратегии или стратегии машинного обучения? Несомненно, у последних есть масса преимуществ. Не нужно беспокоиться по поводу микроструктуры рынка, психологии трейдеров и прочей не выражаемой в числах чепухе. Можно сконцентрироваться на чистой математике. Машинное обучение выглядит более изысканным вариантом, более привлекательным способом создания трейдинговой системы. Все говорит в его пользу. Кроме одной вещи: несмотря на восторженные отзывы на форумах, в живом трейдинге все это оказывается странным образом неэффективным.

Каждую неделю в специализированных изданиях появляется новая статья о методах машинного обучения. К выводам этих статей стоит относиться с долей скепсиса. Многие из них обещают фантастический уровень отдачи в 70-85% прибыли. Если бы все это было правдой, количество миллиардеров среди математиков бы уже зашкаливало. В реальности удачных стратегий, основанных на машинном обучении до обидного мало.

Как заработать $500K на машинном обучении и высокочастотном трейдинге — Часть 1

На Хабре часто появляются материалы о том, как IT-специалисту сохранить и приумножить свои деньги. Неудивительно, что тема вызывает интерес и все больше дискуссий. На днях мне попалась статья парня, который, применив свои технологические навыки, смог за год заработать полмиллиона долларов. Мне кажется, его опыт может быть интересен многим (даже если отбросить тот факт, что он не первый день на бирже), поэтому я предлагаю обсудить его мысли. Но сделать это в два подхода — оригинальный пост достаточно объемный для одного хабратопика.

Итак, автор материала, Джесси Сполдинг (Jesse Spaulding), рассказывает о том, как ему, обыкновенному IT-специалисту, удалось применить свой опыт в близкой сфере — HFT-трейдинге. Проект он реализовал за год — в период с 2009 по 2022-й, а после его завершения решил поделиться впечатлениями от процесса торгов с помощью специализированного ПО — в его случае работа шла с фьючерсами на индексы DAX (среднее взвешенное по капитализации крупнейших компаний Германии) и Russell 2000 (относится к small-cap-индексам и контрастирует с S&P 500, к которому главным образом относятся акции компаний с высокой капитализацией).

По его словам, в этой области можно начинать разбираться и без знания всевозможных финансовых терминов и сложных уравнений. Достаточно базового опыта в работе с алгоритмами и некоторых навыков в области машинного обучения (он рекомендует курсы Эндрю Ына, одного из наиболее авторитетных специалистов в этой сфере), чтобы добиться нужной эффективности торговой программы и максимизировать прибыль. Джесси говорит, что в его ситуации не потребовалось «закапываться» глубже и хватило интуитивного подхода.

Изображение: Jason Briscoe — Unsplash

Он делится своими финансовыми показателями. Так, с помощью ПО для торгов, Джесси проводил от одной до четырех тысяч «длинных» и «коротких» сделок в день, но растягивал их на весь временной отрезок в рамках суток, чтобы усреднить потенциальные риски. Такой подход позволил ему избежать значительных потерь — Джесси не проигрывал более $2000 в день, а по ходу года — от месяца к месяцу — всегда оставался в плюсе. В качестве иллюстрации достижений он приводит график доходности торгов за вычетом комиссий (первая диаграмма в его статье), на котором пик приходится на сентябрь и октябрь 2009 года (заработал более 180 тыс. долларов), далее идет плавный спад. В период с августа по октябрь следующего года его доходы минимальны (не поднимаются выше пяти тысяч долларов в месяц), тогда Джесси и решает закрыть проект.

К сожалению, второй график с вариациями его заработка в течение дня не будет таким информативным — он практически соответствует первому и отражает всего один всплеск свыше $25000 за день. Автор перестал его обновлять на половине пути, когда его доходы перестали расти, и он потерял мотивацию их отслеживать с такой детализацией. Поэтому перейдем к тому, что Джесси говорит о своем опыте работы на бирже и о том, как изучение API для трейдинга подтолкнуло его к проектированию собственного торгового алгоритма.

Опыт торговли на бирже

Как вы уже успели заметить в самом начале материала, к моменту реализации данного проекта Джесси уже имел некоторый опыт работы на бирже. По его словам, он два года был трейдером в «обычном» режиме, начиная с 2001-го. Зарабатывать тогда можно было с помощью развития способностей к интуитивному распознаванию паттернов поведения того или иного сегмента рынка и, базовой дисциплины. Его доход составил около 250 тыс. долларов — эти деньги пошли на оплату учебы и накопления, часть из которых Джесси вложил в ряд стартапов.

Над ними он работал пять лет, совершенствуя свои навыки программирования, а когда продал компании, вернулся к трейдингу. Это был уже 2008-й год. На этот раз Джесси использовал ПО под названием T4 и подумал, что можно было бы реализовать для себя ряд «горячих клавиш». В этот момент он обнаружил открытый API на C#, а потом, освоив его базовые методы, решил научить компьютер торговать за себя. Прикладной интерфейс позволял получать и отправлять данные и команды на биржу, и Джесси оставалось разработать только логику поведения торгового алгоритма.

Рабочее окно T4: Джесси Сполдинг
Герой истории говорит, что проектировал программу так, чтобы можно было отслеживать ход торгов в наглядном интерфейсе и следить за тем, как происходит исполнение команд в рабочем окне. С учетом того, что все операции были за его счет зрелище было «пугающим, и захватывающим одновременно». Поэтому здесь было не обойтись без проверки системы еще до начала реальной игры на бирже.

Обычно для этого используют тестовый доступ, такая возможность есть и на отечественных площадках. Также многие трейдеры берут уже готовые фреймворки для разработки торговых роботов (для русских бирж есть несколько таких решений, в основном платных).

Для симуляции торгов Джесси организовал чтение тестовых данных по рынку из файла, в который была предварительно записана реальная информация с метками времени за более ранний период. На проверку системы ушел месяц, а в ходе этого процесса Джесси выделил две основные задачи — предсказание движения цен и максимизация прибыли. Первая — очевидный компонент любой трейдинговой системы, и здесь автор проекта решил установить интервал для регулярного прогнозирования — раз в 10 секунд. Для второй — он ввел ряд индикаторов.

Предсказание поведения рынка

Как выяснилось, наибольшую пользу проекту принесли индикаторы данных с рынка, с которым Джесси уже работал. Помимо этого алгоритм определял качество прогнозируемого изменения значений индикаторов — они были положительные (рост) и отрицательные (падение), но здесь было что улучшить. По ходу проекта Джесси понял, что обучение системы для последующего решения этой задачи на реальных данных потребует точного предсказания поведения цен. Этого он добился с помощью распределения предсказанных скачков цен на 50 групп. Для каждой он построил график и самостоятельно подогнал формулу, описывающую кривую изменения цен в зависимости от значения индикатора. А потом автоматизировал этот процесс с помощью подпрограммы, которая одинаково хорошо работала с повышением и понижением цены.

Джесси оптимизировал работу системы так, чтобы с каждой итерацией кривая прогнозирования менялась в сторону заданной только на 30%. Такой подход позволял избавиться от риска существенных искажений и приводил кривые к стабильному виду всего за несколько итераций. Таким образом, все индикаторы (даже с учетом возможной взаимозависимости) были в деле, и точность предсказания на 10 секунд вперед увеличивалась.

Почему и этого было недостаточно

По описанию проекта может сложиться ощущение того, что стоит только запустить такой торговый алгоритм, и герой рассказа сразу озолотится. Конечно, это не тот случай. И вот почему:

Машинное обучение в трейдинге

Трейдинг — это ужасно конкурентный мир. И поэтому искусственный интеллект, используемый уже практически как универсальное оружие для чего угодно, не может не найти свое применение и в торговле.

Дисклэймер

ИИ играет важную роль в маркетинге, но, возможно, не такую, какую вы сейчас представляете. К сожалению, он пока еще не способен стать супермашиной и самостоятельно превзойти в продажах по всем рынкам. Даже Renaissance Technologies не способны на это, по крайней мере сейчас.

Почему так?

Если ответить кратко: человеческая конкуренция, но об этом чуть-чуть позже.

Хоть ИИ по с тепенно и побеждает в конкуренции с человеком, он все равно не сможет стать главным игроком в этой игре. Искусственный интеллект подходит больше в качестве инструмента, нежели полной замены человека.

К примеру, 4 основных применения ИИ на данный момент это:

Анализирование данных

Люди не могут контролировать абсолютно всю информацию в мире — а вот машины способны хотя бы приблизиться к этому. С применением ИИ, машины смогли осуществлять гораздо больше функций — в том числе анализ и понимание текстов.

Теперь они могут понимать такие вещи как предпочтения людей и их интересы: подобно скрепкам они собирают ежедневные новости, твиты и посты из социальных сетей по определенной тематике, а затем, по алгоритмам AI (в частности с помощью обработки естественного языка) анализируют, каких откликов больше — положительных или негативных. Они вправе даже классифицировать тексты по темам и автоматически составлять легко читаемые подборки новости для людей. Таким образом, ИИ способен определять текущие экономические тренды.

Это невероятно ценная функция особенно полезна для трейдеров, которым необходимо всегда оставаться в курсе событий первыми.

Прогнозирование реальных данных

Трейдеры также используют ИИ чтобы проверять различные прогнозы — особенно вещи, которые в реальном мире реально могут помочь им добиться успеха.

  • Прогноз погоды на северо-востоке на следующие пару недель;
  • Потребление солнечной энергии в Европе;
  • Итоги политических выборов.

Данные прогнозы основаны на других алгоритмах, разработанных другими компаниями, однако это не значит, что они не могут не улучшаться.

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

Поиск данных

Торговля — это постоянный поиск детальных графиков, которые зачастую ограничены во времени и пространстве, чтобы использовать затем их в своих целях. Процесс поиска данных и графиков сам по себе очень трудоемкий и затратный.

Алгоритмы ИИ — это и есть машины, для поиска данных. Если аналитик сомневается в какой-либо информации, он может сэкономить свое время на поиск ошибки с помощью ИИ.

Нужный график будет легко найден Искусственным Интеллектом, если ему поставлена точная задача. Таким образом, аналитик руководствуясь полученной информацией, уже на основе собственного опыта и знаний, может сделать более качественный вывод. Или можно и вовсе сконструировать автоматизированную машину для продаж? Но об этом читайте дальше.

Настройка машин в высокочастотной торговле

В высокочастотной торговле, — как уже понятно из названия, — машины осуществляют тысячи, если не миллионы, операций за день, получая преимущество в том, что могут воспользоваться эффективностью, которая появляется только на короткие промежутки времени.

Люди не могут совершать такие сделки — их слишком много, однако именно люди определяют правила, по которым работают эти машины.

По той причине, что рынок постоянно меняется, машины тоже необходимо перенастраивать. Это требует много времени и сил. ИИ же способен автоматизировать данный процесс и заменить человека в этой монотонной работе.

! 3 предупреждающих знака! — Что следует понимать

Идея найти чудо-алгоритм, который буквально будет печатать деньги разумеется привлекательна, и настолько, что на нее покупаются много умных людей. Однако вот три вещи, которые следует понимать:

1.ИИ на сегодняшний день НЕ умнее людей

Реально, даже самый современный алгоритм очень примитивен по сравнению с человеческими мозгами.

Когда алгоритм побеждает человека в шахматах или в GO, это выглядит так же, как когда машина сбивает человека в беге на четверть мили. Да, она работает быстрее, но это не делает её лучше. Это просто означает, что мы сумели построить машину, которая способна очень хорошо выполнять очень специфическую задачу в определенных, очень узких, условиях.

Может быть вам и может показаться, что торговля это тоже узко определенная задача, но это отнюдь не так. Почему? Потому что в торговле вы конкурируете с другими людьми. А вот они уже будут использовать весь свой умственный потенциал, пытаясь обойти вас.

2. Опубликованные стратегии по торговле часто не работают в реальной жизни

Существует достаточно много исследований и не меньше публикаций в блогах, которые описывают алгоритм действий на основе ИИ для выгодной торговли. Но эти алгоритмы просто не могут работать в реальной жизни по нескольким причинам.

Неправильная настройка. Удивительное количество публикаций на самом деле делают ошибки из-за того, как они настраивают тренировку и среду для тестирования. Например, они часто используют переменные, которые не будут уже доступны в момент работы ИИ из-за утечки данных или дают оценку продукту, основываясь на актуальной цене, а не на будущей. Удивительные ошибки, однако прогнозирование кривой цен — это действительно сложная штука для человеческого мозга.

Эффект самоотбора

Менеджеры фондов очень часто поддаются критике за то, что они приписывают свои высокие прибыли скорее к собственным суперским знаниям, нежели удаче. Хотя, по большому счету, многие из них просто делают случайные предположения, которые, если выстрелят — потом принесут плоды. Те, кто не вошли в число счастливчиков — банкротятся, и мы ничего не слышим о них позже. И поэтому всем кажется, что фондовых руководителей, которые имеют невероятные знания в области торговли и маркетинга полным полно.

В действительности же, их количество, зависит, по большей мере, от того, насколько они удачливы.

То же самое можно сказать и об исследованиях. Если вы протестируете огромное количество алгоритмов, вы, скорее всего, найдете тот, который покажется вам наиболее прибыльным. Но если вы не расскажите, сколько экспериментов пришлось выполнить, чтобы добиться этого, всем тоже будет казаться, что вы просто натолкнулись на суперский подход.

Тем не менее, нет никакой гарантии, что эта стратегия будет работать вне конкретных данных, которые вы тестировали.

Комиссионные и проскальзывание (слиппедж)

В общем говоря, построенить торговую стратегии, которая опередит рынок не так сложно — ЕСЛИ забыть о реальных расходах на торгах. Комиссии (сборы, которые трейдеры платят за каждую продажу) и проскальзывание (термин обозначающий изменение цены в промежуток между сделкой и актуальной торговлей) съедают большую часть прибыли. И почти в каждом случае, этого достаточно, чтобы не получать то, на что рассчитывали.

Графики меняются со временем

Одна из самых главных концепций машинного обучения является поиск прошлых данных и использование их для составления прогнозов на будущее.

Однако такой подход не работает в трейдинге. Конкурирующие между собой трейдеры стараются найти одни и те же графики, чтобы обойти друг друга. Поэтому очень часто после использования данные исчезают. Это означает, что информация редко бывает доступна длительное время, поэтому постоянно приходится искать новые.

Это требует огромной способности адаптироваться, и на данный момент, люди гораздо лучше справляются с этим, чем машины.

3. Одни алгоритмы никогда не дадут вам преимущества

Легко сконцентрироваться только на одних алгоритмах, как на единственном преимуществе перед другими торговыми стратегиями.

По существу, такие компании как Numerai это и предлагают:

  • Комбинировать хорошие торговые стратегии с целью создать лучшую.
  • Срывать куш.

Но это не работает. Почему? Да потому что алгоритмы срываются из-за данных. Информация, которая предоставляется алгоритму, оказывает большее влияние на производительность стратегии, нежели на то, насколько хорош алгоритм. Данные Numerai даются вам фиксированными — вы не можете изменить их. Таким образом, прогнозы, которые они делают будут всегда несколько хуже чем у тех, где трейдеры постоянно вносят изменения, где есть доступ к базе данных и где трейдеры могут в процессе тестирования добавлять новые частные значения.

Немного надежды: неэффективные рынки все еще могут быть прибыльными

Рынки с несколькими трейдерами, обладающие высокие барьерами для входа и с ограниченным количеством сделок, могут использовать машинное обучение чтобы получить преимущество в “чистой игре” (занимаясь одним видом деятельности, например, продажей через Интернет).

Использование машинного обучения на рынках автоматической торговли подходит только для начала, и трейдеры, которые строят машины для автоматизированных продаж, по большей мере, получат преимущество только оценивая маржу.

Трейдинг и машинное обучение с подкреплением

В статье рассмотрено, как машинное обучение с подкреплением может применяться для трейдинга финансовых рынков и криптовалютных бирж.

Академическое сообщество Deep Learning в основном находится в стороне от финансовых рынков. В силу ли того, что у финансовой индустрии не лучшая репутация, что решаемые проблемы не кажутся слишком интересными для исследований, или же просто из-за того, что биржевые данные трудно и дорого получать.

В этой статье показывается, что обучение с подкреплением для трейдинга финансовых рынков и криптовалют может быть чрезвычайно интересной исследовательской проблемой. Хотя эта область не получила достаточного внимания со стороны научного сообщества, обучение с подкреплением на примере трейдинга также представляет существенный интерес для развития многих смежных областей, например, обучения алгоритмических агентов для многопользовательских игр.

Эта статья не посвящена предсказанию стоимости котировок с использованием Deep Learning. В ней «с высоты птичьего полета» обсуждаются трудности машинного обучения в области трейдинга, и как оно все-таки может в нем использоваться при переходе от обучения с учителем на обучение с подкреплением. Статья не подразумевает никакого опыта в трейдинге, поэтому обсуждение начнется с самых основ. Повествование будет излагаться в терминах криптовалютных бирж, идентичных большинству финансовых рынков. Причиной является то, что эти данные легкодоступны и бесплатны, в отличие от данных финансовых рынков.

Основы микроструктуры рынка

Торговля на криптовалютных и большинстве финансовых рынков происходит посредством непрерывного двойного аукциона (double auction) с так называемым открытым биржевым стаканом котировок (order book). Простыми словами, есть покупатели и продавцы, соответствующие другу другу так, что они могут торговаться. Организатор торгов (exchange) отвечает за это соответствие. Существуют десятки бирж, на которых каждый может иметь несколько разных активов (например, Bitcoin или Ethereum против доллара США). Относительно интерфейса и представляемых данных все они выглядят практически одинаково.

Рассмотрим биржу GDAX – одного из наиболее популярных организаторов торгов. Предположим, вы хотите торговать пару BTC-USD (Bitcoin за доллары США). Перейдя на соответствующую страницу, вы увидите что-то похожее на следующее изображение.

На странице довольно много информации. Рассмотрим основные элементы интерфейса.

График движения цен (Price chart)

В средней части окна расположен график движения цен. В качестве текущей цены устанавливается цена последней сделки. Движение отображается в виде графика японских свечей, показывающего для отображаемого временного интервала цены начала (O) и конца (С) периода, наиболее высокое (H) и низкое (L) значение цены. На приведенной ниже картинке интервал времени составляет 5 минут, но вы можете изменить его, используя выпадающий список. Бары под графиком движения цен показывают общий объем (V) всех сделок, произошедших за этот период.

Объем важен, потому что он дает вам ощущение ликвидности рынка. Если вы хотите купить при помощи BTC 100 000 долларов, но никто не покупает Bitcoin, рынок не ликвиден. Высокий объем торговли указывает на то, что многие люди готовы совершать сделки, то есть и вы сможете продавать или покупать активы. Чем большую сумму вы готовы потратить на сделку, тем больший объем торговли вам необходим. Кроме того, ликвидность рынка означает то, что вы можете больше полагаться на движение цен, чем при низком объеме, так как большой объем сделок (в отсутствие манипулирования рынком) является консенсусом большого числа участников рынка.

Архив торговых операций (Trade History)

В правой части окна показывается история недавних торгов. Для каждой сделки указывается размер, цена и отметка времени.

Биржевой стакан (Order book)

В левой части интерфейса находится биржевой стакан, в котором содержится информация о предлагаемых сделках, по какой цене предлагается купить или продать активы. Биржевой стакан состоит из двух частей: заявок на продажу (asks) и заявок на покупку (bids). То есть asks – это предложения людей, желающих продать, а bids – заявки людей, желающих купить. Часто по-русски эти величины называют так же: аск и бид.

Лучшие аски и биды

По определению лучшая цена заявки на продажу (best ask) имеет наименьшую величину. Однако эта величина выше, чем best bid – лучшая цена заявки на покупку с наибольшей суммой оплаты. Иначе торговля между двумя этими сторонами уже бы произошла.

Разница между лучшим предложением и лучшим спросом называется спредом. На изображении выше best ask это 8405.03, best bid это 8405.02. То есть спред составляет всего 1 цент, что и отображается в области, разделяющей аски и биды.

Каждый уровень биржевого стакана содержит цену и объем сделки. При покупке, если вы превышаете объем сделки, доступной по best ask, оставшийся объем будет осуществлен по менее выгодным сделкам, следующим за best ask. Рассмотрим на примере изображенного выше биржевого стакана покупку 4.5 BTC. Первые 4.15 BTC (округленно) вы купите по цене 8405.03, оставшиеся 0.35 BTC уже по цене 8405.04. Кроме того, на GDAX вы также будете платить 0,3% от суммы сделки. Этот сбор существенно выше биржевых сборов как на финансовых рынках, так и на многих биржах криптовалют.

Обратите внимание, что ваша сделка при превышении объема best ask сдвигает этот уровень выше, устанавливая новую, более высокую стоимость следующих сделок. Продажа работает аналогично, но осуществляя сделку, вы уменьшаете величину best bid, то есть эта часть биржевого стакана двигается в обратном направлении. Таким образом, размещая заказы на покупку и продажу, вы извлекаете объемы из биржевого стакана. Если ваши сделки достаточно велики, вы можете существенно сдвинуть уровни биржевого стакана.

Рыночный и лимитный ордера

Каким образом соответствующие записи попадают в биржевой стакан? Различают рыночный ордер (market order) и отложенный ордер (pending order). В примере выше описывался рыночный ордер, означающий «Купить/Продать определенное количество BTC по лучшей возможной цене, прямо сейчас». Однако из рассмотренного примера следует, что если вы не следите за состоянием биржевого стакана, вы рискуете заплатить существенные больше, чем планировали. Особенно если большинство нижних уровней имеет малый объем (например, 0.001 BTC).

Одним из типов отложенных ордеров является лимитный ордер (limit order). В этом случае вы указываете цену и количество, которое хотите купить или продать по этой цене, однако для вас не является критичным вопрос времени. Например, цена BTC составляет $8 000, но вы хотите продать Bitcoin по цене $8 010. Вы устанавливаете лимитный ордер. Если цена будет двигаться вниз, с вашим ордером ничего не будет происходить, и вы можете в любое время его отменить. Однако, если цена начнет двигаться вверх, ваш ордер в какой-то момент станет лучшей ценой в биржевом стакане, и сделка состоится.

При совершении сделок по рыночным ордерам сразу уменьшается объем рынка, его ликвидность. Поэтому люди, совершающие сделки по выставленным ордерам (market takers) и уменьшающие ликвидность рынка, обычно платят больший биржевой сбор, чем те, кто создает новые записи – маркетмейкеры (market makers) и увеличивает ликвидность рынка.

Лимитные ордера обеспечивают ликвидность, так как они дают другим возможность торговать. В то же время, лимитные ордера гарантируют, что вы не заплатите выше (или не продадите ниже) установленной цены. Кроме того, при помощи лимитного ордера вы информируете других участников рынка о том, какую цену активов вы считаете приемлемой.

Это очень беглое введение в основы того, как работает биржевой стакан. Существуют и более сложные виды ордеров и определенные тонкости, связанные с ними, однако приведенной информации будет достаточно для дальнейших рассуждений.

Данные

Как упоминалось выше, одна из основных причин, почему эту статью мы иллюстрируем именно при помощи криптовалют, это публичность данных и легкий доступ к инструментам криптовалютных бирж. Так, большинство сайтов-организаторов торгов имеют соответствующий потоковый API, позволяющий получать информацию об обновлении данных рынка в режиме реального времени. В качестве примера воспользуемся документацией API биржи GDAX. Приведем несколько примеров основных типов событий, которые можно использовать для создания модели, реализующей машинное обучение с подкреплением.

Trade

Событие Trade соответствует осуществлению новой сделки. Каждая сделка имеет временную отметку, уникальный идентификатор, присвоенный организатором торгов, цену, размер, и вид сделки (side: buy или sell). Этих данных достаточно для построения графика движения цен.

BookUpdate

Событие BookUpdate соответствует тому, что в биржевом стакане изменились один или несколько уровней. Каждый уровень описывается типом предлагаемой сделки (buy или sell), ценой и расположением уровня.

BookSnapshot

Событие BookSnapshot похоже на событие BookUpdate, но делает полный снимок всего биржевого стакана. Последний может быть очень большим, поэтому обычно существенно более эффективным является использование события BookSnapshot, но иногда бывает полезна полная фиксация текущего состояния.

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

Несколько метрик торговой стратегии

При разработке торговых алгоритмов в первую очередь нужно задаться вопросом, какой параметр должен оптимизироваться. Один из очевидных ответов – прибыль. Но еще необходимо сравнивать рассматриваемую стратегию торгов по основным показателям с другими возможными стратегиями, а также риск стратегии и волатильность по отношению к другим видам инвестиций.

1. Чистая прибыль (чистая прибыль и убыток)

Самая простая метрика – определение прибыли и убытка на конец временного интервала с учетом соответствующих биржевых сборов.

2. Альфа- и бета-коэффициенты

Альфа-коэффициент – показатель, определяющий насколько лучше с точки зрения прибыли ваша стратегия по сравнению с альтернативными, относительно безрисковыми инвестициями, такими как государственные облигации. Даже если ваша стратегия будет прибыльной, может оказаться, что лучше инвестировать в менее рискованную альтернативу. Бета-коэффициент отражает изменчивость доходности вашей стратегии по сравнению с остальным рынком.

3. Коэффициент Шарпа

Коэффициент Шарпа – показатель эффективности стратегии, определяемый как избыток дохода на единицу принимаемого риска. Фактически это ваша отдача от капитала, скорректированная на риск. Чем выше этот коэффициент, тем лучше. То есть коэффициент учитывает как волатильность вашей стратегии, так и альтернативные безрисковые инвестиции.

4. Коэффициент максимального падения стоимости (максимальная просадка)

Максимальная просадка – мера риска, соответствующая максимальной разнице между локальным максимумом и последующим локальным минимумом. Например, максимальная просадка 50% означает, что вы в какой-то момент теряете 50% своего капитала. Чтобы вернуться к первоначальному капиталу, вам нужно вернуть 100% конечного состояния. Очевидно, что обычно стремятся к минимизации просадки.

5. Value at Risk (VaR)

Параметр Value at Risk служит стоимостной мерой риска, показывая какую часть капитала вы можете потерять в течение определенного периода времени с некоторой наперед заданной вероятностью, исходя из нормальных рыночных условий. Например, однодневный 5% VaR величиной 10% означает: есть вероятность 5%, что в течение дня вы можете потерять более 10% инвестиций.

Обучение с учителем

Прежде чем взглянуть на то, как в трейдинге может использоваться обучение с подкреплением, проанализируем, как создаются торговые стратегии при помощи обучения с учителем. Такой порядок позволит рассмотреть основные трудности построения модели и пути к разрешению имеющихся проблем обучения с учителем.

Наиболее очевидный подход, от которого мы можем отталкиваться это предсказание цены. Если мы предсказываем, что рынок будет двигаться вверх, мы можем купить актив сейчас и продать, как только рынок поднимается. Однако сразу же появляется несколько проблем.

Прежде всего, какую цену мы действительно прогнозируем? Как мы видели выше, нет одной единственной цены, по которой осуществляется сделка. Конечная цена, которую мы платим, зависит от объема, доступного на разных уровнях биржевого стакана, и комиссии биржи. Мы бы могли ответить, что мы можем предсказать среднюю цену, являющуюся промежуточной точкой между лучшей заявкой на продажу и лучшей заявкой на покупку. Это то, что делают большинство исследователей. Однако очевидно, что это лишь некоторая теоретическая цена, которая значительно отличается от цены, по которой мы платим в реальности.

Время

Следующий вопрос – какую временную шкалу мы выбираем? Предсказываем ли мы цену следующей сделки? Цену в следующую секунду, минуту, час или день? Интуитивно понятно, что чем более дальний прогноз мы хотим сделать, тем больше неопределенность и сложнее проблема прогнозирования.

Поясняющий пример

Предположим, что цена BTC составляет $10 000, и мы можем точно предсказать что «цена» изменится с $10 000 до $10 050 в следующую минуту. Означает ли это, что вы можете заработать $50 прибыли от покупки сейчас и продажи через минуту? Нет, не означает, и вот почему.

  • Мы покупаем, когда лучшее предложение это $10 000. Скорее всего, мы не сможем получить весь 1.0 BTC за эту цену, так как биржевой стакан вряд ли имеет требуемый объем. Мы оказываемся вынуждены купить, например, 0.5 BTC по лучшему предложению $10 000 и оставшиеся 0.5 BTC по следующей за ним цене, например, $10 010. Тогда средняя цена составит $10 005. Также мы платим организатору торгов сбор. Для GDAX он составляет 0,3%, то есть примерно $30. Таким есть в реальности мы заплатим $10 035.
  • Через минуту, как прогнозировалось, цена составила $10 050. Мы размещаем ордер на продажу. Однако рынок движется очень быстро, и к тому времени, когда заказ будет передан организатору торгов, цена уже снизилась до $10 045. Как и раньше, скорее всего мы не сможем продать по лучшей цене полностью 1.0 BTC, а также продадим, например, 0.5 BTC по текущей лучше цене $10 045, а остальные 0.5 BTC по следующему уровню биржевого стакана, например, $10 040. То есть мы продали 1.0 BTC за $10 042,5. Пусть сбор составит те же 0,3 %, то есть так же около $30. Тогда в реальности мы получим прибыль от сделки $10 012,5.

Как видите, в результате сделки мы не просто не заработали $50, а оказались в минусе: — $22,5, хотя и точно предсказали большое движение цены в течение следующей минуты. В приведенном примере этому послужило три причины:

  1. Отсутствие ликвидности в лучших заявках на продажу и покупку.
  2. Сетевые задержки.
  3. Сборы организатора торгов.

Политика трейдинга

Какой урок можно извлечь из приведенного примера? Чтобы заработать деньги при простой стратегии предсказания цен, мы должны прогнозировать относительно большие движения цен в течение более длительных периодов времени, а также учитывать биржевые сборы и задержку в подаче ордера. Мы могли бы сэкономить на сборах, используя лимитные ордера вместо рыночных, но тогда у нас не было бы никаких гарантий относительно соответствия наших ордеров, и нужно было бы строить сложную систему управления ордерами с возможностью их отмены.

Еще одна проблема обучения с учителем состоит в том, что оно не подразумевает какую-то линию поведения, которую далее мы будем называть политикой. В приведенном примере мы осуществили сделку, так как было предсказано повышение цены сделки, и цена действительно поднялась. Но что должен делать алгоритм, если бы цена снизилась? Продавать? Удерживать позицию? Что, если бы цена немного поднялась, а затем снова опустилась? Как должно измениться наше поведение на бирже, если мы уверены в прогнозе лишь на 65%? Все еще покупаем? Как выбрать порог для сделки или порог для размещения ордера?

Таким образом, нужна не только модель прогнозирования цен, но и некоторая политика трейдинга, основанная на правилах, учитывающих ваши прогнозы цен, и принимающих различные решения: размещение ордера, отмена ордера, ожидание изменений и т. д. Как выработать такую политику? Как оптимизировать параметры, которые ее задают и пороги принятия решений? Ответы на эти вопросы не очевидны, и многие алгоритмические трейдеры используют простые эвристики или человеческую интуицию.

Разработка торговой стратегии

К счастью, для многих из вышеперечисленных проблем есть решения. Но плохая новость заключается в том, что эти решения не очень эффективны. Рассмотрим поэтапно типичный процесс разработки торговой стратегии.

Типичный процесс разработки

  1. Анализ данных. Выполняется анализ данных для поиска возможности трейдинга. Результатом этого этапа является требующая проверки «идея» торговой стратегии.
  2. Обучение модели. При необходимости вы можете обучить одну или несколько моделей для прогнозирования доходности, необходимой, чтобы стратегия работала.
  3. Разработка политики. Далее вы разрабатываете политику и соответствующие правила, определяющие порядок действий на основе текущего состояния рынка и результатов обучения моделей. Эта политика может содержать параметры, требующие оптимизация, которая будет выполняться далее.
  4. Анализ стратегии. На этапе анализа стратегии вы проверяете разработанное решение на наборе исторических данных. Если стратегия достаточно хорошо работает при таком тестировании, можно приступать к оптимизации параметров.
  5. Оптимизация параметров. Теперь вы можете выполнить поиск, например, поиск по сетке, по возможным значениям параметров стратегии, таких как пороговые вероятности и коэффициенты, повторяя этап анализа стратегии и оптимизируя параметры стратегии и политики. На этом этапе является критичным возможность переобучения модели на наборе исторических данных, поэтому к задаче оптимизации нужно подходить с осторожностью и использовать несколько различных наборов данных, разбивая исходные наборы исторических данных на данные для обучения и тестирования.
  6. Моделирование и бумажный трейдинг. Прежде чем стратегия начинает работать «вживую», проводится моделирование разработанной стратегии трейдинга на рыночных данных, получаемых в режиме реального времени, но без реальной торговли. Такая имитация называется бумажным трейдингом, так как запись всех принятых торговых решений и отслеживание результатов осуществляется без реального открытия позиций. Этот этап помогает выявить и предотвратить переобучение, а также учесть в работе модели реальный временной отклик биржи. Если модель успешна в бумажном трейдинге, она переносится в реальное окружение.
  7. Живой трейдинг. На заключительном этапе стратегия развертывается на реальной бирже.

Недостатки показанного процесса

Этот сложный процесс может незначительно варьироваться в зависимости от компании или исследователя, но обычно именно в таком направлении происходит разработка новых торговых стратегий. В чем неэффективность такого процесса?

  1. Медленные циклы итерации процесса. Шаги 1-3 в основном базируются на интуиции, и вы не знаете, работает ли ваша стратегия, до тех пор, пока не будет выполнена оптимизация на шагах 4-5, в результате которой вы можете начать с нуля. При этом ничто не гарантирует, что следующий шаг не закончится тем же.
  2. До шага 4 вы не учитываете такие вещи, связанные с окружением модели, как задержки, биржевые сборы и ликвидность.
  3. Политика разрабатывается независимо от модели, хотя на практике они тесно связаны. Ведь прогнозы являются частью политики. Было бы более целесообразно оптимизировать их совместно.
  4. Политика обычно очень проста и ограничивается тем, что могут придумать люди.
  5. Оптимизация параметров обычно проводится неэффективно. Например, вы оптимизируете комбинацию прибыли и риска, и хотите найти параметры, дающие высокие значения коэффициента Шарпа. Вместо использования эффективного градиентного подхода обычно используется неэффективный поиск по сетке параметров.

Глубокое обучение с подкреплением для трейдинга

Обучение с подкреплением может быть описано как Марковский процесс принятия решений. Пусть есть агент (Agent) действующий в некоторой среде (Environment). Каждый раз t, когда агент принимает в качестве входного сигнала текущее состояние среды st, он принимает действие at и получает вознаграждение rt+1 и следующее состояние среды st+1. Пусть агент выбирает совершаемое им действие на основе некоторой политики π: at = π(st). Наша цель – найти политику, которая максимизирует совокупную награду Σrt за некоторый конечный или бесконечный временной интервал.

Разберемся, как термины, которые использует обучение с подкреплением, соответствуют терминологии трейдинга.

Агент

Начнем с простого. Агент – это наш торговый агент. Вы можете представлять агента как трейдера, открывающего графический интерфейс организатора торгов и принимающего решения о сделках на основе текущих состояний рынка и его счета.

Среда

Можно предположить, что средой в этом процессе является биржа. Важно отметить, что существует множество других агентов, как трейдеров-людей, так и алгоритмических игроков рынка, торгующих на одной и той же бирже. С точки зрения нашего агента эти агенты являются частью среды. Однако, объединяя сторонних агентов в одну среду, мы теряем возможность моделировать их явным образом. Например, можно вообразить, что мы могли бы научиться реконструировать алгоритмы и стратегии, которыми руководствуются другие трейдеры, а затем научиться их учитывать. Это привело бы нас к задаче настройки многоуровневого обучения (MARL), являющейся активной областью исследований в машинном обучении, о чем мы поговорим немного дальше. Пока для простоты предположим, что мы рассматриваем агентов как часть среды, с которой взаимодействует наш агент.

Состояние st

В случае трейдинга на бирже мы не видим полностью состояние среды, с которой взаимодействует наш агент. В частности, мы не знаем о том, сколько в среде имеется других агентов и каков баланс счета каждого из них. Это означает, что мы имеем дело с частично наблюдаемым Марковским процессом (POMDP). То, что наблюдает агент, это не действительное состояние системы st, а некоторая его функция xt

В нашем случае наблюдение на каждой временной отметке t – это просто история всех сделок до времени. История событий может использоваться для определения текущего состояния биржи.

Временная шкала

Необходимо также решить, в какой временной шкале мы собираемся действовать. Одни трейдеры, покупают актив и удерживают его в течение нескольких дней, недель или месяцев, делая долгосрочную ставку на основе анализа вопроса вида «Будет ли Bitcoin успешным?». Эти решения обусловлены внешними событиями и новостями или фундаментальным пониманием стоимости и потенциала активов. Такой подход сложно автоматизировать методами машинного обучения. На противоположном конце от такого подхода лежат методы высокочастотного трейдинга, в котором решения основаны почти исключительно на текущем поведении рынка и принимаются в масштабах наносекунд при использовании экстремально быстрых и простых алгоритмов на FPGA-платах.

Если в первом случае требуется широкий взгляд на картину и понимание устройства рынка, то во втором случае – сверхбыстрое сопоставление с простыми шаблонами. Нейросети завоевали свою широкую популярность, так как позволили учитывать множество данных, которые не способны обрабатывать стандартные алгоритмы, такие как линейная регрессия. Но глубокие нейронные сети сравнительно медленны и не могут делать прогнозы в наносекундных временных масштабах, следовательно не могут конкурировать по времени с алгоритмами высокочастотного трейдинга. Однако они могут служить удачным компромиссом между двумя представленными крайностями, обеспечивая необходимые решения в масштабе между миллисекундами и несколькими минутами. Обучение с подкреплением имеет то преимущество перед людьми, анализирующими информацию в тех же временных масштабах, что подразумевает возможность обработки существенно большего количества специфичной анализируемой информации.

При этом в отличие от алгоритмов высокочастотного трейдинга и людей, вычисляющих определенные шаблоны поведения рынка по даваемым рынком сигналам, например, индикатору MACD, обучение с подкреплением может отслеживать эти шаблоны автоматически, а также выявлять неочевидные паттерны поведения рынка.

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

Пространство действий

Обучение с подкреплением предполагает необходимость различать дискретные и непрерывные пространства действий. В зависимости от того, насколько сложного агента мы хотим создать, у нас есть несколько вариантов. Самый простой агент выполняет три вида действий: Ожидать, Покупать или Продавать на определенную сумму инвестиций. В более сложных моделях агент учитывает неопределенность модели при осуществлении этих операций и варьирует сумму, то есть принимает решение о дискретном действии и непрерывной величине. Сценарий усложняется, если мы хотим, чтобы агент мог размещать лимитные ордера. В этом случае он должен уметь определить две непрерывно меняющиеся величины – цену и объем ордера. Агент также должен иметь возможность отменить открытые ордера, по которым не была совершена сделка.

Функция вознаграждения

Самой простой функцией вознаграждения могла бы служить реализованная прибыль. Агент получает вознаграждение всякий раз при закрытии позиции, например, когда продает купленный ранее актив. Чистая прибыль от этой сделки может быть положительной или отрицательной и служить сигналом награды rt. Поскольку агент стремится максимизировать совокупную награду, он учится торговать с прибылью. Однако вознаграждения происходят редко, поскольку действия по покупке и продаже в сравнении со временем ожидания сравнительно редки. Это требует, чтобы агент учился, не получая частого отклика.

Альтернативой с более частой обратной связью является нереализованная прибыль, соответствующей чистой прибыли, которую бы получил агент, если бы немедленно закрыл все свои позиции. Поскольку нереализованная прибыль меняется на каждом временном шаге, она дает агенту более частый сигнал обратной связи. Но прямая обратная связь также может стимулировать слишком частые действия агента.

Кроме указанных параметров, агент может стремиться минимизировать свой риск. Стратегия с немного более низкой отдачей и низкой волатильностью обычно предпочтительнее пусть несколько более выгодной, но очень изменчивой стратегии. Учесть риск можно при помощи упомянутых выше коэффициента Шарпа и максимальной просадки. Таким образом, вознаграждение имеет обычно вид сложной функции, учитывающей факторы связанные и с прибылью, и риском.

Машинное обучение с подкреплением

Посмотрим как обучение с подкреплением может помочь разработке торговых стратегий в сравнении с классическим машинным обучением с учителем.

Комплексная сквозная оптимизация

В традиционном подходе к разработке стратегии мы должны были пройти конвейер из нескольких этапов прежде, чем перейти непосредственно к оптимизации метрики, о которой мы заботимся. Обучение с подкреплением позволяет осуществлять сквозную оптимизацию и максимизировать (с возможными задержками) награду. Используя функцию вознаграждения, мы можем непосредственно оптимизировать параметры, без необходимости выделения отдельных этапов. Например, мы можем ввести большую отрицательную награду, когда происходит сокращение капитала более, чем на 25%, заставляя Агента искать другую политику.

Определение политики

Вместо того, чтобы «вручную» программировать правила политики агента, наш агент может самостоятельно создавать правила своей политики. Нам не нужно указывать правила и пороговые значения в духе «покупать, когда вы на более, чем 75% уверены, что рынок будет двигаться вверх». Подобные правила политики агента в менее жесткой и более разнообразной форме будут найдены им в результате оптимизации метрики. Поскольку политика может оптимизироваться более сложной моделью глубокой нейронные сети, агент способен обнаружить более сложные и мощные политики, чем любые правила, которые могут быть предложены человеком.

Обучение с подкреплением непосредственно в моделируемой среде

В случае традиционного подхода для обучения с учителем мы нуждались в отдельных этапах проверки и оптимизации параметров, учета ликвидности заказов, структуры платежей, задержек и других. Поскольку обучение с подкреплением подразумевает, что агенты обучаются непосредственно в среде, все эти параметры учитываются на уровне отклика системы. Например, если агент не учитывает задержки, функция вознаграждения получает отрицательный результат, и агент стремится принять это в расчет, чтобы максимизировать прибыль.

Если пойти еще дальше, мы могли бы смоделировать реакцию других агентов в одной и той же среде, например, моделировать влияние, оказываемое нашими собственными ордерами. Изучая модель среды, в которой находится агент, и выполняя развертывание с использованием таких методов, как метод Монте-Карло для поиска в дереве, мы можем учитывать возможную реакцию других агентов рынка и непрерывно совершенствовать нашу модель на обновляющихся данных. Моделируя все более сложную среду, отражающую реальный мир, мы можем обучать очень сложных агентов, учащихся учитывать ограничения этой среды.

Адаптация к меняющимся условиям рынка

Известно, что стратегии определенные для одной среды, то есть соответствующие одним рыночным условиям, не будут эффективно работать в других рыночных условиях. Например, это касается стратегий «быков» и «медведей». Отчасти эта проблема связана с характером политик стратегий, не обладающих достаточной параметризацией, чтобы модель приспосабливалась к меняющимся условиям рынка.

Поскольку агенты, использующие обучение с подкреплением, изучают мощные политики, параметризованные нейронными сетями, они также могут научиться адаптироваться к различным рыночным условиям, видя их в исторических данных, учитывая, что они обучены в течение длительного времени и имеют достаточную память. Это позволяет им быть более надежными для меняющихся рынков, чем стратегии, созданные при обучении с учителем. Фактически мы можем напрямую оптимизировать их, чтобы они стали устойчивыми к изменениям рыночных условий, введя соответствующие штрафы в функцию вознаграждения.

Возможность моделирования других агентов

Уникальная способность агентов, использующих машинное обучение с подкреплением, заключается в том, что мы можем явно учитывать в моделировании других агентов. Если вместо рынка рассматривать совокупность различных агентов, мы можем научиться использовать их стратегии. Это похоже на предсказание поведения игроков в многопользовательских играх, таких как DotA.

Использование агента трейдинга для исследовательских задач

Рассмотрим, что делает криптовалютные биржи интересной исследовательской платформой для машинного обучения. В заключительной части статьи мы хотели бы раскрыть основные моменты того обучение с подкреплением на примере трейдинга может помочь развитию алгоритмов машинного обучения в смежных областях.

Тестирование в режиме реального времени и быстрые итерации циклов разработки

Обучение с подкреплением часто затруднительно или дорого развернуть их в реальном мире и получить необходимую обратную связь. Как мы упомянули выше, взаимодействие торговых агентов очень похоже на многопользовательскую игру, которую исключительно просто (в сравнении с обычными играми) протестировать вживую. Вы можете развернуть своего агента на бирже через API и сразу получать обратную связь в реальном мире. Используя концепцию бумажного трейдинга, и подсчитывая доход, вы можете сразу же видеть переобучение модели, если при оптимизации параметров вы теряете бумажные деньги. При этом время отклика минимально, так как сделки на ликвидных биржах совершаются очень часто.

Большие многопользовательские окружения

Если рассматривать рыночную среду как многопользовательскую игру с тысячами одновременного действующих агентов, это может служить хорошей моделью для самих игр вроде Poker или Dota2, в которых могут применяться разработанные здесь методы. Фактически проблема трейдинга выглядит даже более сложной, так как в этой среде происходит более быстрая смена состава участников, постоянно покидающих и присоединяющихся к торгам. С одной стороны, задача может звучать как определение моделей других агентов, с другой стороны – можно пытаться максимизировать информацию относительно политики, которой следуют другие агенты.

Исследование возможностей манипулирования рынком

В рамках моделирования есть возможность исследовать, как наше поведение может использоваться для управления поведением других агентов, действующих в той же среде. Если бы мы точно знали, какие алгоритмы выполняются на рынке, мы могли бы обмануть их действия, наперед предсказывая, когда и в каких объемах агенты будут покупать или продавать активы. То есть мы бы могли зарабатывать прибыль на чужих ошибках. Это касается и трейдеров-людей, которые обычно действуют, исходя из известных рыночных сигналов, такие как экспоненциальное скользящее среднее.

Редкие вознаграждения

Торговые агенты сравнительно редко получают вознаграждения от рынка. Большую часть времени они находятся в состоянии ожидания. Действия по покупке и продаже обычно составляют небольшую часть всех действий. Это открывает возможности для поиска новых алгоритмов и методов, основанных на редком отклике.

Аналогичный аргумент касается и относительно исследования данных. Многие из современных стандартных алгоритмов, таких как DQN или A3C, используют для исследований очень простой подход, в основном добавляя к политике случайный шум. Такой наивный случайный подход к исследованию данных почти никогда не наткнется на хорошие пары stat. Здесь необходимы новые подходы.

Многопользовательская игра множества алгоритмических агентов

Аналогично тому, как в го и шахматах может происходить игра компьютера с самим собой, мы можем одновременно обучить большое количество конкурирующих агентов и исследовать, как динамика такого игрушечного рынка повторяет паттерны, свойственные динамике реального финансового рынка. Вы способны сталкивать агентов различного типа, с разными стратегиями и политиками, или использовать данные реального рынка в качестве контролируемого сигнала обратной связи, чтобы «заставить» агентов в симуляции коллективно вести себя, как реальный рынок.

Непрерывная временная шкала

Поскольку рынки меняются в масштабах микро- и миллисекунд, трейдинг является хорошим приближением непрерывной временной области. Мы можем не фиксировать дискретные моменты времени, а рассматривать временную шкалу, как непрерывную, и считать факт выбора времени принятия действия составляющей обучения агента. То есть агент не только решает, какие именно действия предпринять, но и когда точно их осуществить. Развитие исследований, связанных с фактором времени, полезно для многих других областей, например, робототехники.

Нестационарное непрерывное обучение с подкреплением

Рыночная среда по своей природе не стационарна. Рыночные условия постоянно меняются, агенты приходят и уходят, меняют свои стратегии. Можем ли мы обучить агентов, которые учатся адаптироваться к меняющимся рыночным условиям без того, чтобы забывать то, что они узнали раньше? Например, может ли агент успешно перейти от рынка «медведей» к рынку «быков» и обратно, не переучиваясь? Может ли агент подстроиться под другого агента, обучаясь у него взаимодействию со средой?

Перенос обучения и вспомогательные задания

Обучение с подкреплением может занять длительное время, поскольку агенту необходимо не только научиться принимать правильные решения, но и понять «правила игры». Существует несколько подходов, позволяющих обучить модель более быстро, такие как перенос обучения и использования вспомогательных заданий. Трейдинг является хорошей платформой для исследования таких новых подходов ускоренного машинного обучения.

Заключение

Целью этой статьи было дать введение в трейдинг при помощи машинного обучения с подкреплением и предложить несколько аргументов в пользу того, почему такой подход может усовершенствовать современные стратегии трейдинга и смежные области применения машинного обучения. Мы разобрали базовые термины трейдинга и метрики, которые могут применяться для машинного обучения, а также рассмотрели проблематику использования подхода машинного обучения с учителем, и как указанные трудности решаются при переходе на обучение с подкреплением.

Машинное обучение в трейдинге: теория, практика, торговля и не только

Знаю, что есть на форуме энтузиасты machine learning и статистики. Предлагаю в этой теме обсуждать (без холиваров), делиться и обогащать собственную копилку знаний в этой интересной сфере.

Для новичков и не только есть хороший теоретичекий ресурс на русском языке: http://www.machinelearning.ru/

Небольшой обзор литературы по методам на тему отбора информативных признаков: /go?link=https://habrahabr.ru/post/264915/

Предлагаю задачу номер один. Позже выложу ее решение. СанСаныч ее уже видел, прошу не говорить ответ.

Введение: для построения алгоритма торговли необходимо знать, какие факторы будут положены в основу предсказания цены, или тренда, или направления открытия сделки. Отбор таких факторов непростая задача, и она бесконечносложная.

Во вложении архив с искуственным набором данных формата csv, который сделал я.

Данные содержат 20 переменных с префиксом input_, и одну крайнуюю правую переменную output.

Переменная output зависит от некоторого поднабора переменных input (поднабор может содержать от 1 до 20 inputs).

Задача: с помощью любых методов (машинного обучения) отобрать переменные input, с помощью которых можно определить состояние переменной output на существующих данных.

Решение можно выложить здесь в виде: input_2, input_19, input_5 (пример). И можно также описать найденную зависимость входов и выходной переменной.

Кто справится, тот молодец ) С меня готовое решение и объяснение.

  • www.machinelearning.ru
  • Тренд и уровни
  • Новая версия платформы MetaTrader 5 build 2755: Улучшения в окне котировок и отладчике
  • Общайтесь с разработчиками через Сервисдеск!

Deus Ex Machina.

Такими словами открывают перед читателем свои страницы многолетние тома философских трактатов.

Ну, и, никто не хочет машин лёрнинг заниматься?

Deus Ex Machina.

Такими словами открывают перед читателем свои страницы многолетние тома философских трактатов.

Ну, и, никто не хочет машин лёрнинг заниматься?

Точнее, к тому, что было раньше.

И в этом ищет устойчивую зависимость.

Точнее, к тому, что было раньше.

И в этом ищет устойчивую зависимость.

В общем, так. Чтобы немного подстегнуть тему, я обещаю перевести 5 кредитов тому, кто правильно решит поставленную задачку.

Выдать набор информативных входов.

Сообщество мне их начислило за активность на форуме, я их обратно в систему верну, но при это получим некоторую интересную дискуссию.

Заявленная тема «Машинное обучение» важна, сложна и огромна. Судя по первому посту Вы хотите начать с одного из подготовительных и важных этапов — «Оценка и выбор предикторов «. Что Вы хотите решить или показать с приведенной задачей? Новый метод, способ или что?

Содержание и тема топика не совпадают.

Конкретизируйте цель, может и будут заинтересованные люди.

Мало кто имеет свободное время для решения задач с непонятными целями.

Всегда учимся на прошлом.

Смотрим столетиями на график. Оба на и видим «три солдата», потом видим «голова и плечи». Сколько уже таких фигур увидели и верим в эти фигуры, торгуем.

А если задачу поставить так:

1. Автоматические найти такие фигуры, причем не вообще ко всем графикам, а к конкретной валютной паре, те которые встречались недавно, а не три века назад у японцев при торговле рисом.

2. А годятся ли у нас те исходные данные, на которых мы автоматически ищем такие фигуры — паттерны.

Для ответа на первый вопрос рассмотрим алгоритм, который называется «лес случайных деревьев» — random forest. Алгоритм в качестве исходных данных для своей работы берет котировку одной или нескольких валют, индикаторы, приращения цен — все, что напридумывал человек. 10-5-100-200 . входных переменных. Затем берет весь набор значений переменных, относящихся к одному моменту времени, соответствующих одному бару и ищет такую комбинацию этих входных переменных, которая бы соответствовала на исторических данных вполне определенному результату, например, ордеру BUY. А другой набор комбинаций другому ордеру — SELL. Каждому такому набору соответствует отдельное дерево. Опыт показывает, что для входного набора часовика из 18000 баров (около 3-х лет) алгоритм находит 200-300 деревьев. Это и есть набор паттернов, почти аналоги «голов и плеч», и целых рот солдатов.

Проблема в этом алгоритме состоит в том, что такие деревья могут ухватить некоторую конкретику, которая не встретится в будущем. Это называется здесь на форуме «сверхподгонка», в машинном обучении «переобучение». Известно, что весь большой набор исходных переменных можно поделить на две части: относящиеся к выходной переменной и не имеющие отношение шум. Вот Бурнаков и пытается отсеять те, которые не имеют отношения к результату.

При построении трендовых ТС (BUY, SELL) любые разновидности машек относятся к шуму!

Судя по первому посту Вы хотите начать с одного из подготовительных и важных этапов — «Оценка и выбор предикторов». Что Вы хотите решить или показать с приведенной задачей? Новый метод, способ или что?

Содержание и тема топика не совпадают.

Конкретизируйте цель, может и будут заинтересованные люди.

Мало кто имеет свободное время для решения задач с непонятными целями.

Если кто-решит или хотя приблизиться к верному решению (то есть, тему будет жива), то я:

выложу правильное решение — алгоритм генерации набора данных

объясню, почему ряд других алгоритмов «Оценки и выбора предикторов » не справились

выложу свой метод, который робастно и чувствительно решает похожие задачи — выдам теорию и выложу код на R.

Это сделано для взаимного обогащения «понималки» задач машинного обучения.

машинное обучение

На Санкт-Петербужской бирже, по мнению нейросети Investington, сейчас актуальны следующие позиции:

ENPH, оптимальная цена для покупки — 194.9$. Цель — 207.9644$. Вероятность роста 88.6%
NTLA, оптимальная цена для покупки — 136.71$. Цель — 145.1208$. Вероятность роста 88.6%
OIS, оптимальная цена для покупки — 5.51$. Цель — 5.8889$. Вероятность роста 86.8%
AMCX, оптимальная цена для покупки — 48.05$. Цель — 50.9884$. Вероятность роста 86.2%
FATE, оптимальная цена для покупки — 84.09$. Цель — 89.4624$. Вероятность роста 86.1%

NTLA, купили по 145.31$. Продали 9 июля по 155.8643$. Итоговый процент +7.26%
BBBY, купили по 29.0$. Продали 13 июля по 30.7499$. Итоговый процент +6.03%
TAL, купили по 19.24$. Продали 9 июля по 20.7772$. Итоговый процент +7.99%
DDS, купили по 181.66$. Продали 4 августа по 168.8913$. Итоговый процент -7.03%

Нейросеть рекомендует сегодня купить

    • 03 августа 2022, 20:44
    • |

    На Санкт-Петербужской бирже, по мнению нейросети Investington, сейчас актуальны следующие позиции:

    APPS, оптимальная цена для покупки — 63.15$. Цель — 67.6986$. Вероятность роста 88.3%
    XPO, оптимальная цена для покупки — 84.95$. Цель — 90.1935$. Вероятность роста 88.2%
    GBT, оптимальная цена для покупки — 26.4099$. Цель — 28.2546$. Вероятность роста 86.2%
    ACAD, оптимальная цена для покупки — 21.12$. Цель — 22.806$. Вероятность роста 86.0%
    DDS, оптимальная цена для покупки — 178.483$. Цель — 190.909$. Вероятность роста 86.0%

    TAL, купили по 21.18$. Продали 9 июля по 22.8258$. Итоговый процент +7.77%
    NTLA, купили по 155.63$. Продали 3 августа по 134.325$. Итоговый процент -13.69%
    OII, купили по 15.07$. Продали 3 августа по 13.12$. Итоговый процент -12.94%
    PLAY, купили по 38.6$. Продали 3 августа по 32.19$. Итоговый процент -16.61%

    Нейросеть рекомендует сегодня купить

      • 02 августа 2022, 19:27
      • |

      На Санкт-Петербужской бирже, по мнению нейросети Investington, сейчас актуальны следующие позиции:

      NTLA, оптимальная цена для покупки — 138.45$. Цель — 147.0224$. Вероятность роста 89.7%
      DDS, оптимальная цена для покупки — 181.8$. Цель — 195.8405$. Вероятность роста 89.1%
      PBF, оптимальная цена для покупки — 9.15$. Цель — 9.8206$. Вероятность роста 88.8%
      XPO, оптимальная цена для покупки — 83.59$. Цель — 89.5144$. Вероятность роста 87.1%
      SWBI, оптимальная цена для покупки — 24.0$. Цель — 25.8619$. Вероятность роста 86.8%

      NTLA, купили по 163.71$. Продали 2 августа по 138.93$. Итоговый процент -15.14%
      DDS, купили по 183.93$. Продали 2 августа по 181.59$. Итоговый процент -1.27%
      ENDP, купили по 4.3$. Продали 21 июля по 4.6273$. Итоговый процент +7.61%
      VRTV, купили по 60.79$. Продали 29 июля по 64.4493$. Итоговый процент +6.02%

      Нейросеть рекомендует сегодня купить

        • 30 июля 2022, 18:31
        • |

        На Санкт-Петербужской бирже, по мнению нейросети Investington, сейчас актуальны следующие позиции:

        VCYT, оптимальная цена для покупки — 43.33$. Цель — 46.5126$. Вероятность роста 88.6%
        TRUP, оптимальная цена для покупки — 116.36$. Цель — 124.1757$. Вероятность роста 88.2%
        MSTR, оптимальная цена для покупки — 614.0$. Цель — 660.3403$. Вероятность роста 87.6%
        PBF, оптимальная цена для покупки — 9.17$. Цель — 9.8241$. Вероятность роста 86.8%
        HA, оптимальная цена для покупки — 19.86$. Цель — 21.3092$. Вероятность роста 86.5%

        NTLA, купили по 167.53$. Продали 30 июля по 141.35$. Итоговый процент -15.63%
        DDS, купили по 184.57$. Продали 30 июля по 187.22$. Итоговый процент +1.44%
        VRTV, купили по 61.49$. Продали 29 июля по 65.7951$. Итоговый процент +7.0%
        ENDP, купили по 4.315$. Продали 20 июля по 4.5829$. Итоговый процент +6.21%

        машинное обучение в трейдинге

        На Смартлабе что-то активизировались дискуссии о возможности использования методов машинного обучения (нейронных сетей как их частный случай) в трейдинге. У меня сложилось ощущение, что дискутирующие совсем не понимают что это за зверь такой — машинное обучение (ML) и зачем он нужен.

        Предположим есть задача: зная силу, с которой ударяют по мячику и его массу описать его движение. Можно ли эту задачу решить методами ML? Ну, наверное можно, но не нужно 🙂 Классическая механика сделает это куда быстрее, надежнее, точнее. Или же пример поближе: зная себестоимость, среднюю цену продажи и объем продаж можно предсказать валовую прибыль.

        А что если мы не знаем массу мячика? Ну, можно провести один или несколько опытов, а по ним уже, зная (из механики) уравнения движения, её определить, чтобы в дальнейшем использовать для предсказаний. Опять пример поближе: узнав маржу по первому кварталу, и зная производственные планы, можно прикинуть прибыль за год (привет, СарНПЗ)!

        • спецраздел: ,

        Искусственный трейдер. Часть 2. Парсинг и визуализация тренировочного набора данных в Python

          • 29 февраля 2022, 12:55
          • |

          Всем, привет! Неделя выдалась «боевой», надеюсь все живы-здоровы!
          В продолжении топика «Искусственный трейдер. Часть 1. Подготовка данных для машинного обучения (видео)»
          Рассмотрим python-код «парсера» и «визуализатора» данных. Скажу сразу, что этот код вы можете легко модифицировать для анализа ваших данных любого другого формата.
          Сам датасет формируется при помощи платформы Jatotrader, которая во время воспроизведения исторических данных сохраняет параметры частотных графиков для дальнейшего анализа и построения модели машинного обучения в Python.
          Для работы с тестовой выборкой нам понадобятся:
          1. Установленная платформа Jatotrader FREE (или круче) версии 2.9.3 (или выше). С ее помощью вы сможете создавать любые тестовые наборы для любых инструментов. Либо воспользоваться, в качестве примера, готовым набором для фьючерсного контракта RIH0 с 20.12.19 по 28.02.20 (по два частотных графика 500 и 125 тиков на бар для каждой торговой сессии).

          • спецраздел: , ,

          Искусственный трейдер. Часть 1. Подготовка данных для машинного обучения (видео).

            • 22 февраля 2022, 13:17
            • |

            Всех с наступающим (и никаких отступлений!) Днем Защитника Отечества ака Денем Советской Армии и Военно-Морского Флота!
            И за тех, кто в море! Ну а те кто в ЗОЖе, начинаем готовить себе замену — искусственного трейдера.
            Важнейшей частью любого алгоритма машинного обучения являются данные, на которых происходит обучение, а еще важнее качество этих данных.
            Для приготовления искусственного трейдера нам понадобятся следующие ингредиенты:
            1.Установленная платформа Jatotrader (FREE или круче) версии 2.9.3 или выше. Можно обойтись и без установки Джато и взять тестовый набор данных отсюда. Описание содержимого файлов датасета — в конце топика.
            2.Питон.Jupyter Notebook (Anaconda3)
            Короче говоря, Jatotrader мы используем как предварительный обработчик и генератор данных для машинного обучения (МО), а Python для создания модели, обученной на этих данных. Возможности Jatotrader позволяют создавать частотные графики из тиковых данных, примерно такого вида

            Что такое машинное обучение в трейдинге

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

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

            Могут ли машины торговать лучше людей?

            Торговля требует большого внимания и чувствительности к рынку. Опытные трейдеры полагаются на множество источников информации:

            • новости;
            • исторические данные;
            • отчетность;
            • сообщения от инсайдеров компании и много другое.

            Риск высок, и необходимо учитывать множество переменных. По этой причине некоторые финансовые учреждения полагаются исключительно на машины для совершения сделок. Это означает, что компьютер с высокоскоростным подключением к интернету может выполнять тысячи сделок в течение дня, получая прибыль от небольшой разницы в ценах. Это называется высокочастотной торговлей. Ни один человек не может конкурировать с этими алгоритмами, они очень быстрые и точные.

            Обратной стороной этого подхода является то, что средний человек может не иметь доступа к таким инструментам, так как они слишком дорогие. Однако с такими торговыми платформами, как Robinhood или TD Ameritrade, любой человек может играть на фондовом рынке со своего компьютера или смартфона. И вам даже не нужно платить брокерские сборы, что делает автоматическую торговлю очень привлекательной для новичков. Давайте разберемся можно ли использовать машинное обучение для прогнозирования движения цены на финансовых рынках?

            Как работает машинное обучение в торговле

            Трейдеры пользуются алгоритмами машинного обучения, чтобы повысить надежность прогнозов входной информации. Предсказания основываются на других алгоритмических программах, которые разрабатываются другими фирмами, однако и эти прогнозы можно улучшить.

            Удобный трюк, которым пользуются специалисты по трейдингу с помощью машинного обучения, — это объединение различных прогнозов в один, который в таком случае получается более точным. Это называется ансамблем, и он работает очень хорошо.

            Торговля заключается в выявлении определенных структур, которые ограничиваются временем и пространством, и правильном их использования. Процесс поиска закономерностей человеком трудоемок и занимает много часов.

            Однако алгоритмы ИИ — отличные машины для нахождения этих закономерностей. Когда трейдер предполагает нарушение в определенном потоке данных, он может ускорить процесс поиска с помощью машинного обучения.

            То есть искусственный интеллект может выявлять нужный паттерн, если им управляет профессиональный трейдер, который понимает, что ему нужно искать. После чего паттерны могут использоваться остальными трейдерами, которые подключают к этому свой опыт и аналитические способности. Также можно использовать алгоритмы для создания автоматических торговых систем.

            В высокочастотной торговле машины выполняют по сто тысяч сделок в сутки, используя недостатки, заметные в максимально коротких промежутках времени. Человек не может заниматься таким трейдингом, так он физически не успеет обдумать весь процесс, однако роль человека заключается в определении правил, по которым работает алгоритм.

            Стоит учесть, что условия на рынке подвержены частым изменениям, поэтому торговые роботы подлежат постоянной настройке. Что занимает большое количество сил и времени.Тут на помощь приходит машинное обучение, с помощью которого можно автоматизировать повторные калибровки. То есть искусственный интеллект выполняет много монотонной работы, которая в противном случае ложилась бы на плечи игроков.

            ИИ сегодня умнее людей?

            Если смотреть правде в лицо, даже очень современные алгоритмы машинного обучения сегодня очень примитивны относительно мозга человека.

            Когда ИИ побеждает шахматиста в партии, это просто означает, что машина обгоняет человека в гонке. Естественно, машина более быстрая, но от этого она не становится лучше, она лишь отлично выполняет очень узкопрофильное назначение в определенном потоке условий.

            Стоит отметить, что трейдинг не является узкой задаче. Торговля — это всегда широконаправленная конкуренция с другими людьми, которые используют все свои умственные способности, чтобы перехитрить вас.

            Однако построить торговый алгоритм, который сможет обхитрить рынок, может оказаться простой задаче, если вы забываете о всех расходах при совершении сделок. В таком случае комиссия за транзакционные издержки и проскальзывание съест большую часть прибыли. Этого хватит, чтобы стереть доход, полученный при моделировании.

            Важной концепцией машинного обучения является нахождение последовательностей в исторических данных, чтобы применить их для прогнозирования будущей цены. Однако в трейдинге это не всегда действует правильно. Игроки соревнуются в поиске тех же паттернов, поэтому паттерны обнаруживаются, используются, а затем перестают работать. Это значит, что шаблон существует непродолжительное время, и вам нужно время от времени пребывать в поиске новых.В этом аспекте сейчас люди намного лучше ИИ.

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

            Где лучше всего работают алгоритмы?

            Плодородной почвой для алгоритмов могут быть неэффективные рынки. То есть рынки с небольшим количеством участников торгов, высоким барьером для входа, небольшим объемом торгов и небольшим количеством игроков. Здесь использование ИИ может действительно принести успех в торговлю.

            На этих рынках автоматический трейдинг, в частности машинное обучение, только появляются, и торговцы, которые создают механизмы автоматической торговли, могут оказаться лидерами в получении хорошей прибыли.

            optionwatcher

            Мало кто способен игнорировать присутствие искусственного интеллекта и машинного обучения в современном мире, тем более если вы работаете с финансовой математикой. В данной статье Майкл Харрис рассуждает о влиянии этих технологий на трейдинг и инвестирование. Майкл Харрис — квантовый, системный и дискреционный трейдер и автор бестселлеров.

            Ниже приведены выдержки из презентации, которую я провел в прошлом году в Европе в качестве приглашенного докладчика для группы малоизвестных инвесторов и трейдеров с крупным капиталом. Определенная организатором тема была посвящена влиянию искусственного интеллекта (ИИ) и машинного обучения (МО) на торговлю и инвестиции. Выдержки, приведенные ниже, состоят из четырех разделов и охватывают около половины первоначальной презентации.

            Общее влияние ИИ и машинного обучения на торговлю

            Искусственный интеллект позволяет заменить людей машинами. В 1980-х годах исследования ИИ были основаны, главным образом, на экспертных системах и нечеткой логике. С уменьшением стоимости вычислительной мощности, использование машин для решения широкомасштабных задач оптимизации стало экономически целесообразным. В результате достижений в области аппаратного и программного обеспечения, в настоящее время ИИ ориентирован на использование нейронных сетей и других методов обучения для выявления и анализа предикторов, также известных как функции или факторы, которые имеют экономическую ценность и могут использоваться с классификаторами для разработки прибыльных моделей. Такое конкретное применение искусственного интеллекта обычно называется машинным обучением (англ. machine learning, ML).

            Применение методов разработки торговых стратегий на основе ИИ, как на краткосрочный период, так и для долгосрочного инвестирования, набирает популярность, и в этой области существует несколько очень активных хедж-фондов. Тем не менее, широкое признание этой новой технологии происходит медленно вследствие влияния различных факторов, наиболее важным из которых является то, что ИИ требует инвестиций в новые инструменты и человеческий талант. Большинство фондов используют фундаментальный анализ, потому что его изучают менеджеры при прохождении своих программ MBA. Существует не так много хедж-фондов, полагающихся исключительно на ИИ. Применение ИИ растет на индивидуальном уровне, но большинство трейдеров по-прежнему используют методы, предложенные в середине двадцатого века, включая традиционный технический анализ, потому что их легко освоить и применить.

            Обратите внимание на то, что ИИ и МО используются не только для разработки стратегий трейдинга, но и в других областях, например, при разработке алгоритмов поиска ликвидностии предложения портфелей клиентам. Таким образом, по мере распространения применения ИИ, количество людей, участвующих в торговых и инвестиционных решениях, уменьшается, и это очевидным образом влияет на рынки и ценовые маневры. Рано строить предположения об общих последствиях этой новой технологии для отрасли, но возможно, что широкое использование ИИ приведет к созданию более эффективных рынков с более низкой волатильностью на продолжительный период времени, с последующими за этим случайными скачками волатильности вследствие изменений режима. Это становится возможным в связи с тем, что воздействие субъективной оценки информации людьми будет сведено к минимуму, а вместе с ним и связанный с этим шум. Но в этом нам еще предстоит убедиться на практике.

            Влияние искусственного интеллекта и машинного обучения на поколение «Альфа»

            На этих начальных этапах внедрения технологий ИИ будут доступны возможности для тех, кто понимает его, и знает, как снизить риски. Одна из проблем торговых стратегий, основанными на ИИ, заключается в том, что они могут создавать модели, которые будут хуже случайных. Попытаюсь объяснить, что я имею в виду: традиционный технический анализ — это невыгодный метод трейдинга, потому что стратегии, основанные на графических паттернах и индикаторах, извлекают прибыль из распределения с нулевым средним значением до любых транзакционных издержек. Всегда найдутся трейдеры, оказавшиеся в нужном хвосте распределения, и это создает ложное впечатление о том, что эти методы имеют экономическую ценность. Мои исследования показывают, что в особенности на фьючерсных и валютных рынках трудно достичь долгосрочной рентабельности, вне зависимости от используемого метода. Ведь эти рынки предназначены для того, чтобы приносить прибыль маркет-мейкерам. Тем не менее, в течение более коротких периодов времени некоторые трейдеры могут получить большую прибыль на рынках с использованием кредитного плеча благодаря удачному стечению обстоятельств. Тогда эти трейдеры приписывают свой успех собственным стратегиям и навыкам, а не удаче. Поскольку трейдеры ИИ «хуже случайных» удаляются с рынка, и остаются только те, у кого есть надежные модели, битва за прибыль будет напряженной.

            ИИ и МО могут иметь дополнительные последствия, такие как компромисс между смещением и дисперсией. Погрешность анализа данных может привести к возникновению стратегий, которые слишком подогнаны под прошлые данные, но сразу же терпят неудачу, имея дело с новыми, либо слишком простых стратегий, которые не могут улавливать важные сигналы данных, имеющих экономическую ценность. Результатом этого компромисса являются стратегии «хуже случайных» и отрицательный перекос в распределении прибыли таких трейдеров еще до того, как будут добавлены издержки транзакции. Это дает возможность получать прибыль крупным фондам и инвесторам в эпоху после количественного смягчения. Поскольку трейдеры ИИ «хуже случайных» удаляются с рынка, и остаются только те, у кого есть надежные модели, битва за прибыль будет напряженной. Пока слишком рано заниматься домыслами по поводу того, кто победит: ИИ трейдеры или крупные инвесторы.

            Также я хотел бы упомянуть о распространенном заблуждении в этой области: некоторые люди считают, что ценность состоит в использовании алгоритмов МО. Это не так. Истинная ценность — в предикторах, также известных как функции или факторы. Алгоритмы МО не могут найти золото там, где его нет. Одна из проблем заключается в том, что большинство профессионалов МО используют одни и те же предикторы и пытаются разработать модели в циклическом режиме, которые приведут к лучшим результатам. На этот процесс влияет погрешность анализа данных и в конечном итоге он терпит неудачу. В двух словах, анализ данных является результатом опасной практики использования данных со многими моделями по нескольку раз до тех пор, пока результаты не будут приемлемы в качестве образцов обучения и тестирования. Мои исследования в этой области показывают, что если простой классификатор, такой как бинарная логистическая регрессия, работает неудовлетворительно с заданным набором предикторов, то весьма вероятно, что экономической ценности не существует. Таким образом, успех зависит от так называемого Feature Engineering (создание параметров, описывающих объекты — прим. переводчика), являющегося одновременно и наукой, и искусством, и который требует знаний, опыта, воображения для создания параметров, имеющих экономическую ценность, и лишь небольшой процент профессионалов может с этим справиться.

            Влияние искусственного интеллекта и машинного обучения на технический анализ

            Мы должны провести различие между традиционным и количественным техническим анализом, потому что все методы, основанные на анализе показателей цен и объема, относятся к этому вопросу. С самого начала, традиционный технический анализ, то есть графические паттерны, некоторые простые индикаторы, определенные теории Price Action и т.д., не был эффективен. Публикации, рекламирующие эти методы, не считая некоторых недостаточных попыток ограниченного масштаба и охвата, никогда не соответствовали своим долгосрочным статистическим ожиданиям, а лишь обещали, что применение того либо иного правила несет в себе возможность получения прибыли. Поскольку прибыль и убытки на рынках следуют некоторым статистическим распределениям, всегда были те, кто приписывал свою удачу этим методам. В то же время, вся индустрия развивалась вокруг этих методов, потому что им было легко научиться. К сожалению, многие считали, что смогут получать прибыль, эффективнее используя всем известные методы, и результатом этого стала массовая передача состояния этих наивных трейдеров маркет-мейкерам и другим хорошо информированным профессионалам.

            Успех зависит от так называемого Feature Engineering, являющегося одновременно и наукой, и искусством, и который требует знаний, опыта и воображения. В начале 1990-х годов некоторые специалисты рынка поняли, что большое количество частных трейдеров вели торговлю, используя эти наивные методы. Некоторые разработали алгоритмы и торговые роботы ИИ, чтобы заранее определить формации, а затем торговать против них, вызывая в процессе волатильность, с которой частные трейдеры, также известные как “слабые руки”, не могли справиться. Более фундаментально провал традиционного технического анализа можно объяснить исчезновением с рынков высокой сериальной корреляции, начиная с 1990-х годов. По сути, это была высокая сериальная корреляция, которая создала ложное впечатление о том, что эти методы работали. В настоящее время, за некоторым исключением, рынки возвратились к среднему уровню, не оставляя места для простых методов технического анализа. Тем не менее, некоторые количественные методы технического анализа часто работают хорошо, такие, как модели возврата к среднему и статистического арбитража, включая алгоритмы МО, использующие функции с экономической стоимостью.

            Обратите внимание на то, что этот тип арбитража вряд ли повторится в случае ИИ и МО из-за большого разнообразия моделей и того факта, что большинство из них запатентованы, все же основной проблемой этой новой технологии не является предвзятость подтверждения, как в случае с традиционным техническим анализом, а предвзятость анализа данных.
            На мой взгляд, процесс наблюдение за рынком и просмотра графиков устаревает. Будущее трейдинга — это обработка информации, разработка и проверка моделей в режиме реального времени. Хедж-фонд будущего не будет полагаться на анализ графиков. Некоторые все еще делают это, потому что находятся на переходном этапе, где старые пути встречаются с новой эпохой. Многим трейдерам, не знакомым с ИИ, будет трудно конкурировать в будущем и они выйдут из игры.

            Победители и проигравшие в новой технологии трейдинга

            Применение ИИ изменит торговлю во многих отношениях, и это происходит уже сейчас. Инвесторы вскоре могут выяснить, что среднесрочные прибыли будут намного ниже ожиданий по истечении срока текущей тенденции, вызванной QE. Если этот сценарий реализуется, тогда инвесторы должны будут вернуться к старому способу поиска хорошего финансового консультанта, который сможет предложить составление портфеля и выбрать ценные бумаги, которые будут повышаться в цене. В некоторых случаях консультантом будет программа ИИ, и этот процесс будет выполняться в режиме онлайн.

            Трейдерам необходимо ознакомиться с этой новой технологией. Большинство трейдеров все еще «воюют» с помощью старых методов и просто надеются, что принцип «купи во время падения» будет работать и приносить прибыль еще несколько лет.

            Будущее торговли — это обработка информации, разработка и проверка моделей в режиме реального времени.

            Одной из проблем является моральный риск, культивируемый центральным банком при непосредственной поддержке финансовых рынков в течение последних восьми лет. Многие трейдеры и инвесторы теперь считают, что медвежий рынок невозможен, потому что центральный банк будет там, чтобы перераспределять их убытки на всех остальных, поэтому они могут сохранять свою прибыль. В результате большинство участников рынка не готовы к следующему существенному изменению рыночного режима и могут столкнуться с разрушительными потерями.

            В Интернете есть отличные ресурсы о МО, ИИ и трейдинге. Лучший способ обучения — попытаться решить несколько практических задач. Но я считаю, что для большинства трейдеров трансформация будет невозможна. Сочетание навыков, необходимых для понимания и применения правил ИИ, исключает 95% трейдеров, привыкших проводить линии на графиках и просматривать скользящие средние.

            Инвесторы должны провести свое собственное исследование и обратиться к компетентному финансовому консультанту, который знаком с этими новыми разработками. У каждого инвестора свой уровень неприятия рисков, и в данном случае трудно предложить общие рекомендации. В скором времени получат распространение консультанты-роботы, и выбор того, кто бы соответствовал конкретным потребностям и задачам, может оказаться сложной задачей.

            Всякий, кто не знаком с МО, ИИ и их отношением к трейдингу и инвестированию, может счесть более выгодным проконсультироваться с профессионалом, который способен ускорить процессы в этой области, вместо того, чтобы отправиться в путешествие по чтению книг и статей, чем нужно заниматься после освоения основ. Надеюсь, мне удалось донести смысл общей идеи, которая может послужить отправной точкой в этом интересном и потенциально полезном начинании.

            Об авторе: Майкл Харрис — трейдер и автор бестселлеров. Он также является разработчиком первого коммерческого программного обеспечения для идентификации моделей ценовых паттернов Price Action 17 лет назад. В течение последних семи лет он работал над разработкой DLPAL — программного обеспечения, которое может использоваться для выявления краткосрочных аномалий в рыночных данных для использования с моделями стационарного и машинного обучения.

            CyberCortex® Машинное Обучение для Трейдинга

            CyberCortex® (КиберКортекс®) – это программа для алгоритмического трейдинга по автоматическому поиску закономерностей в биржевых данных, базирующаяся на современных технологиях машинного обучения. Ядром CyberCortex® является один из мощнейших алгоритмов классификации – алгоритм адаптивного бустинга решающих деревьев.

            Программа позволяет загружать любые биржевые данные в формате CSV, обучать автоматический алгоритм классификации и строить прогноз. Но самое главное CyberCortex® дает возможность непосредственно real-time получать данные из платформы MetaTrader 4, производить анализ на лету и возвращать результат обратно в терминал, для того чтобы Вы или Ваш робот могли использовать прогноз в торговле. Для этих целей в CyberCortex® использована технология именованных каналов, которая позволяет программам с высокой скоростью общаться между собой непосредственно внутри оперативной памяти компьютера.

            Преимущества CyberCortex® в сравнении с существующими аналогами:
            Простота освоения. Чтобы воспользоваться CyberCortex® Вам не понадобится часами изучать громоздкие инструкции по эксплуатации, подбирать разные настройки и конвертировать файлы с непонятными расширениями в файлы с еще более непонятными расширениями. В CyberCortex® все элементарно просто и работает из коробки. К тому же, весь интерфейс программы на русском языке.
            Используемый алгоритм. Для многих трейдеров технологии из области искусственного интеллекта начинаются и заканчиваются на избитой теме классических нейронных сетей. Но алгоритм бустинга, реализованный в CyberCortex® – это на порядок более мощный и современный инструмент потому что:
            1. Алгоритм в CyberCortex® не требует сокращать размерности входных данных и выискивать какие признаки несут информативность, а какие нет. Напротив, чем больше входных данных имеется, тем выше вероятность правильной классификации. Неинформативные признаки автоматически отсеиваются. Также нет никакой необходимости предварительно нормировать данные.
            2. Алгоритм в CyberCortex®, в отличие от нейронных сетей, не требует настраивать параметры обучения для того, чтобы получить оптимальный результат, практически не подвержен склонности к переобучению, а также позволяет классифицировать данные на произвольное число классов.
            3. Удивительная особенность реализованного алгоритма в том, что, если в данных содержатся закономерности, – они будут найдены. Если же в данных закономерности отсутствуют, то прогнозы алгоритма будут не лучше простого подбрасывания монетки, что, собственно, логично.
            Удобство. CyberCortex® связан с самым популярным терминалом для торговли – MetaTrader 4. Это позволит Вам использовать наработки миллионов трейдеров, а также всю вашу фантазию для построения своей собственной прибыльной торговой системы, использующей в своей основе интеллектуальный анализ данных.

            Наша целевая аудитория – это люди, готовые выйти за рамки «торговли по скользящей средней или стохастику», а также просто энтузиасты, готовые пробовать и испытывать новые инструменты.

            Предупреждение 1. Разработчики не гарантируют, что, приобретя программу, Вы сразу же построите прибыльную торговую систему. Увы, но Граалей не существует. И Вам все-равно надо будет активно шевелить извилинами и использовать Вашу фантазию по максимуму, чтобы получить хороший результат.
            Предупреждение 2. Разработчики гарантируют, что все алгоритмы, реализованные в CyberCortex® реализованы максимально качественно с точки зрения заложенной в них математики.

            Мы протестировали правильность работы CyberCortex® на данных, взятых с этих сайтов:
            _http://archive.ics.uci.edu/ml/datasets/Arcene
            (репозиторий данных по машинному обучению)
            _http://www.uta.edu/faculty/manry/new_classification.html
            (сайт лаборатории по распознаванию изображений университета Арлингтона в Техасе, США).

            В первом случае использовались данные анализа крови здоровых людей и людей больных раков. Гипотеза заключалась в построении модели, способной прогнозировать рак у человека на основе его анализов. Классифицировать требовалось на 2 класса (болен — не болен).
            Длина обучающего примера составила 10000 признаков. 3000 из которых носили случайный характер и специально добавлены учеными для тестирования качества классификации алгоритмов. Всего в обучающей выборке использовано 100 примеров, что несомненно очень мало, но больше, увы, нет. При тестировании использовались уже другие примеры в количестве также 100 штук.
            Результат Вы можете наблюдать на скриншоте.
            Точность CyberCortex® составила 75% на незнакомых данных. Мы убеждены, что если бы данных для обучения было большее, то можно было бы существенно увеличить точность прогнозов.

            Лучшие Форекс брокеры 2021: