Избранное трейдера WooDoo

по

Ненормальные опционщики

    • 28 ноября 2018, 17:02
    • |
    • ch5oh
  • Еще

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

 

Но опционщики — парни ловкие (а девушки еще и красивые).


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

 

Давайте достанем из старого шкафа старую поеденную молью модель Блека-Шолза



( Читать дальше )

"И всё-таки она вертится!" (с) Galilei vs. "И все-таки цена движется!" (с) А.Г.

    • 22 ноября 2018, 22:37
    • |
    • ...
  • Еще
Продолжаем (начало см. тут) разбирать «движение» цены, якобы существующее и очевидное.
Разбираем почему? И почему с Александром? Потому что он выказал досаду на путаность терминов и определений, с одной стороны:
"И всё-таки она вертится!" (с) Galilei vs. "И все-таки цена движется!" (с) А.Г.
и на непонимание людьми того, чем они торгуют, с другой:
"И всё-таки она вертится!" (с) Galilei vs. "И все-таки цена движется!" (с) А.Г.

( Читать дальше )

Дмитрий Власов: Трейдинг для лентяя. Инструменты и результаты

 
Выступление Дмитрия Власова на 26 конференции смартлаба.
Все видео с конференции тут: http://confa.smart-lab.ru/20181006

В поисках Истины или Почему мы вычисляем именно матожидание?

    • 16 ноября 2018, 11:51
    • |
    • ch5oh
  • Еще

Некоторое время назад после подробного обсуждения с коллегами вопроса "Нормален ли рынок и если ненормален, то какой он на самом деле?" от других коллег прозвучало недоумение: "А зачем тебе копаться в этих дебрях? Какой в этом смысл?". Короткий ответ будет неполным, а полный ответ с примерами и философским вопросом может оказаться интересен (или даже полезен коллегам).

 

 

1. Итак. Быстрый ответ состоит в разнице инженерного (институтского) и научного (университетского) мышления.

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

 


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



( Читать дальше )

Волатильность. Не новый подход через задний проход.

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

( Читать дальше )

Как правильно торговать опционами урок 3

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

Видео урок 1 — тут

Видео урок 2 — тут



( Читать дальше )

Статистический арбитраж на Санкт-Петербургской Бирже или парный трейдинг становится ближе.

     В этой статье я хочу рассказать об одной стратегии парного трейдинга и торговом роботе MultiConnect с помощью которого наши друзья и партнеры «ФК Викинг» активно торгуют арбитражные стратегии на Санкт-Петербургской Бирже.

     Парный трейдинг и статистический арбитраж зародился в Америке в шестидесятых годах прошлого века, сначала такой принцип торговли был доступен ограниченному кругу трейдеров, пришедших в этот бизнес с кафедр математических университетов. С помощью статарбитража сколачивались огромные состояния, открывались транснациональные хедж фонды. Во многом электронная биржевая торговля, какой мы видим ее сейчас, обязана статистическому арбитражу.  Об этих временах и нравах на Уолл-стрит, о зарождении, взлетах и падениях некоторых хеджфондов очень интересно написал  Скотт Паттерсон в своей книге «Кванты» https://smart-lab.ru/books/kvanty-patterson/.  

     В основе нашей стратегии также лежит идея торговли акциями друг против друга – т.е. когда мы покупаем одну компанию, одновременно продаем другую, торгуем спред акций. По сути, создается синтетический инструмент, который менее подвержен трендовым движениям, стремится к паритету. Были отобраны акции одного сектора, банковского – JP MorganChase (JPM) и Bank of Amerika (BAC). Компании фундаментально схожи между собой, два крупнейших банка, воздействие на сектор вызывает движение в обеих бумагах, что обеспечивает приемлемые риски, но при этом мы ловим расхождения в цене, вызванные факторами, воздействующими лишь на одну из компаний или  рыночными неэффективностями. При этом есть одна интересная идея – торговать через Санкт-Петербургскую Биржу, где торги начинаются с 10 утра по Москве и продолжаются до закрытия постмаркета в Америке. Это позволяет ловить ценовые неэффективности до того, как подключатся американские «коллеги» — зачастую утром выходит отчетность и появляются новости, напрямую влияющие как на отдельно взятую компанию, так и на весь рынок в целом.  Комиссии на СПБирже более чем конкурентны: 0.01 процент от суммы сделки, что дает возможность торговать пары акций с небольшим шагом спреда между этими бумагами.



( Читать дальше )

QUIK: Бенчмарк ОФЗ к ставке ЦБ

    Может кому будет интересен скрипт на QLUA, который выступает простым бенчмарком ОФЗ с постоянным купоном к ставке ЦБ.
Основные параметры доходность и премия к ставке ЦБ, с учетом дюрации.
Скрипт не работает онлайн (оперативность тут не принципиальна), при запуске собирает параметры в таблицу и выводит на экран.
В дальнейшем планируется эти данные использовать для анализа премии доходности по дюрации для муниципальных и корпоративных облигаций к ОФЗ.

QUIK: Бенчмарк ОФЗ к ставке ЦБ


    Код скрипта на github (на github две версии одна в utf-8 для просмотра и основная версия в win1251, т.к. quik понимает только его):
github.com/trantor77/lua_scripts/boundsOFZ.lua

    Код скрипта:
--переменные
keyRateCB = 7.5
classCode = "TQOB"

function CreateTable()
    t_id = AllocTable()
    AddColumn(t_id, 0, "Бумага", true, QTABLE_STRING_TYPE, 15)
    AddColumn(t_id, 1, "Цена", true, QTABLE_DOUBLE_TYPE, 15)
    AddColumn(t_id, 2, "Доходность, %", true, QTABLE_DOUBLE_TYPE, 15)
    AddColumn(t_id, 3, "Дюрация, лет", true, QTABLE_DOUBLE_TYPE, 15)
    AddColumn(t_id, 4, "Купон, %", true, QTABLE_DOUBLE_TYPE, 15)
    AddColumn(t_id, 5, "Премия к ЦБ, бп", true, QTABLE_INT_TYPE, 15)
    AddColumn(t_id, 6, "Погашение", true, QTABLE_STRING_TYPE, 15)
    t = CreateWindow(t_id)
    SetWindowCaption(t_id, "ОФЗ")
end

function string.split(str, sep)
    local fields = {}
    str:gsub(string.format("([^%s]+)", sep), function(f_c) fields[#fields + 1] = f_c end)
    return fields
end

function getParamNumber(code, param)
    return tonumber(getParamEx(classCode, code, param).param_value)
end

function formatData(prm)
    return string.format("%02d.%02d.%04d", prm%100, (prm%10000)/100, prm/10000)
end

CreateTable()

arr = {}
sec_list = getClassSecurities(classCode)
sec_listTable = string.split(sec_list, ',')
j = 0
for i = 1, #sec_listTable do
    secCode = sec_listTable[i]
    securityInfo = getSecurityInfo(classCode, secCode)
    short_name = securityInfo.short_name
    if short_name:find("ОФЗ 26") ~= nil then
        j = j + 1
        r = {}
        r["short_name"] = short_name
        r["price"] = getParamNumber(securityInfo.code, "PREVPRICE")
        r["yield"] = getParamNumber(securityInfo.code, "YIELD")
        r["duration"] = getParamNumber(securityInfo.code, "DURATION")/365
        couponvalue = getParamNumber(securityInfo.code, "COUPONVALUE")
        couponperiod = getParamNumber(securityInfo.code, "COUPONPERIOD")
        r["coupon"] = ((365/couponperiod) * couponvalue)/10
        r["bonus"] = (r["yield"] - keyRateCB)*100
        r["mat_date"] = getParamNumber(securityInfo.code, "MAT_DATE")
        table.insert(arr, j, r)
    end
end

table.sort(arr, function(a,b) return a["duration"] < b["duration"] end)

for j = 1, #arr do
    row = InsertRow(t_id, -1)
    SetCell(t_id, row, 0, arr[j]["short_name"])
    price = arr[j]["price"]
    SetCell(t_id, row, 1, string.format("%.2f", price), price)
    yield = arr[j]["yield"]
    SetCell(t_id, row, 2, string.format("%.2f", yield), yield)
    duration = arr[j]["duration"]
    SetCell(t_id, row, 3, string.format("%.2f", duration), duration)
    coupon = arr[j]["coupon"]
    SetCell(t_id, row, 4, string.format("%.2f", coupon), coupon)
    bonus = arr[j]["bonus"]
    SetCell(t_id, row, 5, string.format("%.0f", bonus), bonus)
    mat_date = arr[j]["mat_date"]
    SetCell(t_id, row, 6, formatData(mat_date), mat_date)
end
  • обсудить на форуме:
  • Quik Lua

Как правильно торговать опционами урок 1 и урок 2

Урок1: 

Настройка ПО option workshop, подключение к терминалу quik.



( Читать дальше )

Обещанный Манн-Уитни

    • 17 октября 2018, 13:21
    • |
    • А. Г.
      Проверенный аккаунт
  • Еще
Как и обещал в комментарии из моего предыдущего топика 

smart-lab.ru/blog/499678.php#comment8969912

Исходные данные: закрытия дня с 07.12.2005 по 16.10.2018 для S&P500 и индекса Мосбиржи

VAR00003, если VAR00004=0: центрированные и нормированные приращения логарифмов индекса Мосбиржи
VAR00003, если VAR00004=1: центрированные и нормированные приращения логарифмов индекса S&P500

Результат

Обещанный Манн-Уитни

Итого: вероятность ошибиться, утверждая, что эти распределения разные, больше 0,334.

И вывод: выборочные распределения приращений логарифмов дневных значений индексов Мосбиржи и S&P500, вероятней всего, совпадают  с точностью до среднего и дисперсии.

....все тэги
UPDONW
Новый дизайн