Избранное трейдера dimaz07
Всех приветствую, занимаюсь разработкой торговых роботов с 2009 года.
Отвечу сразу на ряд вопросов, которые могут возникнуть в комментариях. Что такое стат. преимущество, форвардное моделирование, подгонка под кривую, проскальзывание, комиссия, рыночная неэффективность, и все остальное что может знать тот, кто занимается торговыми алгоритмами 6-й год я знаю.
Теперь по делу.
Есть алгоритм, созданный в прошлом году. До сего дня проходил всевозможные тесты, доделывались мелочи, встраивался ММ и т.д., сегодня я запускаю его в широкие массы. Ищу 3-4 инвесторов под работу на данном алгоритме. Алгоритм не продается.
Алгоритм в настоящий момент работает на акциях Российских эмитентов, в алгоритме нет индикаторов, подгонять нечего.
Тесты представлены без рефинансирования, без использования плеча, в сделках участвует постоянно не более 100 000. Покажу 2 вариации.
Тесты по 30.05.2015
Вариация №1
Сложным процентом принято называть эффект, когда проценты прибыли прибавляются к основной сумме и в дальнейшем сами участвуют в создании новой прибыли.
Формула сложного процента — это формула, по которой рассчитывается итоговая сумма с учётом капитализации (начислении процентов).
Чтобы лучше усвоить расчет сложных процентов, давайте разберём пример.
Представим, что вы положили 10 000 руб в банк под 10 процентов годовых.
Через год на вашем банковском счету будет лежать сумма SUM = 10000 + 10000*10% = 11 000 руб.
Ваша прибыль — 1000 рублей.
Вы решили оставить 11 000 руб на второй год в банке под те же 10 процентов.
Через 2 года в банке накопится 11000 + 11000*10% = 12 100 руб.
Прибыль за первый год (1000 рублей) прибавилась к основной сумме (10000р) и на второй год уже сама генерировала новую прибыль. Тогда на 3-й год прибыль за 2-й год прибавится к основной сумме и будет сама генерировать новую прибыль. И так далее.
После рассмотрения основ машинного обучения в первой части, мы перейдем к примеру использования наивного байесовского классификатора для предсказания направления движения цены акций Apple. Сначала разберем основные принципы работы наивного байесовского классификатора, затем создадим простой пример использования дня недели для предсказания направления цены закрытия — выше или ниже текущей, а в окончании построим более сложную модель, включающую технические индикаторы.
Что представляет собой наивный байесовский классификатор (НБК)?
НБК старается найти вероятность события А при условии, что событие В уже произошло, обзначаемую как Р(А|B) (вероятность А при условии В).
В нашем случае, мы должны спросить: какова вероятность того, что цена возрастет, при условии, что сегодня — среда? НБК берет во внимание обе вероятности — общую вероятность роста цены, то есть число дней, когда цена закрытия была выше цены открытия относительно всех рассматриваемых дней, и вероятность роста цены при условии, что сегодня среда, то есть сколько прошедших сред имело цену закрытия выше цены открытия?
В последнее время приобретают все большую популярность алгоритмы машинного обучения. Они применяются для решения задачи классификации входных данных, или, проще говоря, выявления паттернов в структуре этих данных. Небольшой цикл статей про машинное обучение опубликован на сайте inovancetech.com, здесь я представляю их перевод.
В этой серии статей мы рассмотрим построение и тестирование простой стратегии машинного обучения. В первой части отметим основные принципы машинного обучения и их применение к финансовым рынкам.
Машинное обучение становится одной из самых многообещающих областей в алгоритмической торговле за последние два года, но имеет репутацию слишком сложного математического подхода. В действительности это не столь трудно в практическом применении.
Цель машинного обучения (МО) в том, чтобы правильно смоделировать исторические данные, и затем использовать эту модель в предсказании будущего. В алгоритмической торговле применяется два типа МО:
В прошлой части нами было сделано наблюдение, что для присутствующих на рынке высокочастотных алгоритмов характерна высокая частота отмены биржевых ордеров. В данной статье мы уделим внимание еще одной особенности HFT роботов — малому объему ордеров, генерирумых подобными стратегиями.
Автоматические стратегии стараются отсылать биржевые приказы, которые содержат небольшие количества акций или лотов. Маркет мейкеры делают это для того, чтобы выборочно торговать с небольшими контрагентами, обходя сильные движения, вызываемые крупными покупками или продажами. Исполнительные алгоритмы отсылают небольшие ордера, чтобы скрыть свои намерения о реализации крупных объемов, избегая тем самым сильного воздействия на цену. Чтобы проверить, действительно ли существуют описанные тенденции на рынке, построим график движения цены, с точки зрения пассивной стороны трейда, после взятия всех ордеров на конкретном уровне для двух ситуаций — когда малые ордера принимают участие в данном трейде, и когда их нет. За малый объем ордера примем 2 целых лота и менее:
Неплохую идею для высокочастотного трейдинга подсказал Kipp Rogers в своем блоге. Идея несложная, но требующая подробного объяснения, поэтому попробую изложить ее в двух статьях.
Автор предположил, что лучшее исполнение ордеров, отправленных на биржу, скорее возможно получить, торгуя с трейдерами — людьми, вручную отправляющими приказы, чем с компьютерами, то есть контрагентами с автоматическим выставлением. Высокочастотные роботы отправляют приказы на биржу только в том случае, если они видят возможность быстрого снятия прибыли или ищут наилучшую цену исполнения для больших объемов, что делает соревнование с ними очень тяжелой задачей. С другой стороны, трейдеры, торгующие вручную ( под ними могут подразумеваться и автоматические программы с медленными алгоритмами ), выставляют приказы с большим временем жизни (до отмены или исполнения), меньше внимания уделяют мгновенной цене и, как правило, имеют идею о направлении движения цены при входе в рынок, что также дает представление о поведении их ордеров.
Окончание цикла статей. Начало и другие алгоритмы биржевой торговли смотрите в моем блоге и на сайте.
В прошлой части мы продемонстрировали обучение модели Маркова на данных, полученных с помощью симуляции. В данной статье рассмотрим производительность модели на реальных данных. Будем тестировать трендследящую стратегию на индексе S&P500.
В большинстве задач с использованием машинного обучения требуются обучающие данные с разметкой классов (состояний). В нашем случае такой разметки нет, поэтому сначала сгенерируем классы для обучающей выборки.
Мы хотим создать трендследящую стратегию, поэтому должны выбрать участки на выборке цен S&P500, которые соответствуют восходящему и нисходящему трендам ( также можно отметить участки, где тренды отсутствуют). Можно это сделать вручную, а можно применить программу, которая автоматически расставит метки в соответствии с вашими определениями тренда.
В этой части рассмотрим обучение модели скрытых состояний Маркова на языке R. В прошлых статьях мы изучили математическую основу модели, которая воплощена в библиотеке RHmm. Есть два способа распознавания режимов с помощью модели Маркова, первый — использование одной модели, каждое состояние которой отражает режим, в каком находится рынок. Второй способ подразумевает построение нескольких моделей, каждая из которых создана для одного режима, задача состоит в том, чтобы выбрать ту модель, которая генерирует данные, наиболее соответствующие текущему состоянию рынка. Рассмотрим оба эти способа.
Метод первый — одна модель с несколькими состояниями.
Для обучения модели будем использовать исходные данные, полученные симуляцией из нормального статистического распределения N(mu,sigma), где mu — медиана, sigma — среднеквадратичное отклонение. Распознавание будем производить для двух режимов — бычьего (bull) рынка, на котором наблюдается восходящий тренд и медвежьего (bear) рынка, на котором тренд нисходящий. Соответственно, сгенерируем приращение значений из двух нормальных распределений - N (mu.Bull,sigma.Bull) и N(mu.Bear,sigma.Bear). На рисунке показан результат такой генерации на 300 наблюдений, 100 первых из которых получены из бычьего распределения, 100 вторых — из медвежьего и 100 последних — из бычьего с другими параметрами mu и sigma (каждое приращение будем считать дневным):
Сделаем ряд, на мой взгляд, естественных предположений о множестве всех трейдеров:
• Факторы, на которых основаны действия любого трейдера, случайны, т. е. их конкретные значения не могут быть предсказаны точно ДО их появления;
• Каждый тик является действием двух или нескольких трейдеров: трейдера, решившего купить по оферам или продать по бидам и трейдера (-ов), поставивших эти биды (офера);
• Два трейдера, пользующиеся полностью одинаковыми методами принятия решения – редкость;
• Группы трейдеров, использующих «близкие» методы принятия решения, представляют собой о-малое (как по количеству, так и по объему средств) от корня из общего числа трейдеров и их объемов средств;