Привет, я пытаюсь воспроизвести теоретическую цену опциона и греков ThinkOrSwim (на их вкладке анализа рисков, показанной здесь: изображение) в Python и сталкиваюсь с постоянным пробелом, который я не могу объяснить. Публикуем код здесь: https://pastebin.com/Fg63WhCr
Код: Выделить всё
import schwabdev
client = Schwabdev.client(…)
Я анализирую долгосрочный американский пут: NVDA пут на 180 долларов, срок действия которого истекает 15 декабря 2028 г. Я использую Блэк-Шоулза-Мертона (py\\\_vollib) для греков и тео-цены. Я также попробовал использовать биномиальное дерево для определения цен, но это еще больше увеличило разрыв. Я также пробовал прыгающий вызов для AAPL, и аналогичная проблема заключалась в том, что его стоимость на 5–30 долларов меньше, чем TOS.
ВХОДЫ (максимально соответствуют TOS):
S = 190,00 (последняя цена из Schwab API)
K = 180,00
r = 0,0375
q = 0,0046 (TOS сообщает «Доходность» как 0,46% для этого конкретного контракта)
sigma/Vol = 0,4817 (решается с помощью биномиального дерева IV на основе рыночной цены — TOS сообщает о 48,50%, но установка вручную значения 0,4850 не сильно помогла)
flag = 'p' для пут
МОЯ ВЫХОД против TOS ACTUAL (Тео за контракт, срез 0% / сегодня):
DTE | Мой Тео | ТОС Тео | Дельта
1027 | $4290,28 | $4313,40 | -23$
827 | $3941,66 | $3970,05 | -28$
427 | $2934,31 | $2969,15 | -35$
127 | $1528,31 | $1566,29 | -38$
12 | $ 258,51 | $ 309,62 | -$51
Разрыв увеличивается по мере того, как дата приближается к дате истечения срока действия, что позволяет предположить, что это не просто фиксированное смещение входных данных.
Греки, как правило, близки, но тета и гамма расходятся сильнее ближе к истечению срока действия.
\\---
ВОПРОСЫ:
1. Является ли BSM просто неправильной моделью для американских опционов-путов, и следует ли мне вместо этого использовать Бьерксунд-Стенсланд или биномиальное дерево? (Я попробовал биномиальную оценку цен, и разрыв увеличился, а не уменьшился.) Если да, то как? Параметры, которые у меня есть, тоже подходят для этих моделей или тоже неправильные?
2. Какую именно модель ценообразования и соглашение о процентных ставках использует TOS? Это где-нибудь задокументировано? Это что-то сложное, например, TOS, использующее собственную поверхность волатильности или другие недоступные проприетарные данные, или это просто какая-то простая ошибка кодирования? Или что-то еще?
3. Есть ли известный способ воспроизвести цены TOS в Python с точностью до нескольких долларов за контракт? Я попробовал SchwabDev и
Буду очень благодарен за любую помощь. Рад поделиться дополнительными данными.
Спасибо
Подробнее здесь: https://stackoverflow.com/questions/798 ... n-to-limit
Мобильная версия