Автор: Александр Кургузкин (mehanizator).
Данные, которые я обычно использую для работы с SPX — логарифмы ценовых изменений, нормированные на историческую волатильность предшествующего периода, обычно месяца. Для оценки опционов, особенно далеко вне денег, важно учитывать ненормальность этого распределения. Там есть и ассимметрия, вызванная «эффектом плеча», и эксцесс (толстые хвосты).
Если подгонять эмпирическое распределение нормальным, на концах подгонится плохо. Вот картинка, черные точки — эмпирическое распределение, красные — его подгонка нормальным распределением. Шкала логарифмическая.
Для ориентировки — моменты эмпирического распределения (данные по SPX с 2003 года):
n 2623 mean 0.0410 sigma 1.5247 skew -0.4507 kurtosis 4.6586
Надо использовать другое распределение, где есть ассимметрия и эксцесс. Вариантов вообще много, есть семейство Pearson, есть Johnson, есть другие способы, вот статья попалась на эту тему, если кому вдруг интересно, там много разных вариантов: Financial Economics, Fat-tailed Distributions (eng, pdf).
Я взялся подгонять с помощью Johnson SU, это распределение имеет эксцесс (kurtosis > 3) и ассимметрию в области определений, пригодной для работы с ценовыми данными. К сожалению имеющийся в открытом доступе код для подгонки, который мне удалось обнаружить, представляет из себя код на фортране, чуть менее, чем полностью состоящий из GOTO (алгоритм AS99, опять же если кому вдруг интересно). А из Java метки выпилили, приходится переписывать код руками. Johnson SU я перевел успешно, а вот Johnson SB пока не заводится. Johnson SB нужен для отрицательных/нулевых эксцессов или слишком сильных ассимметрий, что может оказаться полезным, если подгонять на лету всякие условные/фильтрованные распределения.
В R или Matlab это все есть в библиотеках, конечно.
Вот как подгоняется вышеозначенное эмпирическое распределение через Johnson SU: