исследования

Волатильность DayTime vs Overnight

MarketSci Blog обновил свое исследование о соотношении волатильности внутри дня и во вне торговое время для SP500 (он добавил дополнительные 10 лет истории)

9

Соотношение волатильностей:

10

Я сделал такое же, только для индекса РТС

История с 2007 года, начало сессии с 10-31 (переход на 10-00 в 2011 году не учтен, но он сильно картины не меняет, я проверял).

11

Динамика годовой волатильности DayTime(RTH) vs Overnight (EOD)

12

Разница годовой волатильности DayTime(RTH) – Overnight (EOD)

Код для Amibroker
VolaRTH = StDev(log(C/O), 252) * sqrt(252) * 100;
VolaEOD = StDev(log(O/Ref(C, -1)), 252) * sqrt(252) * 100;

Plot(VolaRTH, "Volatility RTH", colorRed);
Plot(VolaEOD, "Volatility EOD", colorBlue);

//Plot(VolaRTH-VolaEOD, "Volatility RTH-EOD", colorRed,styleArea);

История mean reversion SP500

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

Long – если день закрылся падением
Short – если день закрылся ростом

И построил простенькую стратегию, которая показывает какой режим превалирует на рынке momentum или mean reversion.

У него получились достаточно интересные результаты:

7

Падение графика – означает momentum природу рынка, рост – mean reversion.

8

Увеличенный масштаб с 80х годов.

Источник: Short-Term Mean Reversion: Temporary or Permanent Hiatus?

Data Mining в трейдинге

[20:18:59] ubertrader: Что интересно про ДатаМайнинг узнать?
[20:19:53] Clawfinger: да буквально все, про что желаешь… Я в этом плане новичок полный
[20:22:30] ubertrader: Ну Data Mining – по русски – интеллектуальный анализ данных
[20:23:16] ubertrader: в целом идея такая – есть программа, в нее загружается куча сырых данных, и она в них ищет зависимости и выдает результат
[20:23:53] ubertrader: для начала можно почитать http://forex.kbpauk.ru/showflat.php?Cat … Post204747
[20:24:05] ubertrader: Чубукова И.А. – Курс лекций по Data Mining
[20:24:13] Clawfinger: вот я как краз и пишу шаблон, чтоб мне только котиры загрузить и получить результаты
[20:24:18] ubertrader: вполне понятная форма без лишней воды
[20:24:44] ubertrader: дальше, тулзы…
[20:24:49] ubertrader: тулзы – наше все
[20:25:11] ubertrader: http://www.basegroup.ru/library/methodo … ta_mining/
[20:25:30] ubertrader: Пишу про те чем пользовался
[20:25:58] ubertrader: 1. http://www.basegroup.ru/deductor/
Отдельная прога, нейросети, кластеризация, карты Кохонена
[20:26:26] ubertrader: 2. Примочка для Excel 2007
http://www.sqlserverdatamining.com/ssdm … fault.aspx

 

[20:26:48] ubertrader: 2й вариант работает только в связке с SQL Server
[20:27:30] ubertrader: мне он больше всего понравился, достаточно простой: залил данные в sql, получил отчет в экселе
[20:27:41] Clawfinger: > SQL Server
в это для чего ?
[20:27:45] ubertrader: советую ознакомиться с сайтом мелкософта
[20:27:55] Clawfinger: ок
[20:27:59] ubertrader: Clawfinger: в SQL движек анализа данных встроен
[20:28:16] Clawfinger: ага…
[20:28:18] ubertrader: при чем нужна Enterprise версия
[20:28:45] Clawfinger: > SQL Server
> Enterprise
правильно понимаю?
[20:28:51] ubertrader: да
[20:29:06] Clawfinger: ок
[20:29:18] ubertrader: дальше все не так просто как кажется на первый взгляд
[20:29:29] ubertrader: все помнят по нейросети?
[20:29:42] Clawfinger: ubertrader: да помню
[20:31:40] ubertrader: ощущение что мы вдвоем общаемся. никому не интересно?
[20:32:18] Clawfinger: ubertrader: не страшно, потом почитают… Мне очень интересно, такое впечатление, что я новый мир открываю, с твоей помощью
[20:32:44] Clawfinger: чувствую себя маленьким ребенком делающим первые шаги
[20:33:14] pupkinus: не-не
[20:33:20] pupkinus: я внимательно читаю
[20:33:26] pupkinus: так что минимум втроем
[20:33:37] Clawfinger: ubertrader: думаю, что всем черным пиджакам будет интересно, даже не только им
[20:34:26] Apprentice: ubertrader: помним
[20:35:27] ubertrader: вернемся к нейро сетям, какое у вас к ним отношение?
[20:35:39] pupkinus: положительное!
[20:35:49] ubertrader: pupkinus: обоснуй
[20:35:56] pupkinus: пока я не доработал метод “белке в глаз”
[20:36:02] Clawfinger: ubertrader: у меня абсолютно никакого… Просто, я детально в этом вопросе не разбирался, потому слушаю внимательно
[20:36:17] pupkinus: я некоторое время ими баловался
[20:36:45] ubertrader: так вот, нейросети и Data Mining близнецы братья, принципы в них заложены как правило очень похожие
[20:36:53] pupkinus: в том смысле что натравливал нейросеть на кусок графа, она обучалась на коротком промежутке
[20:37:08] pupkinus: а потом я действовал строго наоборот ее рекомендациям
[20:37:16] pupkinus: некоторое время работало на ура
[20:37:37] pupkinus: потом начало плавать “окно оптимизации”
[20:37:42] pupkinus: и я забил на это дело
[20:38:03] pupkinus: работало оно потому что максимально тупая нейросеть или генетический алгоритм
[20:38:19] pupkinus: который работает на коротком отрезке данных
[20:38:30] pupkinus: отлично симулирует метод мышления ритейла
[20:38:31] pupkinus: имхо
[20:38:41] Clawfinger: pupkinus: то есть ты использовал нейронную сеть, как модель поведения тупого лемминга, правильно я понимаю?
[20:38:44] ubertrader: я нейросети никогда не пробовал, но большинство трейдеров используют НС, как микроскоп для забивания гвоздей
[20:39:09] pupkinus: > но большинство трейдеров используют НС, как микроскоп для забивания гвоздей
QED
[20:39:14] pupkinus: Clawfinger: ага
[20:39:54] ubertrader: Data Mining – подход примерно из той же оперы, если его использовать в лоб
[20:40:06] ubertrader: т.е. механически
[20:41:12] ubertrader: давайте теперь поближе с методами ДМ познакомимся
[20:42:01] ubertrader: – Классификация – алгоритм находит в выборке кластеры данных, объединенные по некоторым характерным признакам
[20:42:32] ubertrader: как простой пример: кредитный рейтинг
[20:43:08] ubertrader: на вход подаются данные о заемщике, программа определяет к какому кластеру он относится и выдает вероятность возврата кредита
[20:44:32] ubertrader: Для трейдера искушение кластеризовать рынок: подать на вход кучу индикаторов на выходе получить классификацию булл/веар/флэт, тренд/флэт и пр
[20:45:45] ubertrader: и тут мы упираемся в первый косяк ДатаМининга
[20:46:01] Clawfinger: подобные мысли когда то тоже возникали, не реализовал, их из за неумения
[20:46:45] ubertrader: кластеризация будет использовать все входные факторы как важные свойства процесса…. а это может быть не так
[20:47:18] Apprentice: ubertrader: можно использовать более хитрую метрику
[20:47:58] ubertrader: Apprentice: можно но щас пока не об этом
[20:48:03] Apprentice: которая разным параметрам присвоит разный вес
[20:48:08] ubertrader: дальше идем
[20:48:17] ubertrader: Регрессия
[20:49:06] ubertrader: Data Mining в регрессионном анализе ищет факторы наиболее влияющие на результат
[20:50:24] ubertrader: т.е. есть определенная метрика результата – профит, мы подаем входные параметры которые хотим исследовать цену, объем, значения индикаторов и пр… ДМ выдает нам коэффициенты важности для каждого параметра
[20:51:32] ubertrader: трабла этого подхода, что ищется линейная зависимость, а на рынке как правило это не так
[20:51:35] Clawfinger:
[20:52:06] ubertrader: некст…. Деревья решений
[20:52:57] ubertrader: Тулза очень понятная человеку.

34

[20:53:35] ubertrader: Выдает практически готовую ТС, если А > N, X == False – avg profit = Y
[20:53:59] ubertrader: + еще вероятность наступления такого события
[20:57:05] ubertrader: Вопросы есть пока по тому что я рассказал?
[20:58:08] ubertrader: дальше идем
[20:58:08] ubertrader: Регрессия
[20:58:08] ubertrader: Data Mining в регрессионом анализе ищет факторы наиболее влияющие на результат
[20:58:08] ubertrader: т.е. есть определенная метрика результата – профит, мы подаем входные параметры которые хотим исследовать цену, объем, значения индикаторов и пр… ДМ выдает нам коэффициенты важности для каждого параметра
[20:58:08] ubertrader: трабла этого подхода, что ищется линейная зависимость, а на рынке как правило это не так
[20:59:16] Clawfinger: ubertrader: ок, спасибо за лекцию, пока вопросов нет. Но буду знать, кого дергать, если вдруг понадобится.
[20:59:29] ubertrader: Мораль сей басни: out the box, софт не подходить для трейдеров в полной степени
[21:00:28] ubertrader: это 1-е
[21:01:05] ubertrader: 2. Намного полезнее поразмышлять над тем как подготовить данные которые будут пихаться в Data Mining, это 80% успеха
[21:01:56] ubertrader: 3. Чтобы подготовить данные нужно поставить гипотезу
[21:02:57] ubertrader: 4. Единственная гипотеза как правило не попадает в глаз белке. Поэтому нужно ставить сразу много гипотез в одной предметной области
[21:03:50] ubertrader: 5. Чтобы ставить много гипотез нужно разбираться в предметной области и иметь широкое представление о рыночных процессах. Привет pupkinus
[21:04:35] ubertrader: 6. Если научитесь делать пункты 2-5, Data Mining вам нах не нужен

[21:05:19] ubertrader: Data Minig By ubertrader = процесс пп. 5 -> 2
[21:06:08] ubertrader: дальше просто технические вещи которые помогают глубже копать и лучше представлять данные. В этой технике ничего от академического не осталось.
[21:07:54] Clawfinger: ubertrader: спасмбо
[21:11:10]pupkinus: ubertrader: огромное спасибо!
[21:12:55]ubertrader: И в заключении: ДМ лишь инструмент, им как и микроскопом можно забивать гвозди или делать научные открытия. Первый шаг в этой эпопее понять что хочешь искать, потом уже реализация намеченного

Оценка ликвидности акций

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

Немного о методологии
За основу взял акции NASDAQ, около 3 тыс. штук минутная история с 2007 года от IQFeed (была взята только основная сессия 09:30 – 16:00). Между прочим БД весит около 50 гигов. Задача из всей этой массы нарыть знания о следующих вещах:
1. Какой средний спрэд за день был по акции
2. Какая ликвидность ожидает нас в момент входа/выхода из трейда
3. Какие критерии для отбора наиболее ликвидных акций для нашей торговли.

Как рассчитывается bid/ask спрэд из минутных данных
Я пошел по простейшему пути, спрэдом считаем разницу между закрытием минутной свечи и открытием следующей минутной свечи. В день у нас 390 наблюдений, я их по каждому дню усреднил и получил метрику AvgDaySpread.
Вышеописанная метрика будет являться мерилом ликвидности стоки. Очевидно, чем меньше спрэд тем выше ликвидность акции, справедливо также для оборота свечи.

Загвоздка в том, что для отбора ликвидных акций мы будем использовать критерии на дневных данных. Я выбрал 2 критерия: средний оборот в деньгах за 20 дней (MA(Volume * Close, 20) ) AvgTurnOver20Day, среднюю цену за 20 дней MA(Close, 20) AvgPrice20Day.

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

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

Начнем с того, что проанализируем выборку из 2 464 314 наблюдений, одно наблюдение содержит данные по одному торговому дню (средний спрэд), на каждую из 3 тыс акций у нас приходится примерно по 800 наблюдений (дней).

Если брать статистику по среднему дневному спрэду то увидим следующие параметры
Code:



AvgDaySpread
Количество наблюдений 2464314

    'Avg'    'StDev'    'Median'

    0.6315    8.1851    0.2029  

Таким образом в среднем по больнице у нас получается bid-ask спрэд 0.63%, кто теперь заявит что американский рынок самый ликвидный?

Теперь задача избавиться от неликвидного дерьма, которое толком не поторгуешь. Для этого я использую 4D HeatMap.

Легенда: по осям Х AvgPrice20Day и У AvgTurnOver20Day значения осей даны в квантилях. Ось Z (цвет) значение AvgDaySpread дана в %. А числа в ячейках означает количество наблюдений.
График интерпретируется просто: в точке [0.9;0.9] означает что в 0.9 квантиле AvgPrice20Day и AvgTurnOver20Day среднее значение AvgPrice20Day < 0.5 (по факту еще меньше цвет белый без оттенков) но в эту точку попадает всего 98930(или 4% от первованальной выборки)

Чтобы понять к какому квантилю относятся значения средней цены и оборота привожу табличку:
Code:



 AvgTurnOver20Day Quantile Analysis
    0.1000    0.2000    0.3000    0.4000    0.5000    0.6000    0.7000    0.8000    0.9000

  1.0e+007 * (не забываем умножить значения ниже на 10000000 !!!)

    0.0022    0.0062    0.0158    0.0370    0.0783    0.1645    0.3408    0.7660    2.3867 


AvgPrice20Day Quantile Analysis
    0.1000    0.2000    0.3000    0.4000    0.5000    0.6000    0.7000    0.8000    0.9000

    1.5881    3.1845    5.0635    7.3355   10.0395   13.5025   17.8180   24.1430   34.5879

Наш 4D график показывает, что значительное снижение уровня спрэда ожидает нас при значении AvgPrice20Day выше 0.6 квантиля и AvgTurnOver20Day выше 0.6 квантиля. Из таблицы выше определяем, что 0.6 квантиль для AvgPrice20Day – 13.50, а для AvgTurnOver20Day – 1 645 000.

Применив фильтр по обороту и цене: AvgPrice20Day > 13.50 & AvgTurnOver20Day > 1645000
Размер выборки сокращается до: 673737 наблюдений
А средний спрэд до: 0.0816% (против 0.63% изначально)
А станд. отклон: 0.2940% (против 8.18% изначально)

Итак мы ответили на вопрос, ЧТО торговать, чтобы не потерять свой профит на bid/ask спрэде. Исследование достаточно грубое, т.е. нужно оценивать спрэд в момент входа в рынок, но ситуацию показывает неплохо. Остается ответить на вопрос ГДЕ и КОГДА, и начать шить мешки

p.s. А какие критерии для отбора акций используете вы в своей торговле?

RI: анализ движения в основную и вечернюю сессию

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

Наблюдение состоит в том, что после 2008 года основная сессия (с 10-35 по 18-45) вносит крайне малое значение в трендовость Price Action, а основная движуха происходит вечером.

RI основная сессия (10-35 по 18-45), гэпы склеены (см. нижнюю часть рисунка).

После 2008 тупой боковик, тренда 2009 как-будто и не было.

RI вечерка (18-45 по 23-50), гэпы склеены (см. нижнюю часть рисунка)

Зато в вечерку рынок сделал 100 000 пунктов роста по RI. Только мне одному кажется, что российские акции никак не влияют на рынок? Все смотрят за нефтью и SP?

p.s. Говорят введение вечерки решило для рынка проблему гэпов, – пиздеж и провокация. Убираем первую минутную свечку и проблема гэпов возвращается, это к вопросу о нормальном премаркете для ФОРТСа.

Кумулятивный размер гэпов по RI с 2006 года (c 10-31 по 23-50), фиолетовой вертикальной чертой отмечено время введения вечерней сессии в 2008 году.

UPD:
Решил посчитать соотношение объема вечерке к общему, в среднем это 15%. Получается 15% объема двигают рынок?)))