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

Рейтинг лучших брокеров для торговли акциями за 2023 год:
  • Evotrade
    ☆☆☆☆☆
    ★★★★★
    Evotrade

    Бонусы для новых трейдеров до 5000$!

  • BINARIUM
    ☆☆☆☆☆
    ★★★★★
    BINARIUM

    Лучший брокер по бинарным опционам. Огромный раздел по обучению.

В этой статье раскрыты следующие темы:

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

Вы можете помочь и перевести немного средств на развитие сайта

Комментарии ():

2015 ITnan.ru Design by Styleshout.

Права на текст статей, расположенные на сайте, принадлежат их авторам. Источники статей: Хабрахабр и Гиктаймс.

Искусственный интеллект и машинное обучение в трейдинге

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

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

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

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

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

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

Лучшие брокеры без обмана
  • Evotrade
    ☆☆☆☆☆
    ★★★★★
    Evotrade

    Бонусы для новых трейдеров до 5000$!

  • BINARIUM
    ☆☆☆☆☆
    ★★★★★
    BINARIUM

    Лучший брокер по бинарным опционам. Огромный раздел по обучению.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Так, если модель находит активность покупателей в инструменте доллар США-рубль с расчетами «сегодня» (USDRUB_TOD), то она может перенести эту информацию в виде сделки типа «лонг» в фундаментально связанном с ним инструменте (USDRUB_TOM), так как разница между ними — это лишь ставка свопа «овернайт». Или же зависимость в нефти и паре доллар США-рубль (здесь уже более сложная стохастическая связь). При этом надо понимать, что алгоритмы чаще всего пытаются отразить латентные и вероятностные процессы, которые вычленить из временного ряда не так просто. Поэтому профессия разработчика алгоритмов, особенно количественных, является одной из самых сложных и высокооплачиваемых.

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

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

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

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

Регрессия — это метод анализа средней временных рядов. «Средняя» или «справедливая» величина — это элемент трейдинга, который наиболее сильно волнует арбитражеров. Часто им приходится торговать возврат к средней (в английском языке процесс называется mean reverting). К примеру, средняя величина спреда между нефтью марки WTI и Brent. Методы регрессионного анализа позволяет оценить эту величину и количественный трейдер может сделать ставку на возврат к средней линии, если понимает, что серьезной перестановки ее на новый уровень не произойдет (резкие сдвиги средней величины характеризуют нестационарность временного ряда, в этом случае регрессионный анализ становится весьма сложным и трейдерам приходится принимать и управлять рисками торговли квазистационарными рядами, либо использовать более сложные непараметрические модели).

Другой пример регрессионного анализа: торговля спреда между USDRUB_TOM (доллар США-рубль на споте) и фьючерса на него — Si. Эта стратегия называется арбитраж непокрытого процентного паритета (UIP-арбитраж). Определяя среднюю величину на коротких интервалах, автоматическая арбитражная система находится пиковые отклонения от средней и использует их для открытия встречных сделок (либо осуществляя частичное хеджирование позиции). Регрессионные модели позволяют активнее заниматься и динамическим хеджированием (когда средняя величина смещается во времени).

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

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

Таблица 1- Программный инструментарий (библиотеки, языки), используемые в машинном обучении

Введение в машинное обучение. Часть 1

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

В этой серии статей мы рассмотрим построение и тестирование простой стратегии машинного обучения. В первой части отметим основные принципы машинного обучения и их применение к финансовым рынкам.

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

Цель машинного обучения (МО) в том, чтобы правильно смоделировать исторические данные, и затем использовать эту модель в предсказании будущего. В алгоритмической торговле применяется два типа МО:

  • Регрессия: используется для предсказания направления и амплитуды исследуемой величины. Например, цена акций Гугл возрастет на 7 долларов на следующий день.
  • Классификация: используется для предсказания категории, например, направления движения цены акций Гугл на следующий день.

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

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

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

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

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

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

Заключение 1 части.

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

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

5 мощных проектов по машинному обучению для начинающих

Сайт proglib.io представил перевод статьи, посвященной машинному обучению.

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

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

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

Поработайте с финансовыми рынками

Финансовый рынок — отличная вещь для любого Data Scientist, даже для того, кто далек от финансовой сферы.

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

Во-вторых, данные могут быть очень подробными. Вы можете с лёгкостью получить данные любой компании по дню (или даже минуте). Это поможет вам творчески обдумывать торговые стратегии.

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

Некоторые идеи для проекта:

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

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

  • Плейлист видео по машинному обучению, применяемому для инвестирования.

Источники данных:

  • Рынок данных, который предоставляет бесплатные (и премиум) финансовые и экономические данные. Например, вы можете скачать цены на конец дня для более 3000 американских компаний или экономические данные из Федерального резерва.
  • Количественное финансовое сообщество, которое предлагает бесплатную платформу для разработки алгоритма торговли, включает в себя наборы данных.
  • Фундаментальные данные 5000+ американских компаний за последний 5 лет.

Создайте нейросеть, которая распознаёт текст, написанный от руки

Нейронные сети и Deep Learning — два главных прорыва в развитии современного искусственного интеллекта. Они привели к большим достижениям в области распознавания объектов (прочитайте нашу статью про распознавание объектов на Python), генерации текстов и даже в области беспилотных автомобилей.

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

MNIST Handwritten Digit Classification Challenge — стандартная точка входа. С изображениями работать гораздо сложнее, чем с реляционными моделями данных. MNIST данные дружелюбны по отношению к новичкам и имеют небольшие размеры, так что с лёгкостью поместятся на одном компьютере.

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

  • Сайт по нейросетям и Deep Learning.

Источник данных:

Исследуйте Enron

Скандал Enron был самым большим корпоративным кризисом в истории.

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

К счастью для нас, есть данные e-mail переписок бывших сотрудников Enron. Это 500 тысяч электронных писем между 150 бывшими сотрудниками, в основном, старшими руководителями. Это также единственная крупнейшая публичная база данных электронных писем, что делает её ещё более ценной.

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

Проекты по машинному обучению, которые вы можете попробовать реализовать:

  • Анализ текста сообщений и их классификация по степени важности, целям и проч.
  • Социальный анализ. Создайте сеть сотрудников и посредством анализа сообщений найдите ключевых влиятельных лиц.
  • Обнаружение аномалий. Проанализируйте входящие и отправленные сообщения по часам и попытайтесь обнаружить “ненормальное” поведение, которое привело к общественному конфликту.

Источники данных:

Улучшите заботу о здоровье

Ещё одна отрасль, которая активно развивается благодаря проектам по машинному обучению — это здравоохранение и забота о здоровье.

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

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

Возможные проекты:

  • Профилактическая помощь — прогнозирование заболеваний как на индивидуальном, так и на общем уровне.
  • Диагностическая помощь — автоматическая классификация изображений, например, сканы, x-ray и т. п.
  • Страхование — определение страховых взносов на основе общедоступных факторов риска.

Гайды:

Источники данных:

  • Сборник данных, связанных со здравоохранением
  • Ещё один сборник данных, предоставленный правительством США
  • Health Nutrition and Population Statistics — статистика здоровья и населения, предоставленная Всемирным банком.

Анализируйте социальные медиа

Социальные медиа уже практически стали синонимом “big data” из-за огромного количества контента, создаваемого пользователями.

Добыча этих данных — беспрецедентный способ сохранить руку на пульсе общественного мнения, настроения и трендов. Facebook, Twitter, YouTube, WeChat, WhatsApp, Reddit… Список можно продолжать и продолжать.

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

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

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

HFT для программистов

Наталья Паламарь специально для Geekbrains рассказывает о HFT для программистов. Слово ей.

Торговый зал Wall Street, Richard Drew/The Associated Press. Видите роботов? А они есть.

High frequency trading, высокочастотный трейдинг — это торговля на бирже специально обученными роботами. High frequency означает то, что среднее время сделки — 5 миллисекунд. Человек не способен за такое время принять нужное решение, а робот может. Чтобы написать правильные алгоритмы, нужны толковые программисты.

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

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

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

Он работал над анализом и движением котировок на биржах за 30 секунд до сделки. Тогда же он со своими партнерами Дэвидом Уиткомбом и Джимом Хоуксом первую и единственную на тот момент компанию автоматизированных торгов — AutomatedTradingDesk. В то время как все участники финансового рынка работали через телефонную связь, скорость обработки заказа через AutomatedTradingDesk составляла одну секунду. Так началась история HFT. В итоге сейчас 70% сделок на Wall Street проводятся высокочастотными алгоритмами.

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

Как работает HFT

Схематично процесс HFT делится на две части: предварительный анализ и собственно решение о сделке.

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

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

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

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

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

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

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

Например, цена на покупку акции составляет $200, а цена на продажу — $200.01, а затем цена на покупку меняется на $199 и цена на продажу становится уже $200 за акцию. В таких условиях получается что цена продажи становится предыдущей ценой покупки, а исполнение последних оставшихся в очереди заявок на покупку по $200 позволят в итоге трейдеру перепродать акцию по $200.

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

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

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

Финансовые инструменты, применяемые на разных торговых площадках, взаимосвязаны между собой, и колебания цен на одной бирже влияют на все остальные. Во время торгов вся информация не может перемещаться моментально, например между биржами Чикаго и Нью-Йорка 1200 км. Во времени это около 5 миллисекунд. Торговые роботы на Нью-Йоркской площадке получают информацию с задержкой.

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

Как поучаствовать в банкете

Разработка алгоритмов для HFT — наукоемкое занятие. Как минимум вам понадобится математика и экономика, а уже потом конкретные языки программирования и технологии.

Необходимость в быстрой работе алгоритмов приводит к тому, что на финансовом рынке основные языки программирования — С, С++ и Java. Также ценится опыт в оптимизации обработки пакетов, работа с базами данных и применение скриптовых языков Python, MATLAB.

Известные зарубежные компании, которые работают в области HFT:

  • Chicago Trading;
  • Timber Hill;
  • Citadel LLC;
  • Global Electronic Trading Company
  • Renaissance Technologies.

Есть такие компании и в России. Вот несколько:

  • AttoTradingTechnologiesLLC;
  • Limitless capital;
  • HFT-фонд Wunderfund;
  • Норд-Капитал.

HFT — интересная альтернатива разработке сайтов и приложений для смартфонов, но попасть туда непросто.

Самые популярные вакансии для программистов — это мобильная и веб-разработка. Сайты и приложения нужны всем. Но есть программисты, которые не разрабатывают приложения и не делают сайты. Чем они тогда заняты? Ну, есть варианты.

Наталья Паламарь специально для Geekbrains рассказывает о HFT для программистов. Слово ей.

Торговый зал Wall Street, Richard Drew/The Associated Press. Видите роботов? А они есть.

High frequency trading, высокочастотный трейдинг — это торговля на бирже специально обученными роботами. High frequency означает то, что среднее время сделки — 5 миллисекунд. Человек не способен за такое время принять нужное решение, а робот может. Чтобы написать правильные алгоритмы, нужны толковые программисты.

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

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

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

Он работал над анализом и движением котировок на биржах за 30 секунд до сделки. Тогда же он со своими партнерами Дэвидом Уиткомбом и Джимом Хоуксом первую и единственную на тот момент компанию автоматизированных торгов — AutomatedTradingDesk. В то время как все участники финансового рынка работали через телефонную связь, скорость обработки заказа через AutomatedTradingDesk составляла одну секунду. Так началась история HFT. В итоге сейчас 70% сделок на Wall Street проводятся высокочастотными алгоритмами.

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

Как работает HFT

Схематично процесс HFT делится на две части: предварительный анализ и собственно решение о сделке.

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

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

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

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

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

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

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

Например, цена на покупку акции составляет $200, а цена на продажу — $200.01, а затем цена на покупку меняется на $199 и цена на продажу становится уже $200 за акцию. В таких условиях получается что цена продажи становится предыдущей ценой покупки, а исполнение последних оставшихся в очереди заявок на покупку по $200 позволят в итоге трейдеру перепродать акцию по $200.

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

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

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

Финансовые инструменты, применяемые на разных торговых площадках, взаимосвязаны между собой, и колебания цен на одной бирже влияют на все остальные. Во время торгов вся информация не может перемещаться моментально, например между биржами Чикаго и Нью-Йорка 1200 км. Во времени это около 5 миллисекунд. Торговые роботы на Нью-Йоркской площадке получают информацию с задержкой.

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

Как поучаствовать в банкете

Разработка алгоритмов для HFT — наукоемкое занятие. Как минимум вам понадобится математика и экономика, а уже потом конкретные языки программирования и технологии.

Необходимость в быстрой работе алгоритмов приводит к тому, что на финансовом рынке основные языки программирования — С, С++ и Java. Также ценится опыт в оптимизации обработки пакетов, работа с базами данных и применение скриптовых языков Python, MATLAB.

Известные зарубежные компании, которые работают в области HFT:

  • Chicago Trading;
  • Timber Hill;
  • Citadel LLC;
  • Global Electronic Trading Company
  • Renaissance Technologies.

Есть такие компании и в России. Вот несколько:

  • AttoTradingTechnologiesLLC;
  • Limitless capital;
  • HFT-фонд Wunderfund;
  • Норд-Капитал.

HFT — интересная альтернатива разработке сайтов и приложений для смартфонов, но попасть туда непросто.

SavePearlHarbor

Ещё одна копия хабора

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

Часть 1

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

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

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

  • Регрессия. Используется для прогнозирования направления и значения величины. Например рост на $7.00 стоимости акций Google за день.
  • Классификация. Используется для прогнозирования категорий, например направление стоимости акций Google за день.

Рассмотрим простой пример. Давайте попытаемся предсказать движение стоимости акций Google на один день вперед. В следующей части мы будем использовать несколько индикаторов, но сейчас, для изучения основ, мы будем использовать только один показатель: день недели. Итак, давайте попробуем предсказать движение цены на основе дня недели.
Ниже отображен график акций Google и картинка экспортированных данных из Yahoo Finance.

Я добавил колонку день недели и колонку цена закрытия минус цена открытия. Так же, я добавил колонку направления цены, где пишу «UP», если разница между ценой закрытия и открытия больше 0 и «DOWN» если меньше:

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

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

Часть 2

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

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

Формула Байеса позволяет найти вероятность того, что событие А случится, если известно, что событие В уже произошло. Обычно обозначается как: P (A | B).

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

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

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

Пошаговый пример на R

Сам по себе язык очень простой. Файлы скриптов можно не создавать – все пишется прямо в консоли.
Теперь по порядку, все что встретится:
В языке не строгая типизация, объявлять переменные нет необходимости. Для присвоения значения используется знак « Примечание переводчика 4

Всего в тестовой выборке 164 дня. При этом предсказания нашей модели совпали с реальными данными 79 раз или в 48% случаев.
Этот результат нельзя назвать хорошим, но он должен дать вам представление о том, как построить свою собственную стратегию, основанную на машинном обучении.
В следующей части, мы посмотрим, как можно использовать эту модель для улучшения вашей стратегии.
Примечание переводчика 5. На сегодняшний день есть еще 2 статьи из этого цикла: про дерево решений и про нейронные сети. Статьи в таком же стиле, т.е. не глубокие, а только дающие общее представление о вопросе. Если интересно — я продолжу переводить. Обо всех замечаниях, неточностях и прочих ошибках пишите в личку.

[Перевод] Применение машинного обучения в трейдинге 22.08.2014 21:20

Примечание переводчика 1. Я наткнулся на этот блог в одном из обзоров материалов по машинному обучению. Если вы хорошо разбираетесь в машинном обучении, то в этой статье вы не найдете для себя ничего интересного. Она достаточно поверхностная и затрагивает только основы. Если же вы, как и я, только начинаете интересоваться данной темой, то добро пожаловать под кат.Примечание переводчика 2. Кода будет мало, а тот что есть написан на языке R, но не стоит отчаиваться, если вы его до сих пор никогда в глаза не видели. До этой статьи я тоже ничего о нем не знал, поэтому я специально отдельно написал «шпору» по языку, включив туда все, что вам встретится в статье. Если хотите сами разобраться, то начать рекомендую c маленького курса на CodeSchool. На хабре тоже есть интересная информация и полезные ссылки. И наконец вот тут есть большая шпаргалка.Примечание переводчика 3. Статья из двух частей, однако самое интересное начинается только во второй части, поэтому я позволил себе объединить их в одну статью.Часть 1В этой серии статей, я собираюсь шаг за шагом построить и оттестировать простую стратегию управления активом, основанную на машинном обучении. Первая часть будет посвящена базовым концепциям машинного обучения и их применению к финансовым рынкам.Машинное обучение является одним из наиболее многообещающих направлений в финансовой математике, в последние годы получившее репутацию изощренного и сложного инструмента. В действительности все не так сложно.Цель машинного обучения в построении точной модели на основе исторических данных и затем использования этой модели для предсказаний в будущем. В финансовой математике с помощью машинного обучения решаются следующие задачи:

Регрессия. Используется для прогнозирования направления и значения величины. Например рост на $7.00 стоимости акций Google за день. Классификация. Используется для прогнозирования категорий, например направление стоимости акций Google за день. Рассмотрим простой пример. Давайте попытаемся предсказать движение стоимости акций Google на один день вперед. В следующей части мы будем использовать несколько индикаторов, но сейчас, для изучения основ, мы будем использовать только один показатель: день недели. Итак, давайте попробуем предсказать движение цены на основе дня недели.Ниже отображен график акций Google и картинка экспортированных данных из Yahoo Finance.Я добавил колонку день недели и колонку цена закрытия минус цена открытия. Так же, я добавил колонку направления цены, где пишу «UP», если разница между ценой закрытия и открытия больше 0 и «DOWN» если меньше: В машинном обучении этот набор данных будет называться тренировочным, потому что алгоритм обучается на них. Другими словами алгоритм просматривает весь набор данных и устанавливает зависимость между днем недели и направлением изменения стоимости акции. Заметьте, что наш набор маленький — здесь всего 23 строки. В следующей части, мы будем использовать сотни строк для построения модели. В действительности, чем больше данных, тем лучше.Теперь давайте выберем алгоритм. Есть целый ряд алгоритмов, которые вы можете использовать, включая скрытые Марковские Модели, искусственные нейронные сети, наивный байесовский классификатор, метод опорных векторов, дерева решений, дисперсионный анализ и множество других. Здесь хороший список, где вы можете разобраться в каждом алгоритме и понять когда и какой из них применять. Для начала я рекомендую использовать один из наиболее часто используемых алгоритмов, например метод опорных векторов или наивный байесовский классификатор. Не тратьте много времени на выбор, наиболее важные части вашего анализа — индикаторы которые вы используете и величина, которую прогнозируете.

Часть 2 Теперь, когда мы разобрались с базовой концепцией использования алгоритмов машинного обучения в вашей стратегии, мы изучим простой пример использования наивного байесовского классификатора для предсказания направления акций Apple. Сначала мы разберемся с тем, как работает этот классификатор, затем мы рассмотрим очень простой пример использования дня недели для предсказания движения цены, а в конце мы усложним модель, добавив технический индикатор.Что такое наивный байесовский классификатор? Формула Байеса позволяет найти вероятность того, что событие А случится, если известно, что событие В уже произошло. Обычно обозначается как: P (A | B).В нашем примере, мы спрашиваем: «Какова вероятность, что сегодняшняя цена повысится, если известно, что сегодня среда?». Метод учитывает как вероятность того, что сегодняшняя цена вырастет исходя из общего количества дней во время которых наблюдался рост, так и исходя из того, что сегодня среда, т. е. сколько раз цена росла в среду.

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

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

Пошаговый пример на R Шпора по R Для работы вам понадобится: Сам по себе язык очень простой. Файлы скриптов можно не создавать — все пишется прямо в консоли.Теперь по порядку, все что встретится: В языке не строгая типизация, объявлять переменные нет необходимости. Для присвоения значения используется знак «Например: a weights prices types treasure print (treasure) weights prices types 1 300 9000 1 2 200 5000 2 3 100 12000 3 4 250 7500 2 5 150 18000 3 Можно указывать диапазон строк\столбцов. К примеру чтобы вывести с 1 по 4 строку все столбцы, надо написать: treasure[1:4,] Чтобы вывести все строки и только второй столбец: treasure[,2] В самом языке изначально не так много функций, поэтому для работы необходимо будет подключить некоторые библиотеки. Для этого прописывается: install.packages («lib_name») library («lib_name») При вызове функций, дополнительные параметры прописываются так: имя_параметра = значение. Например: getSymbols («AAPL», src = «yahoo», from = startDate, to = endDate) Конкретно эта функция выгружает с yahoo данные о стоимости акций. Подробней о ней в мануале: www.quantmod.com/documentation/getSymbols.htmlС остальным думаю вопросов не возникнет.

Теперь разберем очень простой пример на R. Мы будем использовать день недели, для прогнозирования движения цены акций Apple вверх или вниз.Для начала давайте убедимся, что у нас есть все библиотеки которые нам нужны:

install.packages («quantmod») library («quantmod») #Позволяет импортировать данные

endDate = as.Date (»2014–01–01») #Конец рассматриваемого промежутка

getSymbols («AAPL», src = «yahoo», from = startDate, to = endDate) #Получаем дневное OHLCV акций Apple с Yahoo Finance Теперь, когда у нас есть все необходимые данные, давайте получим наш индикатор «день недели»: DayofWeek 0, «UP», «DOWN») #Конвертируем в двоичную классификацию. (В наших данных не встречаются дни, когда цена открытия была равна цене закрытия, т. е. изменение было равно нулю, поэтому для упрощения мы не рассматриваем этот случай)

Как машинное обучение используется в реальном бизнесе

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

И речь идёт не только о футуристических продуктах, вроде Siri и Amazon Echo. Мы говорим не только о компаниях, которые выделяют огромные бюджеты на научно-исследовательские программы (Google, Microsoft). В реальности, я думаю, практически любая компания из списка Fortune 500 делает больше денег и работает более эффективно благодаря машинному обучению.

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

Сделать пользовательский контент ценным ресурсом

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

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

  • Pinterest, к примеру, уже использует МО чтобы показывать вам более интересный контент;
  • Yelp пользуется им для сортировки загруженных пользователями фотографий;
  • NextDoor оно нужно, чтобы сортировать контент у себя на досках объявлений;
  • наконец, сервис Disqus пользуется им, чтобы фильтровать спам-комментарии.

Найти продукт быстрее

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

Умные результаты нужны не только Google:

  • компании Home Depot нужно, к примеру, подобрать ванную, которая бы поместилась в ванное помещение клиента;
  • Apple стремится показать релевантные приложения в App store;
  • Intuit находит подходящую страницу помощи, когда пользователь ищет бланк налоговой декларации.

Успешные стартапы в области электронной коммерции, вроде Lyst и Trunk Archive, используют машинное обучение, чтобы показывать высококачественный контент своим пользователям. Другие компании, вроде Rich Relevance и Edgecase, дают своим клиентам возможность использовать эти стратегии во время поиска нужной продукции.

Привлечь интерес покупателей

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

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

Понять поведение клиента

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

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

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

Как они смогли извлечь нужный сигнал из миллионов постов? Они использовали машинное обучение. В последние годы благодаря машинному обучению «слушать» социальные сети стало обычным занятием для бизнеса.

Что дальше?

Работа с самообучающимися алгоритмами — сложная штука. Обычные программы предсказуемы, мы можем заглянуть в них и понять, как они работают. В некотором роде обучающиеся алгоритмы больше похоже на людей. Как пользователи, мы хотим знать, «почему The New York Times показал мне эту странную рекламу» или «почему Amazon порекомендовал мне эту книгу».

Если честно, ни The New York Times, ни Amazon не понимают, почему они выдают определённые результаты. Так же, как наш мозг не понимает, почему мы предпочитаем тайскую еду на обед или потерялись, читая какую-то страницу в Википедии.

Лет десять назад, если бы вы решили работать над машинным обучением, вам было бы трудно заняться этим где-то вне стен Google и Yahoo. Сегодня им занимается все, кому не лень. В Сети всё больше данных, к которым можно легко получить доступ. Затраты на наладку и текущие эксплуатационные издержки последних самообучающихся алгоритмов постоянно снижаются благодаря таким продуктам, как Microsoft Azure ML и IBM Watson.

Вместе с этим, любые компании, внедряющие машинное обучение, щедро финансируются венчурными фондами, вроде WorkDay’s Machine Learning fund, Bloomberg Beta и Data Collective.

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

Об авторе: Лукас Бьевальд —бывший инженер Yahoo, основатель облачной платформы CrowdFlower.

Структуры данных и Алгоритмический трейдинг: машинное обучение

Data Structures and Algorithmic Trading: Machine Learning

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

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

[Перевод] Применение машинного обучения в трейдинге 22.08.2014 21:20

Примечание переводчика 1. Я наткнулся на этот блог в одном из обзоров материалов по машинному обучению. Если вы хорошо разбираетесь в машинном обучении, то в этой статье вы не найдете для себя ничего интересного. Она достаточно поверхностная и затрагивает только основы. Если же вы, как и я, только начинаете интересоваться данной темой, то добро пожаловать под кат.Примечание переводчика 2. Кода будет мало, а тот что есть написан на языке R, но не стоит отчаиваться, если вы его до сих пор никогда в глаза не видели. До этой статьи я тоже ничего о нем не знал, поэтому я специально отдельно написал «шпору» по языку, включив туда все, что вам встретится в статье. Если хотите сами разобраться, то начать рекомендую c маленького курса на CodeSchool. На хабре тоже есть интересная информация и полезные ссылки. И наконец вот тут есть большая шпаргалка.Примечание переводчика 3. Статья из двух частей, однако самое интересное начинается только во второй части, поэтому я позволил себе объединить их в одну статью.Часть 1В этой серии статей, я собираюсь шаг за шагом построить и оттестировать простую стратегию управления активом, основанную на машинном обучении. Первая часть будет посвящена базовым концепциям машинного обучения и их применению к финансовым рынкам.Машинное обучение является одним из наиболее многообещающих направлений в финансовой математике, в последние годы получившее репутацию изощренного и сложного инструмента. В действительности все не так сложно.Цель машинного обучения в построении точной модели на основе исторических данных и затем использования этой модели для предсказаний в будущем. В финансовой математике с помощью машинного обучения решаются следующие задачи:

Регрессия. Используется для прогнозирования направления и значения величины. Например рост на $7.00 стоимости акций Google за день. Классификация. Используется для прогнозирования категорий, например направление стоимости акций Google за день. Рассмотрим простой пример. Давайте попытаемся предсказать движение стоимости акций Google на один день вперед. В следующей части мы будем использовать несколько индикаторов, но сейчас, для изучения основ, мы будем использовать только один показатель: день недели. Итак, давайте попробуем предсказать движение цены на основе дня недели.Ниже отображен график акций Google и картинка экспортированных данных из Yahoo Finance.Я добавил колонку день недели и колонку цена закрытия минус цена открытия. Так же, я добавил колонку направления цены, где пишу «UP», если разница между ценой закрытия и открытия больше 0 и «DOWN» если меньше: В машинном обучении этот набор данных будет называться тренировочным, потому что алгоритм обучается на них. Другими словами алгоритм просматривает весь набор данных и устанавливает зависимость между днем недели и направлением изменения стоимости акции. Заметьте, что наш набор маленький — здесь всего 23 строки. В следующей части, мы будем использовать сотни строк для построения модели. В действительности, чем больше данных, тем лучше.Теперь давайте выберем алгоритм. Есть целый ряд алгоритмов, которые вы можете использовать, включая скрытые Марковские Модели, искусственные нейронные сети, наивный байесовский классификатор, метод опорных векторов, дерева решений, дисперсионный анализ и множество других. Здесь хороший список, где вы можете разобраться в каждом алгоритме и понять когда и какой из них применять. Для начала я рекомендую использовать один из наиболее часто используемых алгоритмов, например метод опорных векторов или наивный байесовский классификатор. Не тратьте много времени на выбор, наиболее важные части вашего анализа — индикаторы которые вы используете и величина, которую прогнозируете.

Часть 2 Теперь, когда мы разобрались с базовой концепцией использования алгоритмов машинного обучения в вашей стратегии, мы изучим простой пример использования наивного байесовского классификатора для предсказания направления акций Apple. Сначала мы разберемся с тем, как работает этот классификатор, затем мы рассмотрим очень простой пример использования дня недели для предсказания движения цены, а в конце мы усложним модель, добавив технический индикатор.Что такое наивный байесовский классификатор? Формула Байеса позволяет найти вероятность того, что событие А случится, если известно, что событие В уже произошло. Обычно обозначается как: P (A | B).В нашем примере, мы спрашиваем: «Какова вероятность, что сегодняшняя цена повысится, если известно, что сегодня среда?». Метод учитывает как вероятность того, что сегодняшняя цена вырастет исходя из общего количества дней во время которых наблюдался рост, так и исходя из того, что сегодня среда, т. е. сколько раз цена росла в среду.

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

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

Пошаговый пример на R Шпора по R Для работы вам понадобится: Сам по себе язык очень простой. Файлы скриптов можно не создавать — все пишется прямо в консоли.Теперь по порядку, все что встретится: В языке не строгая типизация, объявлять переменные нет необходимости. Для присвоения значения используется знак «Например: a weights prices types treasure print (treasure) weights prices types 1 300 9000 1 2 200 5000 2 3 100 12000 3 4 250 7500 2 5 150 18000 3 Можно указывать диапазон строк\столбцов. К примеру чтобы вывести с 1 по 4 строку все столбцы, надо написать: treasure[1:4,] Чтобы вывести все строки и только второй столбец: treasure[,2] В самом языке изначально не так много функций, поэтому для работы необходимо будет подключить некоторые библиотеки. Для этого прописывается: install.packages («lib_name») library («lib_name») При вызове функций, дополнительные параметры прописываются так: имя_параметра = значение. Например: getSymbols («AAPL», src = «yahoo», from = startDate, to = endDate) Конкретно эта функция выгружает с yahoo данные о стоимости акций. Подробней о ней в мануале: www.quantmod.com/documentation/getSymbols.htmlС остальным думаю вопросов не возникнет.

Теперь разберем очень простой пример на R. Мы будем использовать день недели, для прогнозирования движения цены акций Apple вверх или вниз.Для начала давайте убедимся, что у нас есть все библиотеки которые нам нужны:

install.packages («quantmod») library («quantmod») #Позволяет импортировать данные

endDate = as.Date (»2014–01–01») #Конец рассматриваемого промежутка

getSymbols («AAPL», src = «yahoo», from = startDate, to = endDate) #Получаем дневное OHLCV акций Apple с Yahoo Finance Теперь, когда у нас есть все необходимые данные, давайте получим наш индикатор «день недели»: DayofWeek 0, «UP», «DOWN») #Конвертируем в двоичную классификацию. (В наших данных не встречаются дни, когда цена открытия была равна цене закрытия, т. е. изменение было равно нулю, поэтому для упрощения мы не рассматриваем этот случай)

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

Машинное обучение (англ. machine learning , ML) — класс методов искусственного интеллекта, характерной чертой которых является не прямое решение задачи, а обучение в процессе применения решений множества сходных задач. Для построения таких методов используются средства математической статистики, численных методов, методов оптимизации, теории вероятностей, теории графов, различные техники работы с данными в цифровой форме.

Различают два типа обучения:

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

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

Многие методы индуктивного обучения разрабатывались как альтернатива классическим статистическим подходам. Многие методы тесно связаны с извлечением информации (англ. information extraction ), интеллектуальным анализом данных (data mining).

Содержание

Общая постановка задачи обучения по прецедентам [ править | править код ]

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

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

Способы машинного обучения [ править | править код ]

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

  • Обучение с учителем — для каждого прецедента задаётся пара «ситуация, требуемое решение»:
  1. Искусственная нейронная сеть
    1. Глубокое обучение
  2. Метод коррекции ошибки
  3. Метод обратного распространения ошибки
  4. Метод опорных векторов
  • Обучение без учителя — для каждого прецедента задаётся только «ситуация», требуется сгруппировать объекты в кластеры, используя данные о попарном сходстве объектов, и/или понизить размерность данных:
  1. Альфа-система подкрепления
  2. Гамма-система подкрепления
  3. Метод ближайших соседей
  • Обучение с подкреплением — для каждого прецедента имеется пара «ситуация, принятое решение»:
  1. Генетический алгоритм.
  • Активное обучение — отличается тем, что обучаемый алгоритм имеет возможность самостоятельно назначать следующую исследуемую ситуацию, на которой станет известен верный ответ:
  • Обучение с частичным привлечением учителя (англ. semi-supervised learning ) — для части прецедентов задается пара «ситуация, требуемое решение», а для части — только «ситуация»
  • Трансдуктивное обучение — обучение с частичным привлечением учителя, когда прогноз предполагается делать только для прецедентов из тестовой выборки
  • Многозадачное обучение (англ. multi-task learning ) — одновременное обучение группе взаимосвязанных задач, для каждой из которых задаются свои пары «ситуация, требуемое решение»
  • Многовариантное обучение (англ. multiple-instance learning ) — обучение, когда прецеденты могут быть объединены в группы, в каждой из которых для всех прецедентов имеется «ситуация», но только для одного из них (причем, неизвестно какого) имеется пара «ситуация, требуемое решение»
  • Бустинг (англ. boosting — улучшение) — это процедура последовательного построения композиции алгоритмов машинного обучения, когда каждый следующий алгоритм стремится компенсировать недостатки композиции всех предыдущих алгоритмов.
  • Байесовская сеть

Классические задачи, решаемые с помощью машинного обучения [ править | править код ]

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

Типы входных данных при обучении [ править | править код ]

  • Признаковое описание объектов — наиболее распространённый случай.
  • Описание взаимоотношений между объектами, чаще всего отношения попарного сходства, выражаемые при помощи матрицы расстояний, ядер либо графа данных
  • Временной ряд или сигнал.
  • Изображение или видеоряд.

Типы функционалов качества [ править | править код ]

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

Практические сферы применения [ править | править код ]

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

Машинное обучение имеет широкий спектр приложений [ источник не указан 2169 дней ] :

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

[Перевод] Применение машинного обучения в трейдинге 22.08.2014 21:20

Примечание переводчика 1. Я наткнулся на этот блог в одном из обзоров материалов по машинному обучению. Если вы хорошо разбираетесь в машинном обучении, то в этой статье вы не найдете для себя ничего интересного. Она достаточно поверхностная и затрагивает только основы. Если же вы, как и я, только начинаете интересоваться данной темой, то добро пожаловать под кат.Примечание переводчика 2. Кода будет мало, а тот что есть написан на языке R, но не стоит отчаиваться, если вы его до сих пор никогда в глаза не видели. До этой статьи я тоже ничего о нем не знал, поэтому я специально отдельно написал «шпору» по языку, включив туда все, что вам встретится в статье. Если хотите сами разобраться, то начать рекомендую c маленького курса на CodeSchool. На хабре тоже есть интересная информация и полезные ссылки. И наконец вот тут есть большая шпаргалка.Примечание переводчика 3. Статья из двух частей, однако самое интересное начинается только во второй части, поэтому я позволил себе объединить их в одну статью.Часть 1В этой серии статей, я собираюсь шаг за шагом построить и оттестировать простую стратегию управления активом, основанную на машинном обучении. Первая часть будет посвящена базовым концепциям машинного обучения и их применению к финансовым рынкам.Машинное обучение является одним из наиболее многообещающих направлений в финансовой математике, в последние годы получившее репутацию изощренного и сложного инструмента. В действительности все не так сложно.Цель машинного обучения в построении точной модели на основе исторических данных и затем использования этой модели для предсказаний в будущем. В финансовой математике с помощью машинного обучения решаются следующие задачи:

Регрессия. Используется для прогнозирования направления и значения величины. Например рост на $7.00 стоимости акций Google за день. Классификация. Используется для прогнозирования категорий, например направление стоимости акций Google за день. Рассмотрим простой пример. Давайте попытаемся предсказать движение стоимости акций Google на один день вперед. В следующей части мы будем использовать несколько индикаторов, но сейчас, для изучения основ, мы будем использовать только один показатель: день недели. Итак, давайте попробуем предсказать движение цены на основе дня недели.Ниже отображен график акций Google и картинка экспортированных данных из Yahoo Finance.Я добавил колонку день недели и колонку цена закрытия минус цена открытия. Так же, я добавил колонку направления цены, где пишу «UP», если разница между ценой закрытия и открытия больше 0 и «DOWN» если меньше: В машинном обучении этот набор данных будет называться тренировочным, потому что алгоритм обучается на них. Другими словами алгоритм просматривает весь набор данных и устанавливает зависимость между днем недели и направлением изменения стоимости акции. Заметьте, что наш набор маленький — здесь всего 23 строки. В следующей части, мы будем использовать сотни строк для построения модели. В действительности, чем больше данных, тем лучше.Теперь давайте выберем алгоритм. Есть целый ряд алгоритмов, которые вы можете использовать, включая скрытые Марковские Модели, искусственные нейронные сети, наивный байесовский классификатор, метод опорных векторов, дерева решений, дисперсионный анализ и множество других. Здесь хороший список, где вы можете разобраться в каждом алгоритме и понять когда и какой из них применять. Для начала я рекомендую использовать один из наиболее часто используемых алгоритмов, например метод опорных векторов или наивный байесовский классификатор. Не тратьте много времени на выбор, наиболее важные части вашего анализа — индикаторы которые вы используете и величина, которую прогнозируете.

Часть 2 Теперь, когда мы разобрались с базовой концепцией использования алгоритмов машинного обучения в вашей стратегии, мы изучим простой пример использования наивного байесовского классификатора для предсказания направления акций Apple. Сначала мы разберемся с тем, как работает этот классификатор, затем мы рассмотрим очень простой пример использования дня недели для предсказания движения цены, а в конце мы усложним модель, добавив технический индикатор.Что такое наивный байесовский классификатор? Формула Байеса позволяет найти вероятность того, что событие А случится, если известно, что событие В уже произошло. Обычно обозначается как: P (A | B).В нашем примере, мы спрашиваем: «Какова вероятность, что сегодняшняя цена повысится, если известно, что сегодня среда?». Метод учитывает как вероятность того, что сегодняшняя цена вырастет исходя из общего количества дней во время которых наблюдался рост, так и исходя из того, что сегодня среда, т. е. сколько раз цена росла в среду.

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

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

Пошаговый пример на R Шпора по R Для работы вам понадобится: Сам по себе язык очень простой. Файлы скриптов можно не создавать — все пишется прямо в консоли.Теперь по порядку, все что встретится: В языке не строгая типизация, объявлять переменные нет необходимости. Для присвоения значения используется знак «Например: a weights prices types treasure print (treasure) weights prices types 1 300 9000 1 2 200 5000 2 3 100 12000 3 4 250 7500 2 5 150 18000 3 Можно указывать диапазон строк\столбцов. К примеру чтобы вывести с 1 по 4 строку все столбцы, надо написать: treasure[1:4,] Чтобы вывести все строки и только второй столбец: treasure[,2] В самом языке изначально не так много функций, поэтому для работы необходимо будет подключить некоторые библиотеки. Для этого прописывается: install.packages («lib_name») library («lib_name») При вызове функций, дополнительные параметры прописываются так: имя_параметра = значение. Например: getSymbols («AAPL», src = «yahoo», from = startDate, to = endDate) Конкретно эта функция выгружает с yahoo данные о стоимости акций. Подробней о ней в мануале: www.quantmod.com/documentation/getSymbols.htmlС остальным думаю вопросов не возникнет.

Теперь разберем очень простой пример на R. Мы будем использовать день недели, для прогнозирования движения цены акций Apple вверх или вниз.Для начала давайте убедимся, что у нас есть все библиотеки которые нам нужны:

install.packages («quantmod») library («quantmod») #Позволяет импортировать данные

endDate = as.Date (»2014–01–01») #Конец рассматриваемого промежутка

getSymbols («AAPL», src = «yahoo», from = startDate, to = endDate) #Получаем дневное OHLCV акций Apple с Yahoo Finance Теперь, когда у нас есть все необходимые данные, давайте получим наш индикатор «день недели»: DayofWeek 0, «UP», «DOWN») #Конвертируем в двоичную классификацию. (В наших данных не встречаются дни, когда цена открытия была равна цене закрытия, т. е. изменение было равно нулю, поэтому для упрощения мы не рассматриваем этот случай)

«Машинное обучение и анализ данных»

Для кого эта
специализация

Для
выпускников
и студентов

Для
профессиональных
аналитиков

Для
директоров
компаний

Особенности
специализации

от А до Я

Полностью на русском

Дистанционно

Дипломный проект,
применимый на практике

Трудоустройство
в топовые компании

Лекторы

Константин Воронцов

Вадим Стрижов

Евгений Рябенко

Евгений Соколов

Виктор Кантор

Эмели Драль

Программа обучения

5 курсов

Дипломный проект

Аттестационный экзамен

«Математика и Python для анализа данных»

Неделя 1
Неделя 2

Библиотека Python и линейная алгебра.

Неделя 3

Оптимизация и матричные разложения.

Неделя 4

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

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

«Обучение на размеченных данных»

Неделя 1

Машинное обучение и линейные модели.

Неделя 2

Линейные модели и оценка качества.

Неделя 3

Решающие деревья и композиции моделей.

Неделя 4

Нейронные сети и обзор методов.

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

«Поиск структуры в данных»

Неделя 1
Неделя 2

Понижение размерности и матричные разложения.

Неделя 3

Визуализация данных и поиск аномалий.

Неделя 4

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

«Построение выводов по данным»

Неделя 1

Основы статистики и проверка гипотез.

Неделя 2

АБ-тесты: основы планирования, дизайн и интерпретация результатов.

Неделя 3
Неделя 4

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

«Прикладные задачи анализа данных»

Неделя 1
Неделя 2
Неделя 3
Неделя 4

Рекомендации и ранжирование.

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

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

«Анализ данных: финальный проект»

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

Прогнозирование оттока клиентов

Прогнозирование временных рядов на карте

Анализ тональности отзывов

Получи востребованную специальность и диплом о профессиональной переподготовке МФТИ

Отзывы
студентов

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

Отличный курс от одного из лучших учебных заведений России. Прекрасно подойдёт для желающих начать изучение Machine Learning. В достаточной степени образно объяснены базовые понятия, приведены примеры и ссылки для дальнейшего самостоятельного изучения материала (или повторения забытого после вуза). Практические задания просты и снабжены исчерпывающими примерами.

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

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

Большое спасибо за курс!

Я в данный момент приближаюсь к завершению своей подготовки по машинному обучению и вскоре буду искать работу. Ваша серия курсов очень помогла в освоении этого тернистого пути. Хотелось получить именно глубокое понимание обсуждаемых тем. И 41 из 1058 (надеюсь, только пока) место в конкурсе kaggle от Bosch, на мой взгляд, подтверждает высокое качество освоения материала.

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

Хочу поделиться несколькими мыслями о курсе «Математика и Python для анализа данных».
Я увидел рекламу этой специализации на хабре и решил пройти её в качестве знакомства с анализом данных и машинным обучением.

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

Большое спасибо за курс!

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

Помимо статистики, очень классное и внятное объяснение математики было в целом. Может только про определитель и свд западает, я скоро забуду опять, как-то интуитивного понимание не сложилось в голове. Зато понял методы оптимизации и матричные операции. Спасибо!

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

Приятно, что преподаватели сами по себе очень компетентные люди, интересующиеся тем, чем занимаются. Понравился раздел «Дополнительные материалы», где приводятся различные интересные ссылки на ресурсы, статьи и картиночки. В общем, огромное Вам СПАСИБО!

As a former MIPT alumni, I enjoyed with brilliant teaching of Emely Drayl, Viktor Kantor, Evgeniy Sokolov and Evgeniy Ryabchenko. They helped me to brush up my knowledge in Linear Algebra and Probability and begin to learn Python at last (currently I work on C++). Great thanks!
Hope to prolong this spec study with enthusiasm, hope to realize my future projects with help of taken courses.

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

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

25 лет, по образованию специалист по информационной безопасности, около 3 лет работала разработчиком.

«Взяла этот курс, так как очень люблю машинное обучение и анализ данных. До этого проходила курсы от зарубежных ВУЗов, как только появился курс на русском языке — сразу записалась. Хотя многие темы были мне известны, все равно было интересно и полезно (особенно статистика!), и были новые материалы, с которыми не работала.

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

Огромное спасибо создателям курса за проделанную работу!»

«Ребята, вас бы к нам в МГТУ им. Баумана (лет 5 назад). Спасибо за специализацию! Эмели и Евгений Соколов очень просто и понятно объясняют, хочется увидеть вас в живую .Евгений Рябенко и весёлая статистика — неразделимые вещи. Виктор умеет очень непринужденным тоном говорить о мат. анализе, как будто это тапочки, которые он вчера оставил на обувной полке».

Окончил экономический факультет МГУ в 1989 году. Занимался внедрением систем ERP, экономическими исследованиями.

«Многое из курса нам преподавали еще в 80-х. С удовольствием осознал, что метод опорных векторов, SVM, мы проходили вскоре после его открытия, математика ведь не была нашим профильным предметом!

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

Почему-то я больше слышал про R , а не про Python, вначале это настораживало. У меня был неплохой опыт программирования на С, меньше С#, С++.

Это был мой первый опыт онлайн-курсов, мне понравилось. Спасибо!».

Студент киевского политеха, факультет прикладной математики.

«Очень крутой курс, все понравилось! Преподаватели просто топ, единственное — добавил бы еще практики. Курс сделан на высоком уровне, особенно понравилось преподавание Виктора и Евгения, импонирует их стиль подачи информации.

Курс сделан доступно, понятно. Здорово, что всегда есть возможность получить ответ на свой вопрос в чате.».

Как я заработал $500K на машинном обучении и высокочастотном трейдинге — Часть 2 Башни.Нет

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

Создание полноценного симулятора торгов

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

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

  • Когда команда отправляется на рынок в симуляторе я должен смоделировать временной лаг. Тот факт, что моя система «увидела» предложение, не означает, что она может его сразу купить. Система пошлет команду, подождет примерно 20 миллисекунд и только тогда, если предложение все еще будет в силе, будет рассматривать его, как закрытую сделку. Это не совсем точно, так как длительность реального лага не всегда одинакова и не регистрируется.
  • Когда я размещаю предложения купить или продать акции, мне нужно учитывать поток исполнения сделок (который обеспечивает API) и использовать его, чтобы отслеживать, когда мой заказ будет исполнен. Чтобы сделать это правильно, я должен отслеживать позицию моей команды в очереди (очередь формируется по системе first-in first-out). И снова я не смог сделать это в точности, но смоделировал максимально приближенную к реальности систему.

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

Обеспечение прибыльных торгов

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

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

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

Счета для разных уровней цен подсчитывались на основе следующих факторов:

  • Предсказание поведения цен (которое мы обсуждали раньше)
  • Рассматриваемый уровень цен (внутренние уровни означают более вероятный ценовой скачок)
  • Количество контрактов до моего заказа в очереди (чем меньше, тем лучше)
  • Количество контрактов после моего заказа в очереди (чем больше, тем лучше)

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

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

Что игнорировала моя программа

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

  • Цена входа на позицию – В офисе трейдинговой компании нередки разговоры о цене, по которой кто-либо заключает длинные и короткие сделки, как будто это должно повлиять на принятие подобных решений в будущем. Несмотря на то, что такие данные имеют некоторое значение в рамках стратегии сокращения рисков, они не имеют никакого отношения к дальнейшему развитию рыночных событий. Поэтому моя программа полностью игнорировала эту информацию. Это все равно, что игнорировать необратимые издержки.
  • Заключение длинной/короткой сделки – Как правило, у трейдера-человека был бы специальный критерий, определяющий, где продавать длинную позицию, а где – заключать короткую сделку. Однако, с точки зрения моего алгоритма, не было никакой разницы между этими двумя понятиями. Если мой алгоритм ожидал падение цен, то продажа была логичным шагом вне зависимости от того, какой характер имела сделка: «лонг», «шорт» или «флэт».
  • Стратегия «удвоения» – Это общепринятая стратегия, согласно которой трейдеры покупают больше акций в том случае, если изначально торги идут не в их пользу. Как следствие, ваша средняя цена покупки снижается, а это означает, что когда (если) цена на акции изменит курс, вы «отобьете» свои расходы в кратчайшие сроки. Мне кажется, это просто кошмарная стратегия, если только вы не Уоррен Баффет. Вы обманываете себя, думая, что у вас все хорошо, потому что большая часть ваших сделок выгорит. Проблема заключается в том, что если вам не повезет, то проигрыш будет ошеломляющий. Другое следствие этого подхода заключается в том, что становится крайне сложно определить, действительно ли вы получили рыночное преимущество, или вам просто повезло. Важным качеством моей программы было как раз то, что я мог отслеживать и подтверждать ситуации, когда моя программа действительно таковым преимуществом обладала.

Управление рисками

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

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

Работа с алгоритмом

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

Каждую неделю я должен был бы заново обучать мою программу на основе данных, собранных за предыдущие 4 недели. Однако я выяснил, что это нарушает баланс между поиском последних поведенческих рыночных трендов и обеспечением уверенности в том, что мой алгоритм получает достаточно информации для разработки значимых паттернов поведения. Когда обучение стало занимать все больше и больше времени, я разбил его так, чтобы оно могло осуществляться 8 виртуальными машинами с использованием сервиса Amazon EC2. Затем полученные результаты объединялись на моей локальной машине.

Наивысшей точкой моих торгов стал октябрь 2009, когда я заработал почти 100 000 долларов. Впоследствии я провел еще 4 месяца, пытаясь улучшить мою программу несмотря на то, что прибыль с каждым месяцем снижалась. К несчастью, на сегодняшний день мне кажется, что я перепробовал все свои лучшие идеи, потому что все, что я использовал, не особенно мне помогло.

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

Примечание: Я опубликовал этот пост на Hacker News, где он приобрел большую популярность. Я просто хочу сказать, что не пытаюсь защитить тех, кто сейчас пытается сделать нечто подобное самостоятельно. Вам понадобится команда очень умных коллег с большим количеством навыков, чтобы просто попытаться составить кому-либо конкуренцию на рынке. Даже тогда, когда я писал свою программу, одиночки крайне редко достигали успеха (но я слышал о таких).

Наверху страницы [в оригинальном посте – прим. переводчика] есть комментарий, в котором встречаются такие выражения, как «манипулирование статистикой», а меня называют одним из «инвесторов-ритейлеров», про которых настоящие кванты [кванты/квонты – в российской переводческой практике используются оба варианта перевода – прим. переводчика] говорят, что их «отстреливать надо». Это весьма неудачный комментарий, попросту далекий от реальности. А между тем, существуют и более интересные отзывы на мою статью.

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

Лучшие брокеры с бонусами:
  • Evotrade
    ☆☆☆☆☆
    ★★★★★
    Evotrade

    Бонусы для новых трейдеров до 5000$!

  • BINARIUM
    ☆☆☆☆☆
    ★★★★★
    BINARIUM

    Лучший брокер по бинарным опционам. Огромный раздел по обучению.

Добавить комментарий