Changeset 17566 for lang/python
- Timestamp:
- 08/13/08 13:20:21 (3 months ago)
- Files:
-
- 1 modified
-
lang/python/option_tools/alpha.py (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lang/python/option_tools/alpha.py
r17527 r17566 2 2 #-*- coding:utf-8 -*- 3 3 4 from black_scholes import BS_Call, BS_Put 4 from black_scholes import BS_Call, BS_Put, BS_Call_IV, BS_Put_IV 5 5 import random,math 6 6 7 def effectiveWeight_Call(S0,C0,K,T,R,V ,V1,mu=None,cacheNum=10000,newtonNum=10,seed=0):7 def effectiveWeight_Call(S0,C0,K,T,R,V1,V=None,mu=None,cacheNum=10000,newtonNum=10,seed=0): 8 8 """対数効用関数に基づいた、無リスク資産とコールオプションの対数最適成長比率を求めます。 9 9 … … 14 14 T:満期までの残り時間(ただし1期間後) 15 15 R:無リスク利率 16 V:インプライドボラティリティ 17 V1:1期間におけるインプライドボラティリティ 16 V1:1期間における原資産のボラティリティ 17 V:原資産のボラティリティ 18 (指定されない場合はコール価格からインプライドボラティリティを算出します。) 18 19 mu:原資産の1期間後における予想成長率 19 (指定されない場合は期待値が0となるような値に調整されます)20 (指定されない場合は期待値が0となるような値に調整されます) 20 21 cacheNum:キャッシュする量 21 22 newtonNum:ニュートン法を行なう回数 … … 26 27 random.seed(seed) 27 28 avg = -0.5*V1*V1 if not mu else mu #指定されなかったらマルチンゲールにする。 29 vol = BS_Call_IV(S0,K,T,R,C0,HV=0.2,maxNum=200) if not V else V #FIXME:1期間後のTが用いられている。 28 30 29 31 for i in range(cacheNum): 30 32 #対数正規分布に基づいて未来の価格を算出 31 33 S = S0*random.lognormvariate(avg, V1) 32 cnd = C0 / (BS_Call(S,K,T,R, V)-C0)34 cnd = C0 / (BS_Call(S,K,T,R,vol)-C0) 33 35 cache.append(cnd) 34 36
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)