波動率

想要使用 Logs 獲得 20 10 5 天歷史波動率的趨勢,但得到負數

  • October 24, 2016

好的,所以我不是數學高手,所以在這裡需要一些認真的幫助。我有歷史波動:

20 天歷史波動率 = 49.07% 10 天歷史波動率 = 47.43% 5 天歷史波動率 = 41.77%

我的目標是顯示以下內容之間的相對變化:

20 天 HV 和 10 天 HV 之間的變化 = diff2010

10 天 HV 和 5 天 hv 之間的變化 = diff105

20 10 5 天的整體變化 = diffabs

我得到了有用的建議,我應該使用 log 函式使用下面的等式以數學上準確的方式獲得差異

log_diff2010 = math.log(10 天高壓) - math.log(20 天高壓)

log_diff105 = math.log(5 天 hv) - math.log(10 天 hv)

log_diffabs = math.log(log_diff105) - math.log(log_diff2010)

但是 log_diffabs 會導致 -ve log num 導致錯誤。所以我有兩個問題:

1 我對 log_diff2010 和 log_diff105 的計算是否正確?

2 如何找到 20 10 5 天期間的整體變化

這是 python 3.5 執行,對我來說一切都出錯了:-(

> > > > > > 導入數學 > > > > > > 數學日誌(47.43) > > > > > > > > >

3.85925493988949

> > > > > > log_diff2010 = math.log(47.43) - math.log(49.07) > > > > > > log_diff105 = math.log(41.77) - math.log(47.43) > > > > > > log_diffabs = math.log(log_diff105) - math.log(log_diff2010) > > > > > > > > >

Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
  log_diffabs = math.log(log_diff105) - math.log(log_diff2010)

   ValueError: math domain error

 >>> log_diff105

-0.12707656138040635

 >>> log_diff2010

-0.03399291021232198
 >>> r2010 = round(log_diff2010,4)

 >>> r105 = round(log_diff105,4)

 >>> r2010

 -0.034

 >>> r105

   -0.1271

  >>> rrabs = math.log(r105) - math.log(r2010)

  Traceback (most recent call last):

     File "<pyshell#14>", line 1, in <module>


     rrabs = math.log(r105) - math.log(r2010)

  ValueError: math domain error

  >>>

使用指數/根將解決負值

import math

log_diff2010 = math.log(47.43) - math.log(49.07)
log_diff105 = (math.log(41.77) - math.log(47.43))
print log_diff105,(log_diff105**2)**.5,(log_diff2010**2)**.5,(log_diff2010**2)**.5
log_diffabs = math.log( (log_diff105**2)**.5) - math.log( (log_diff2010**2)**.5)
print log_diffabs

引用自:https://quant.stackexchange.com/questions/30669