Избранное трейдера Чужой
Этой статьей я начинаю изложение серии исследований на фондовом, срочном и валютных рынках Московской биржи. Цель – показать те закономерности, которые сохраняют свои свойства продолжительное время. Исследования основаны на результатах тестов большого количества торговых систем (более 50000 шт.). Системы были сгенерированы в режиме перебора индикаторов конструктором торговых роботов 3CBot. Каждая система состоит из 1-2 индикаторов технического анализа, параметры индикатора классические, оптимизации значений параметров не проводилось. Всего обработано 35 тикеров, 3 таймфрейма (15m, 60m, 1D), 2 периода (2013-2015 г., 2016 г.). На каждую комбинацию (тикер+ТФ+период) приходится по 370 тестов различных систем. Данный подход, в отличие от оптимизации параметров индикаторов, позволяет шире взглянуть на рынок, т.к. исключает заточенность отдельного индикатора или параметра индикатора под конкретный период рынка. Кроме того такой подход позволяет выявить тикеры и таймфреймы, где работает или не работает большинство систем, построенных на индикаторах, а также выявить системы, которые работают или не работают на большинстве тикеров. И да… сразу отвечаю на вопрос — тестированием я не сильно утруждался, все сгенерировалось автоматически за пару дней на обычном ноутбуке…
Как было отмечено в предыдущей части – вся суть технического анализа со всеми его индикаторами сводится к пересечению линий. Например, быстрая скользящая средняя пересекает медленную скользящую среднюю; цена пересекает уровень или любую линию какого-нибудь индикатора; RSI пересек уровень 70% и т.д. Ну пусть даже и есть исключения – напишем под них отдельные функции, главное, что наше обобщение будет охватывать 90% случаев ))).
Итак, из чего же состоят сигналы пересечения линий? А состоят они из событий и состояний. Событие – это факт пересечения, состояние – это фактическое расположение линий относительно друг друга.
На рисунке показано, как это выглядит геометрически на примере пересечения скользящих средних. А с точки зрения программирования эти события и состояния удобно представить в виде битовых флагов – сопоставить каждому из них определенный бит числа и если он установлен, то событие или состояние имеется и наоборот.Начали торговать. Первые убытки мы получили по техническим причинам: не исполнилась заявка, не вовремя снялась заявка и т.п.
Наш депозит спасало то, что Developer, очень правильно отработал систему выключения робота. Т.е. как только случались непонятные ситуации, например, мы остались в позиции только по одному контракту, робот сразу закрывал все позиции, перепроверял, все ли закрыто, дозыкрывался (если надо) и выключался.
Таким образом, на торговле спредом мы отлаживали наш execution. Execution отладили. Дальше проблем с технической частью не было.
Начались проблемы с самой стратегией. Несколько дней подряд мы вообще не делали сделок, хотя робот работал. Перенастроили параметры, робот начал делать 1-2 круга (купил-продал или продал-купил спред) в день.
Начали разбираться… Разобрались: эффективно получалось, что из-за низкой ликвидности по второму фьючерсу мы не торговали стандартное отклонение, фактически мы просто хватали хорошую котировку по нему, если такая заявка в стакане появлялась, а когда появлялась хорошая котировка в другую сторону, то позицию закрывали.
by Team_Spring.Finacier
Первый алгоритм вынашивался долго. Размышления на тему начались еще до того, как была собрана команда, которая может его реализовать.
Простой принцип: решили торговать спред между ближним фьючерсом на доллар и следующим фьючерсом на доллар.
Я бы сказал торговать DV01, или 3-х месячный FRA, или как кому еще угодно. Но эти термины я знаю только в связи со спецификой своей основной профессиональной деятельности. Обыватель и трейдер, торгующий на PA, назовет это просто «спред» и будет прав.
Графики mid’ов ближайшего и следующего фьючерсов на руб./долл., а также спреда между этими фьючерсами за 15.04.2016. Графики построены по принтам стаканов, сделанным ~5 раз в секунду.