Избранное трейдера MrD
Settings={ Name="VCUR", period=20, weighted=0, line= { { Name = "cur1", Type =TYPE_LINE, Width = 2, Color = RGB(140,181, 242) } } } --[[ -- кривая объемов описание свойств: period: сколько баров берутся в подсчет weighted: =0 - обычная, =1 - взвешанная --]] function Init() sumv = 0 return 1 end function OnCalculate(index) if index >= Settings.period then for i=index-Settings.period-1, index do if sumv == nil then sumv = 0 end if C(i-1) ~= nil then if C(i-1) > O(i-1) then if Settings.weighted == 0 then sumv = sumv + V(i-1) else sumv = sumv + V(i-1)*(i-(index-Settings.period))/Settings.period end else if Settings.weighted == 0 then sumv = sumv - V(i-1) else sumv = sumv - V(i-1)*(i-(index-Settings.period))/Settings.period end end end end else sumv = nil end return sumv end
Settings={ Name="GVOL", period=200, maxline=20, width=4, count=50, xshift=0, vlm=1, line={} } --[[ описание свойств: xshift - сдвиг по горизонтали count - количество черточек по вертикали period- сколько баров берутся в подсчет maxline - количество баров для максимальной черточки width - толщина черточки vlm - 1-c учетом оъема 0-просто распределение без объема, --]] function Init() n=Settings.count vol={} for j = 1, n do vol[j]=0 Settings.line[j] = {Color=RGB(192,192,192),Type=TYPE_LINE,Width=Settings.width} --for i=Size()-Settings.xshift-Settings.maxline, Size()-Settings.xshift do for i=1, Size() do SetValue(i, j, nil) end end return Settings.count end function OnCalculate(index) if (index < Size()-Settings.xshift)or(index > Size()-Settings.xshift) then return nil else n=Settings.count maxv=0 maxc=0 minc=9999 for i=Size()-Settings.xshift-Settings.period, Size()-Settings.xshift do if C(i) ~= nil then if maxc < C(i) then maxc = C(i) end if minc > C(i) then minc = C(i) end end end delta = (maxc - minc)/n for i=Size()-Settings.xshift-Settings.period, Size()-Settings.xshift do for j = 1, n do if C(i) ~= nil then if (C(i) > minc + (j-1)*delta) and (C(i) <= minc + j*delta) then if Settings.vlm == 1 then if V(i) ~= nil then vol[j]=vol[j]+V(i) end else vol[j]=vol[j]+1 end end end end end for j = 1, n do vol[j] = math.floor(vol[j]+0.5) if maxv < vol[j] then maxv = vol[j] end end k = 0 for i=Size()-Settings.xshift-Settings.maxline+1, Size()-Settings.xshift do k = k + 1 for j = 1, n do if vol[j] >= (Settings.maxline - k)*maxv/Settings.maxline then SetValue(i, j, minc + j*delta) else SetValue(i, j, nil) end end end end end
Волею судеб прочитал статью Виталия Курбаковского, где он предлагает свою модель ценообразования опционов. Ссылка https://smart-lab.ru/blog/135564.php . Статья интереснейшая, демонстрирует высокий уровень как практической так и теоретической подготовки автора, отличную интуицию и методологию научного поиска. Прочитал и изучаю с удовольствием! Рекомендую всем, кто работает с опционами, да и не с опционами тоже. Очень жалею, что не прочитал раньше. Даже небольшую рецензию сподвигся написать :)
Как-то так получилось, что наверное любой опционщик знаком со словами типа “улыбка волатильности”, “подразумеваемая волатильность” итд. История возникновения этих слов имхо проста и эволюционна. Блэк и Шоулс написали свою теорию, в которой в числе прочих была буква сигма--просто константа теории, которую они назвали волатильностью. Вскоре выяснилось, что теория неверно описывает реальные рынки и невозможно удовлетворительно зафиттировать реальные цены опционов, манипулируя только константой сигма. Как пример--попытка фиттирования формулой Блэка и Шоулса опционов на фьючерс РТС, дата 21.06.2019, экспирация 18.07.2019, время до экспирации 27.3 дня, ЦБА=135700:
Решил для себя сделать оценку популяции этих милых насекомых. Но, возможно, такая занятная семейка кому то еще пригодится?))
Таракан первый.
Никогда не сидеть подолгу в продаже волатильности. Не верить даже уважаемым людям, что iv>>rv почти всегда, хватать достойные хлебные крошки быстро и решительно, затем не менее решительно ховаться под плинтус.
Таракан второй.
Ежели в продажу волатильности все-таки занесло, не заниматься «защитой краев» и прочими интеллектуальными игрищами, а постоянно с максимально разумной частотой рехеджить позицию. Все мысли о возвратности цены, возвратности волатильности и возвратности денег отложить. Потом, под плинтусом в уюте и безопасности успеем их просмаковать.
Таракан третий.
Не бояться покупать волатильность. Купив же оную, не торопиться с рехеджем. Частый рехедж убивает прелести длинной гаммы с надежностью и неотвратимостью хозяйского тапка.
Таракан четвертый.
Ничего не любить. Не любить ни купленную волатильность, ни проданную, ни меднокрылых кондоров, ни ядовитых змей, ни прочую конструктивную геометрию. Любить только себя сидя под плинтусом.
Таракан пятый.
… убежал. Пятница, знаете-ли, у всех свои дела. Но, при необходимости, поищем))