Оценка ликвидности американских опционов CBOE

Давно не писал, чего-нибудь хардкорного, все ликбезы да ликбезы, но тут под руку подвернулась необходимость быстренько происследовать американский рынок опционов. Это исследование достаточно общее, и как мне кажется будет полезным для всех, кто интересуется американскими опционами, которые торгуются на опционной бирже CBOE. Попутно в этом посте я покажу несколько приемов работы с Python Pandas, который незаменим в случае когда нужно набросать какое-нибудь исследование на коленке, для трейдера Python Pandas является незаменимой вещью, более того я считаю, что Pandas в связке с IPython Notebook по гибкости и скорости разработки может дать фору любому языку программирования.

Почему американские опционы?

Бинарные опционы и опционы на РТС – это конечно хорошо, но если вы хотите стать профи в опционах, или вы оперируете суммой больше 100к долларов, вам потребуется ликвидность. И ни один рынок в мире не предоставляет такого набора базовых активов и ликвидности как американский, опционы там на любой вкус и цвет: хочешь недельные сроки – пожалуйста, хочешь на 3 года – пожалуйста. Более того, при наличии ETF перед инвестором и трейдером открывается весь мир, так как ETF есть практически на все мировые активы: индексы, золото, нефть, облигации и даже форекс! Для любителей российского рынка есть ETF RSX – Market Vectors Russia ETF, конечно ETF никогда не заменит базовый актив, и всегда будет присутствовать tracking error, зато вся торговля с одного брокерского счета у американского брокера. С другой стороны американский рынок – не сахар, это пожалуй, один из самых эффективных рынков в мире, не просто так многочисленные хедж-фонды зарабатывают себе на хлеб. Но я считаю, что до тех пор пока на вашем счете не будет десятка миллионов долларов, волноваться не стоит, и неэффективность всегда можно будет найти.

Методология исследования ликвидности американских опционов

Существует замечательный сайт www.historicaloptiondata.com который приторговывает опционной историей, за довольно демократичную цену, там можно скачать пробные файлы а.к.а. samples данных за один день. Одного дня нам будет достаточно, так как это исследование лишь прикидка, хотя для более подробной картины по конкретным базовым активам необходимо провести исследование за месяц. Кстати, CSV файл за один день опционной истории EOD по всему американскому рынку весит не много не мало 80-90 мегабайт (!), что как бы намекает, что Excel’ем тут не отделаться. Вот тут нам приходит на помощь Python и Pandas, на все исследование у меня ушло около 3-4 часов, не смотря на то что в результате получилось не более 50 строк кода, но нужно понимать, что я написал и стер намного больше строк, тем более формат исследование предполагает поиск решения на ходу, кручение-верчение данными и прочие упражнения :) В общем к делу…

Исходные данные имеют следующие поля:

UnderlyingSymbol
UnderlyingPrice
Flags
OptionSymbol
Type
Expiration
 DataDate
Strike
Last
Bid
Ask
Volume
OpenInterest
T1OpenInterest
IVMean
IVBid
IVAsk
Delta
Gamma
Theta
Vega
AKA

Подготовка данных:

import pandas as pd
from datetime import datetime
df = pd.read_csv("./data/options_20131101.csv")
df.Delta = df.Delta.abs()
  1. Для начала нам нужно скачать и загрузить CSV файл в Pandas DataFrame (специальный объект по свойствам напоминающий таблицу Excel с колонками и строками).
  2. Данные по опционам идут с Bid/Ask, а также IVBid/IVAsk, а также туда включены греки опционов, я специально беру дельту опциона по модулю, чтобы алгоритму было неважно, что анализировать путы или коллы.

Как будем считать спрэд:

Изначально я хотел взять 2 алгоритма: разница Bid/Ask в % от Bid и разница IVAsk – IVBid. Потом пришел к выводу, что использование IV является более репрезентативным.

results = []
for name, group in g:    
    d = group[['Type','UnderlyingPrice','Expiration', ' DataDate', 'Strike', 'Bid', 'Ask','IVBid', 'IVAsk', 'Volume','OpenInterest' , 'Delta']]    
    vol = d.Volume.sum()
    oi = d.OpenInterest.sum()
    
    expdate = datetime.strptime(d.Expiration.values[0], "%M/%d/%Y")
    nowdate = datetime.strptime(d[' DataDate'].values[0], "%M/%d/%Y")
    daystoexpiry = (expdate - nowdate).days 
    
    otm = d[d.Delta < 0.5].sort(columns='Delta', ascending=False)
    
    data = {}
    
    if len(otm) == 0:
        print ("Empty chain: ", name)
        continue
    
    
    otm['spreadiv'] = (otm.IVAsk - otm.IVBid) * 100
    
    data['ATMSpreadIV'] = otm.irow(0).spreadiv.mean()
        
    data['Delta30SpreadIV'] = otm.spreadiv[ (otm.Delta > 0.28) & (otm.Delta < 0.32) ].mean()
        
    data['Delta20SpreadIV'] = otm.spreadiv[ (otm.Delta > 0.18) & (otm.Delta < 0.22) ].mean()
        
    data['Delta10SpreadIV'] = otm.spreadiv[ (otm.Delta > 0.08) & (otm.Delta < 0.12) ].mean()
    
    data['vol'] = vol
    data['oi'] = oi
    data['daystoexp'] = daystoexpiry
    data['underlying'] = name[0]
    
    results.append(data)
   

    
print("Done")

Какие виды спрэда считаются:

  1. Спрэд на ATM страйке, ATM страйком считается тот который имеет дельту максимально близкую к 0.5
  2. Спрэд на страйках с дельтами 0.30, 0.20 и 0.10, берется как среднее от спрэда страйков, которые попадают в диапазон +/- 0.02 пункта, если таких страйков больше одного мы считаем среднее арифметическое.
  3. Ну и для статистики мы также записываем Volume, OI и количество дней до экспирации.

Показатели ликвидности американских опционов

Важное уточнение: опционы у которых спрэд выше 20% IV выли специально исключены из выборки, так как эти выбросы ломали всю красоту и информативность графиков. К слову таких неликвидных серий на американском рынке набралось почти 25% от первоначальной выборки!

Уровень спрэда в зависимости от срока до экспирации

ликвидность американских опционов

Уровень спрэда в зависимости от дельты опциона для месячных опционов

американские опционы

Уровень спрэда в зависимости от дельты опциона для недельных опционов

американские опционы

Самые ликвидные американские опционы

Чтобы избежать выбросов данных, я посчитал среднее по всем дельтам (0.3, 0.2, 0.1) и АТМ страйку.

ТОП самых ликвидных недельных опционов с самым узким спрэдом

ликвидные американские опционы

ТОП самых ликвидных недельных опционов с самым высоким OI

американские опционы

 Если Вам понравилась эта статья, поделитесь ей с друзьями, нажмите одну из красивых кнопочек снизу! Или перейдите по ссылке TOP-100 трейдерских блогов, чтобы мой блог поднялся в рейтинге и о нем узнало больше людей. Спасибо, что читаете мой блог :)

  • reply System Development Framework 2.0: Исследования теория - Трейдер Ubertrader ,

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

    Leave a comment