Блог им. _sg_

Латаем дыры, убираем сквозняки.

    • 08 февраля 2022, 18:24
    • |
    • _sg_
  • Еще

Есть в интернете великолепный ресурс по опционным Greeks «en.wikipedia.org/wiki/Greeks_(finance)» — почему то всю строку не захватывает. Применяйте Copy/Paste

И каждый раз когда я захожу на этот сайт, как всегда медленно и печально,  меня посещает одна и та же мысль, что чего-то на нем не хватает.

Но недавно я понял что именно. В таблице Греков есть дыры и из них тянет сквозняком.

Латаем дыры, убираем сквозняки.
А в конце абзаца под таблицей  есть фраза:

Three places in the table are not occupied, because the respective quantities have not yet been defined in the financial literature.

Не все ячейки матрицы заняты, потому что не определены в финансовой литературе.

Ё К Л М Н. Столько лет торгуем опционы и не все ячейки заполнены.

V — Fair Value опциона. 

Как видно в столбце Theta нет сразу двух Греков.

Давайте их придумаем и воспроизведем сами. А что, а вдруг.

1. dTheta/dT == d2V/dT2 — аналог Gamma = dDelta/dS == d2V/dS2

2. d2Theta/dT2 == d3V/dT3 — аналог Speed = dGamma/dS == d3V/dS3

Дадим им названия, которые как то должны ассоциироваться со временем Time. Theta связана со временем.

Поэтому 1-ю назовем (предварительно) Tamma — по аналогии с Gammой. Tamma = d2V/dT2, Gamma = d2V/dS2 — похоже. 

Вторую назовем Timma по аналогии с Греком 3-го порядка Ultima = d3V/dSigma3. Timma = d3V/dT3 — тоже похоже 

Ну и все. 90% работы уже сделано. Ведь главное назвать правильно, потому что как назовешь лодку так она и поплывет.

Остальное дело техники.

1.  Tamma = dTheta/dT. 

Надо дифференцировать dTheta/dT. Но что-то формула Theta уж больно забористая.

Выразим Theta через Gamma. Theta = -0.5 * S^2 * sigma^2 * Gamma.

dTheta/dT =  -0.5 * S^2 * sigma^2 * dGamma/dT. 

dGamma/dT = Color =>

Tamma = dTheta/dT = -0.5*S^2*sigma^2*Color.

Готово.

Код на С#

public static double ThetaGammaFactor(double S, double sigma)
{
return -0.5 * sigma * sigma * S * S;
}

public static double Tamma(double S, double K, double T, double sigma, double r, double q)
{
var ta = ThetaGammaFactor(S, sigma) * Color(S, K, T, sigma, r, q);
return ta / 365.0d;
}

2. Timma = d2Theta/dT2 = d3V/dT3 = dTamma/dT (которую мы уже имеем)

Поэтому Timma = dTamma/dT = -0.5 * S^2 * sigma^2 * dColor/dT. Производную dColor/dT не сложно вычислить.

Сразу приведу код С#, чтобы Вас не мучить.

public static double Timma(double S, double K, double T, double sigma, double r, double q)
{
var logSK = Math.Log(S / K);
var logSK2 = logSK * logSK;
var logSK4 = logSK2 * logSK2;

var sigma2 = sigma * sigma;
var sigma4 = sigma2 * sigma2;
var sigma5 = sigma4 * sigma;
var sigma6 = sigma4 * sigma2;
var sigma8 = sigma4 * sigma4;

var Sqrt2pi = Math.Sqrt(2.0 * Math.PI);
var T9 = T * T * T * T * T * T * T * T * T;

var t1 = 1.0 / (Sqrt2pi * S * T9 * sigma5);
var t2 = Math.Exp(-(0.5 * (logSK + 0.5 * T * sigma2) * (logSK + 0.5 * T * sigma2)) / (T * sigma2));
var t3 = 0.25 * logSK4 * Math.Pow(T, 4.5) +
logSK2*(-0.125 * Math.Pow(T, 6.5) * sigma4 — 1.5 * Math.Pow(T, 5.5) * sigma2) +
0.015625 * Math.Pow(T, 8.5) * sigma8 + 0.125 * Math.Pow(T, 7.5) * sigma6 +
0.75 * Math.Pow(T, 6.5) * sigma4;

var clr = t1 * t2 * t3 * ThetaGammaFactor(S, sigma) / 365.0d;
return clr;
}

Готово.

Как проверить, что все правильно ?

Tammа проверяем через интегрирование. Интеграл [t1,t2] Tamma dT = Theta

Timma проверяем через интегрирование. Интеграл [t1,t2] Timma dT = Tamma.

Пару тестов написал. У меня все сошлось.

ПС. Вселенная всесильна, безразмерна и бесконечна. Прекрасна со всех сторон.

Но иногда приходится латать в ней некоторые проплешины.

Всего хорошего. До новых встреч в эфире.

Вот такие сырники получились,… с изюмом.

ПС. Возможны ошибки, очепятки в тексте — исправим. НО КОД РАБОТАЕТ.

Также принимаю заявки на изменение названий новым Грекам.


 

 

★7
9 комментариев
И как в том анекдоте про авиалайнер:
  — А теперь, уважаемые пассажиры, мы попробуем со всей этой.уйнёй взлететь заработать в опционах прибыль. 
avatar

О'Грин, так в этом и суть опционной торговли.

Все тащатся, что они такие умные. И деньги им не нуДны.

avatar
_sg_, Ну они ИМХО, реально умные. Явно умнее меня, хотя я сильный тех.вуз заканчивал. Я серьёзно.
 Только я по жизни продвинутый прикладник, а они мощнее оперируют очень отвлечёнными образами.
 А вот что для низменного вынимания прибыли из рынка эффективнее — компьтерный подбор комбинации шифра замка или примитивная кувалда — это уж только эквити каждого на дистанции показывает…
avatar

О'Грин, плавали, знаем. 

я тоже прикладник, поэтому хорошо понимаю о чем Вы говорите.

Одни новые тенденции в науке изучают, покуривая сигары.

А другие с высунутым языком по заказчикам и поставщикам носятся как угорелые.

А потом у тебя еще и спросят. А ты что до сих пор теорию Струн не знаешь ?

avatar
_sg_, 
 Я вот в теории струн в своё время покопался как следует ( в сути, без формул) — в принципе — интересно, имеет право на жизнь как вариант устройства Мироздания.
 Но вот только ни я, ни кто-нибудь другой не сможет даже с виртуозным владением этой теорией заработать деньги хоть на бирже, хоть в реальной жизни прикладником. 
avatar
Ох и наступите вы кому-то на больное местечко. Терь держите кулачки. Удачи!

Роман Бесходарный,

люблю наступать на разные места.

Молодею от этого.

Энергия от Наступаемых переходит к Наступающим. 

ЗОЖ.

avatar

теги блога _sg_

....все тэги



UPDONW
Новый дизайн