Блог им. FateevVV

Анализатор опционных позиций. OptionFVV. Версия 1.0

Здравствуйте дорогие друзья!

Поздравляю все мужчин с праздником!!!

Я переписал свой анализатор опционных позиций из экселя на C#. Пишу в visual studio 2010.
Кстати я только начал изучать этот язык и это моя первая программа на этом языке. Так что мы с Тимофеев вроде как коллеги по цеху ;)

Начну со слов благодарности:
1. Евгению, за его комментарий, собственно именно оно заставило меня задуматься о том что все равно придется все переписывать с экселя, рано или поздно, пусть уж лучше рано.
Вот его комментарий «А вы подумайте, что дальше будет еще больше написанного, и тогда еще больше будете переписывать.». Хотя помню в первой версии программы он меня пытался отговорить от написания своего анализатора. Как хорошо, что я не податлив на чужое мнение. И то что я проделал такой путь ни грамма не жалею, наоборот есть еще большее желание развивать свой софт.
2. Всем тем кто согласился тестировать сырую версию моего анализатора, за их терпение и подсказки. Их было 4 человека Сергей, Дмитрий, Дмитрий и Максим (они знают про кого я говорю).
3. Есть еще один человек которому я благодарен, его к сожалению нет на смарт-лабе. Это профессиональный программист, на сайте MQL5 он известен как «Dmitriy Skub». Он мне периодически подсказывал по самому коду программы.

Собственно рассказывать особо нечего про программу, я её постарался сделать подобной экселю с тем же функционалом, только вот дизайн сделал так как мне хочется, в экселе я так сделать не мог.

Просто приведу пару скриншотов программы:
Доска:
Анализатор опционных позиций. OptionFVV. Версия 1.0

Диаграмма:
Анализатор опционных позиций. OptionFVV. Версия 1.0

Улыбка:
Анализатор опционных позиций. OptionFVV. Версия 1.0

Остальные 4 вкладки не так интересны для показа, но не менее значимые, сами посмотрите в общем, если интересно.

Есть возможность настраивать цветовые темы программы. Знаю что это абсолютно не важная функция, но мне просто было интересно как это можно организовать в своем приложении, раз уж сделал то пусть будет. Всего 5 цветовых тем (для девушек могу добавить розовую тему ;) ), вам покажу 2 моих любимых, остальные сами посмотрите:
Тема «Витек» — была на предыдущих скриншотах.
Тема «Угли с золой»:
Анализатор опционных позиций. OptionFVV. Версия 1.0

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

Какие в программе присутствуют недостатки, которые я неприменно устраню (ну или постараюсь устранить):
1. В программе используется в качестве ДДЕ сервера мой любимый эксель, из за этого скорость обработки данных на порядок меньше чем нежели я бы использовал свой ДДЕ сервер. Я уже чувствую как летят в меня тухлые помидоры от программистов-профессионалов, мол не профессионально, ляля траля... Знаю, но этот пункт пока для меня не очень важен (текущая скорость устраивает и глюков из за экселя я пока не встречал), не охото тратить время на написание своего ДДЕ сервера, а у меня его и так катострофически не хватает.
2. Хочу привести вкладку калькулятор к тому же виду как и в экселе, это я обязательно сделаю в дальнейшем.
3. Продолжу усовершенствовать модуль рассчета ГО, пока используются сценарии по изменению цены и волы. Для простых позиций годится, а вот моих любимых календарей нет. В таких позициях он ГО будет занижать. Мне надо будет для них добавить сценарии по изменению раздвижки по воле разных опционных серий и по цене разных фьючерсов. В общем модуль рассчета ГО можно усовершенствовать до бесконечности, главное найти ту черту где дальнейшее усовершенствование не целесообразно. По поводу ГО, я плюнул его подгонять под биржу, всеравно не подгоню, так как там черный ящик, погрешность расчета всегда будет присутствовать. В место этого буду рассчитывать свое ГО, мое личное представление о рисках позиций, для меня это будет гораздо полезнее и понятнее.
4. На диаграмме хочу сделать, чтоб когда водишь по полю мышкой, где нибудь отображались координаты X и Y диаграммы профилей позиций. Пока это можно сделать методом экстраполяции на глазок ;)
5. Усовершенствовать доску опционов. Чтобы она помогала определять оптимальные страйки для календарей и простых спредов. Пока не определился какой вид, какие поля у неё будут, у кого есть дельные предложения подсказывайте. Сразу говорю основной упор будет делаться на календари.
6. Усовершенствовать работу с улыбкой.
7. На диаграмме бывает выступают артефакты в виде не гладкой линии диаграммы. Заметил это на очень маленьких значениях диаграммы, в основном когда строим гамму. Я думаю это косяк алгоритма сглаживания майкрософт при построении графика. Буду разбираться.

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

Ну и пару слов, чем же всетаки моя программа мне нравиться (это только основные моменты):
1. Моя прога бесплатная.
2. Корректный расчет и отображение календарей, особенно с разными фьючерсными сериями. Я вообще не понимаю чего сложного сделать это в других программах, почему нет возможности строить календари с разными фьючерсными сериями даже в платных программах. Есть конечно же программы которые позволяют это делать, но их мало и они в основном зарубежные.
3. Лично для меня, удобная система стратегий, это разбиение, ведения и учет.
4. Куча других мелких авторских мелочей, которые не так важны. Да и функционал программы ограничивается только моей фантазией, творю чего захочу!
Если бы в каком то приложении хотя бы первые 3 пункта было организовано, то я бы на начальных этапах задумался, а стоит ли делать свой софт ;)

Выкладываю дистрибутив программы, скачать можно тут.
Писать руководство по эксплуатации откровенно лень, мне оно не нужно, а для вас его писать не хочу, поэтому записал видео.
Видео с подробным объяснением функционала, настройки и подключения программы, скачать (1 ГБайт, 38 минут) тут.

Можете мне писать свои пожелания и найденные баги, выполнять их буду со следующим приоритетом:
1. Найденные не точности или откровенно неверные расчеты позиций, греков и так далее.
2. Найденные баги, зависания программы.
3. Пожелания по интерфейсу и функционалу программы.

Сразу поясню, первые 2 пункта будут устраняться однозначно, а вот пункт под номером 3 на мое усмотрение и думаю что процентов 90 будет отсеяно. Я уже сделал как мне хочется и есть четкое представление как надо в дальнейшем делать. Но все равно есть шанс, что прилетит действительно какое то очень полезное или удобное новшество.

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

С уважением Фатеев Виктор!

★96
59 комментариев
Супер! спасибо! будем тестировать!
avatar
+++++++++
avatar
Буду тестировать! Спасибо за то, что Вы предлагаете данную программу всем страждущим! Жаль плюсануть не могу :(
avatar
Однозначно — в мемориз!!! ++++++
Посмотрим. Спасибо!
avatar
Мб на github положишь? Я бы присоединился к разработке, если позволишь. Может, что интересное получится))
Бобровский Дмитрий, пиши в личку, тут обсуждать не зачем.
avatar
FateevVV, все скачалось за 5 минут. Ещё раз спасибо Вам!
avatar
«Корректный расчет и отображение календарей, особенно с разными фьючерсными сериями».
Разные фьючерсные серии по сути это разные базовые активы. Сравнивать по ним опционы не совсем корректно.
По крайней мере так утверждают разработчики Option-Lab (которым я сильно верю), поэтому такую возможность они у себя не реализовали и не собираются.
avatar
Andy_Z, скорее Вы путаете понятия. Если базовый актив 3.16. А у вас опционы и 1.16 и 2.16 и 3.16, про корректность их отображения идет речь, базовый актив у них одинаковый.
avatar
Alex, Это так, и это Option-Lab позволяет. Я имел в виду опционы, к примеру,  на серии 3.16 и 6.16.
avatar
Andy_Z, Это не разные активы, по сути базовый актив один и тотже, корреляция у них очень близка к 1. Не вижу проблем их рассчитывать в одном портфеле, естественно надо четко понимать риски таких конструкций.
avatar
FateevVV, Тогда почему бы не строить одновременно позицию по RI и Si? Корреляция у них тоже близка к 1. 
avatar
Andy_Z, Это разные активы, у них раздвижка может очень серьезно разойтись и с корреляцией у них не так все хорошо (смотря конечно как её рассчитывать, вариантов море). Но в принципе если очень захотеть можно и в одном портфеле анализировать, только это уходит в область парного трейдинга и арбитража. И тут надо анализировать именно в этом ключе, это для тех кто профессионально занимается парным трейдингом. Мне пока хватает календарей на один фьючерсный актив, пусть даже разных месяцев экспираций.
avatar
FateevVV, по поводу dde сервера, если нужно будет готов помочь, есть своя переделка, нужно только под твои таблицы в квике структуру данных продумать, работает через события. но освобожусь где то через неделю.
avatar
Алексей, Блин Алексей я бы очень был бы благодарен, только вот я хочу сам в этом разобраться и написать, тупо вставить или скопировать код это не мой вариант, а вот если ты поможешь в этом разобраться, то буду благодарен, пиши в личку,  сконнектимся ;)
avatar
FateevVV, а так даже интересней :-) завтра со свободным временем определюсь и контакты в личку скину.

p.s. где ж ты был пару месяцев назад, я примерно тоже самое для своих нужд делаю, только с перламутровыми пуговицами :-)
avatar
Скажите, а бэктест стратегий возможен? 
avatar
Denis, нет
avatar
FateevVV, жаль, вот этого точно ни у кого из разработчиков нет
а было бы интересно стратегию прогнать и на 2008, и на 2011 и на март2014, дек 2014.
avatar
vitsantal, у меня есть плеер, в экселе писал, можно прогнать любую не календарную стратегию с середины 2010 г по 2015, с любым роллированием. Но он очень сырой и там надо долго прогонять. На один прогон можно неделю потратить. Если надо пиши.
avatar
Denis, там хулиард самых разнообразных исторических данных нужен для бектестинга…
хо хо хо… масштабно задумано, браво!
И это в то время когда ~Колинкович 2-й год уже рассказывает про свои виртуальные опционы (это никак не связано конечно, но почему-то вспомнилось))
Вопрос: есть ли возможность добавить в портфель один и тот же опцион, но по разной цене? 
avatar
Lexuz77, В момент моделирования можно, но когда вы сохраните их в стратегию и потом подгрузите они посчитаются как одна поза со средней ценой открытия. Чесно говоря пока не понятно зачем вам это, опишите подробнее вашу задачу, может вам будет просто достаточно разбить вашу позу на 2 разные стратегии?
avatar
Вы молодец, главное не останавливайтесь. :) 
А какую модель расчета теоретической цены используете?
avatar
Denis, классика, Блека-Шоулза, другие пока даже не планирую, не зачем.
avatar
Спасибо, буду пробовать
avatar
Зачётно!  Особенно про календари разных фьючерсных серий, ведь подобные стратегии имеют смысл, а софта считающего такую позицию целиком нет.
avatar
Спасибо!
avatar
Офигеть… как можно только начать учить и сразу выдать такое? Расскажите о методике обучения))
avatar
shprots, так ведь кодю с самого детства, знаю basic и с++. Язык с# очень похож на с++
avatar
FateevVV, 
не охото тратить время на написание своего ДДЕ сервера, а у меня его и так катострофически не хватает.
Уже все написано на С++ и обернуто для использования в С#, требуется минимум движений

гугли бесплатную библиотеку NDde.dll

server = new MyDDEServer(«DDEServer»);  //Создаем объект DDE сервер

server.Register();  //Регистрируем его

пример использования robostroy.ru/community/article.aspx?id=683

От этого у тебя тормоза и зависания

Прога с квиком работает?
avatar
Евгений, Спасибо, с ДДЕ буду разбираться позже. Прога работает с КВИК. На счет тормозов и зависаний, с экселем то как раз все в порядке зависаний нет, просто скорость обмена гораздо меньше.
avatar
Товарисч молодетс, побольше бы таких авторов
avatar
Хорошая программа наверное, напомнило анекдот:

Киев, прохожий спрашивает у местных, как пройти на Крещатик. Ему в ответ:
— Шо?
Повторяет вопрос на английском.
— Шо?
Hа немецком.
— Шо?
Hа французском.
— Шо?
Hе получив ответа, прохожий идёт дальше. Один местный другому:
— Дивись Петро, яки умный человек — скильки ж много языков знает!
— Hу и шибко це ему помогает?
Zweroboi, в анекдоте вся суть Украины.
avatar
Недавно начал тоже изучать C#, хотел тоже сделать свою программку для расчета опционов. Может тоже как Мартынов сделаете уроки по C# с несколькими примерами из вашей программы.
avatar
lexabush79, Не, не буду. Будет лень статьи писать на эту тему.
avatar
Автору плюс и огромное спасибо за программу, дальнейшего успеха в разработке! Вопрос к автору, планируется ли сделать управление масштабом картинки с улыбками и профилем стратегии? и Второе, биды и аски на улыбке показывает по колам или путам?
avatar
Сергей Ф, Масштаб изменяйте в панельке отрисовка графика «выше» «ниже». Биды и аски рисуются следующим образом, центральный страйк (текущий страйк) и выше это колы, ниже центрального это путы.
avatar
Здравствуйте, запустила анализатор, настроила вывод через dde сервер по видео, во вкладке Лог выдает ошибку «Ошибка в ClassDataDDE метод ReadDDE». Не подскажете, с чем это может быть связано? Спасибо!
avatar
Наталья, Чтото значит не так настроили, а данные из КВИК в эксель то идут? Файл DDE.xls открыт? Фьючи в таблице есть? Можем в скайп обсудит логин FateevVV.
avatar
FateevVV, Да, данные в эксель шли, все было открыто, фьючи были. Перезапустила квик, все заработало.
avatar
Наталья, Ну ладно тогда, слава богу…
avatar
Прямая DDE-шка, кстати, не очень сложно делается. Я помню из квика делал вывод для робота тоже на C#, там нужны:

1. dll NDde
2. класс XLTable

Оба тырятся в нете. И можно просто со строками и столбцами работать как в экселе.

Другой вопрос, нужна ли она сейчас. Если надумаете, пишите в личку, скину примеры кода.
avatar
Дмитрий, Спасибо, щас пока не планировал ДДЕ делать, позже. Если не пойму, обращусь
avatar
Спасибо вам огромное. Я рад, что есть еще такие люди, которые готовы делиться с другими плодами своего труда «просто так».

Анализатор я скачал. Сейчас смотрю видео. Позднее буду подключать. 

Здорово, что теперь будет альтернатива www.option.ru

ЗЫ. Плюс в в профиль поставил. Добавил в читаемые.
Спасибо вам еще раз.
ЗЗЫ. Не ожидал увидеть такое фото в разделе «О программе» :-) Улыбнуло.
avatar
Mr_Noname, ну в определенном смысле даже не альтернатива.а замена — календари в опшн.ру редко получается нормально отстроить, а у автора программы — отлично все отрисовывает. Вобщем, мне очень понравилась программа.
avatar
Сергей Ф, можно и так сказать. 
Согласен насчет отрисовки. Не скажу, что очень понравилась. Скажу, что, пока что, в восторге от нее :-)
avatar
Не могу добиться работы вашей программы. В логах — Ошибка в ClassDataDDE метод ReadDDE. В окне Информация — В ДДЕ сервере нет фьючерса.      Quik 7.0.4.10
avatar
Konsta68, Вам надо добавить в таблицу, те фьючерсы, базовыми активами которые являются тем опционам которые торгуете.
avatar
Они добавлены, в таблице Эксель они есть, и еще в Квике в параметрах для экспорта по ДДЕ нет параметра тип опциона.
avatar
Когда ставлю на экспорт параметр Погашение — выдает ошибку что формат не соответствует формату даты.
avatar
запустилось с параметром не Погашение а Дата исполнения инструмента
avatar
программа работает только с квик? со смартХ данные не возьмет?
avatar
Денис Никитин, Я не знаю какой формат в смартХ, по сути если он сможет точно также по ДДЕ выводить как КВИК в файл DDE.xls то почему бы и нет, в общем не знаю.
avatar

теги блога FateevVV

....все тэги



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