vega值
期權的風險指標
Vega值是期權價格關於標的資產價格波動率的敏感程度,期權的風險要素通常用希臘字母來表示,包括:delta值、gamma值、theta值、vega值、rho值、charm值等。
Vega值是期權對標的資產價格波動率變動的敏感度,它反映當波動率變化一個單位時(通常用1%來衡量),期權價格理論上的變化,Vega值永遠都是正數,值越大,投資者面對波動率變化的風險便越大。
vega值
期權的風險指標通常用希臘字母來表示,包括:delta值、gamma值、theta值、vega值、rho值等。
Vega(ν):衡量標的資產價格波動率變動時,期權價格的變化幅度,是用來衡量期貨價格的波動率的變化對期權價值的影響。
Vega,指期權費(P)變化與標的匯率波動性(Volatility)變化的敏感性。
公式為:。
對權證有一定認識的投資者,相信都知道影響權證價格的主要因素,包括相關資產的價格、引伸波幅、權證的剩餘年期、市場利率及相關資產的預期派息率等。條款不同的權證,其理論價格對上述五大因素變動的敏感程度亦各有不同,而Greeks值[如對沖值(Delta)、Vega值等]便是用來量度權證理論價格對上述各因素敏感度的工具。
其中,早前提及過的對沖值便代表權證價格對相關資產價格變動的敏感程度。除相關資產價格外,引伸波幅便是影響權證價格的另一個重要因素,而Vega值便代表權證價格對引伸波幅變動的敏感程度。Vega值並非常數,一般而言,到價證的Vega值最高,若以權證價格的百分比計,則Vega值占深入價外證的比重最高。舉例言之,假設某權證的Vega值為0.05,則代表當該證的引伸波幅每升或跌一個波幅點,該證理論價格便會跟隨上升或下跌0.05。
理論上,在正股股價及引伸波幅同時上升時,兩隻實際槓桿相同的認購權證當中,Vega值較高的一隻升幅會相對較大;不過,若出現相反的情況,即引伸波幅下調時,Vega值愈高的權證,其理論價格的跌幅同樣亦會較大。
所以,若揀選高Vega值的權證而又能看中引伸波幅上升的話,則無論買認購權證或認沽權證,均可能有較大的升幅。唯引伸波幅受到各方因素影響,一般投資者能準確預測的難度極高;因此,我們認為投資權證應從多注意相關資產的走勢出發,在對正股或指數有明確預期方向時,應多參考其他因素,如行使價、到期日、引伸波幅高低、Vega值的高低及發行人素質等因素,再作投資決定;若純為希望利用引伸波幅升跌而投資於權證的話,可能是較本末倒置的做法。
如果某期權的Vega為0.15,若價格波動率上升(下降)1%,期權的價值將上升(下降)0.15。若期貨價格波動率為20%,期權理論價值為3.25,當波動率上升為22%,期權理論價值為;當波動率下為18%,期權理論價值為。當價格波動率增加或減少時,期權的價值都會增加或減少因此,看漲期權與看跌期權的Vega都是正數。期權多頭部位的Vega都是正數, 期權空頭的Vega都是負數。
如果投資者的部位Vega值為正數,將會從價格波動率的上漲中獲利,反之,則希望價格波動率下降。對於Delta中性的部位,就可以不受期貨價格的影響,而從價格波動率的變化中尋找盈利機會。
對於外匯期權的買方而言,Vega值始終大於零,說明標的匯率波動性的增加將提高外匯期權的價值;相反,對於外匯期權的賣方而言,其Vega值始終為負。同樣,當外匯期權處於平價狀態時,Vega值最大;當期權處於較深的價內或者價外時,Vega值接近於零。
vgsystem是一個屬性函數,它用於設置控制錯誤的操作和通知、幀更新、多處理設置以及如何適當退出應用程序。由Lynx或者通過刪使用的vgprop函數取代預設設置的所有屬性。使用vgGetprop函數可查詢設置;使用vgGetSys函數獲得在vgSystem函數。
錯誤處理
通過打開或關閉系統屬性VGSYS_FPERROR來打開或關閉浮點錯誤指示器。預設值為VG—OFF。如果設置為VG_ON,則除代替系統並試圖恢復程序外,vega還括入其自身的浮點數。當VGSYS_FPERROR為打開狀態,把通知層設置到VG—INFO或上述有存入浮點錯誤的控制台上。除了對程序的運行進行優化之外,用戶還需使浮點數的數量最少用戶能設置聯機到控制台上所指示的提示錯誤消息。之後,把屬性VGSYS_NOTIFY設置到下面各層的某一個層中,按照重要性遞減的順序列出:
. VG_FATAL可能引起一個退出;
. VG_WARN——也許失敗也許不失敗;
. VG_NOTICE——可能有錯誤或結構出問題;
. VG_INFO——為用戶列印出錯信息;
. VG_DEBUG——用於程序調試。
只要錯誤消息的嚴重程度比當前層嚴重,則將所要公布的消息寫到標準的輸出設備上;否則,公布的消息作廢。錯誤消息的來源可能是vega系統或用戶的應用程序。例如,接收所有消息的設置代碼為
vgSystem *sys;
sys=vgGetSys();
vgProp(sys,VGSYS_NOTIFY,VG_DEBUG);
在用戶代碼中使用下面的格式插入到調試層的消息
YgNotify(VG_DEBUG,VG_APP,,);
YgNotify(VG_DEBUG,VG_APP,"this is an example debug notice at line %ld."._LINE_);
幀管理
VGSYS_FRAMERATE的參數默認值為300,表示每秒中更新顯示的單位幀數。
VGSYS_PHASE的設置指定通過vgsyncFrame函數和繪製線程(如果它是一個分離的線程)使用的同步方法。可以給定下面參數值中的屬性之一。
. VGSYS_FREERUN——預設狀態。允許應用程序在任何速度下都能執行;定義的幀率無效。
VGSYS_LIMIT——與VGSYS_FREERUN相同,但是比定義的幀率低。
vega的執行程序(或vega過程)是一個單窗口過程,該窗口過程在它前後連接處有多個線程。線程對於分配處理器時間的操作系統是一個基本單位。為了在一台給定的機器上得到一個最優化的執行,用戶必須在以多種線程方式下運行的系統中配置vega。
3種主要的vega線程是請求(app)、選擇和繪製,各自可作為一個單獨的線程執行,或以任意兩種線程組合的方式執行,或以3種線程執行,用戶也可為交叉過程選擇一個分離的線程,為資料庫裝載選擇一個線程,為光點計算選擇另一個線程。當內存分頁幾何體使用大面積資料庫管理(LADBM)時,或者是用戶自己的內存分頁幾何體時需要資料庫裝載線程。
選擇一個多線程模式時,使用vgProp函數把VGSYS_MPMODE設置成下面5種之一:
. VGSYS_MPDEFAULT——對於目標機器上的CPU,讓系紋確定最佳的結構。
. VGSYS_MP0———為請求、選擇和繪製設置個默LL的線程。
. VGSYS_MP1——設置兩個線程,在—個線程中請求和選擇,在另一個線程中繪製。
. VGSYS_MP3——設置三個線程*分別用於請求、選擇和繪製。
用戶可以控制在系統上運行的線程處理器(CPU),在窗口屬性中設置繪製線程和優先權,在通道屬性中設置選擇線程、光點線程和優先權,通過把vgsyste函數的屬性VGSYS_APPCPU設為適當的CPU數來設置,app CPU。若CPU數為0,則在系統上的CPU數為-1。映省值為-1說明沒有分配專門的CPU,這時操作系統將決定各線程每次使用CN運行的時間。如果在一台專門運行vega應用程序的機器上不存在指定的CPU數,則在機器上存入一個警告,並真指定線程為-1。
用戶也可以控制線程時序的優先權。每個線程的優先權由下面標準確定:
. Vega處理的Vega優先權類;
. 在vega處理的vega優先權類中線程的vega優先層;
. 優先權類和優先權層被組合為一個線程的基本優先權形式;
. vega處理的優先權類參數值的範圍是31—39,參數值大的優先權小,使用32為最佳。
表3.1說明vega優先權類參數值的含義。
vgsystem的VGSYS_VEGAPRI屬性用於選擇vega過程優先權類。注意,該優先權只在vegaNT下能用,而在SGI上的vega中不存在。
vega線程優先權層所有的範圍是31—39,使用32時優先權最高。
注意:為解決平台之間兼容性的問題,對於指定論vega的優先權類和線程層優先權而使用的數字值不同於由Windows使用的那些項目的實際數字值,vegaNT將把表3.1和表3. 2 中的值轉化為適合WiIndows的數值。
vgSystem函數的VGSYS_APPPRI屬性用於為請求線程選擇Vega線程的優先權層;
vgSystem函數的VGSYS—ISECTPROC屬件用於選擇一個非同步交叉線程,在另一個CPU起作用的情況F使用人量交義進行處理時使用:用vGSYS—ISECTCPU屬性對遠行交叉線程的CPU及其上運行的優先織進行設置,該線程是用VGSYS—ISECTPRI屬性定義的。
vgsystem函數的VGSYS_DBPROC屬性用於選擇一個不同步的資料庫線程,運行期間在幾何體中進行內存分貝時使用(由vega LADBM模型進行透明處理)。用VGSYS_DBPRI屬性對運行資料庫線程的CPU和在它上曲運行的過程優先權進行設置,該資料庫是用VGSYS_DBCPU屬性定義的。
vgSysdem函數的VGSYS_LPOINTPROC屬性用於選擇一個同步光點線程,該線程在與繪製線程和方向之間的比較中運行,並為光點計算可見性。
系統回調
有以下7種回調類型,這些回調是利用系統對vgAddFunc公共程序函數的調用進行註冊的。
VGSYS_PRESYNC———只在pfSync之前調用;
vGSYS_POSTSYNC——在pfSync之後和在與IO設備同步后調用;
vGSYS_PRECONFIG——只在系統配置之前調用;
VGSYS—POSTCONPIG———在配置系統之後調用:
VGSYS—PREFRAME——只在pfFrame之前調用;
VGSYS_POSTFRAME———在PfFrame之後調用;
VGSYS_EXIT——在用戶退出調用的函數之後從vgExit函數中調用。
退出系統
用戶的應用程序不應當調用Exit。為適當地按順序退出應用程序可調用vgExit函數,把一個整數碼送到vgExit函數中。如果用戶的應用程序以一個錯誤的結果退出系統,則會使該碼為負數。
如果以用戶碼的一個結果退出執行的任務時,需在調用vgIniSys函數之後使用vgUserExit函數安裝用戶的退出函數。 —旦安裝完畢,將以vgExit程序開始調用該用戶的退出函數。如果不希望用戶的函數終止程序,則用戶的退出函數應返回-1。使用vgExit函數時要特別仔細。用戶已註冊的回調函數的內部不調用vgExit函數,是為了避免死循環。用戶的模型也可以安裝VGSYS_EXIT回調函數,因此使用考調用vgExit函數時會通知它們。
使用vgExitKey函數會讓系統記錄一個鍵,當打開輸入時,選擇該錫會使程序退出。該鍍由它的ASCII碼給定。如果未指定該鍍,vgGetExitKey函數將返回先前定義的退出鍵ASCII碼,當前從未定義時返回-1。當任意一個程序打開窗口確認定義的鏈己被按下,則調用vgExitt函數。滑鼠游標所在的窗口就是當前窗口,只要在當前窗口上進行輸入,窗口就會識別出該鍵是否按下。
時間
vgGettime函數以秒為單位返回調用vgInitSys函數的時間,返回值為雙精度浮點數,具有系統支持的最高精度;vgGetRunTime函數以秒為單位返回繪製第一幀時所用的時間:vgGetFrameTime函數返回從開始繪製第一幀到員后開始調用vgFrame函數之間的時間;vgGetDeltaFrameTime函數返回當前幀的開始點和前一幀的開始點之間的時間。
double vgGetTime(void);
double vgGetRunTime(void);
double vgGetFrameTime(void);
double vgGetDeltaFrameTime(void);
模決的可用性
vega還提供4種另外的函數,把它們加到與vega產品模塊有關的內容上(即特殊效果,LADBM)。
int vgAddModAvail (char *name);
int vgPindModAvail (char *name);
char *vgGeModAvail (int idx );
int v8GetNumModAvail(void);
vgAddModAvail 函數由一個產品模塊的初始函數調用,它把模塊名加到可用模塊的列表中。這樣並不能打開或提供任何相關的已命名產品模塊,而只是把產品模塊名放置到一個能從內核中查詢的列表中。作為特殊情況.在一個產品模塊初始化時,在確定使用許可協議對它的操作有效之後,格在列表中增加該產品模塊的名字。
如果一個特定的產品模塊為用戶所使用,則在使用函數vgConfigSys配置之後任意時刻都能調用函數vgFindModAvail來查詢模塊的可用性。需要給該函數提供模塊名稱,它返回查詢產品名稱的一個索引列表,如果產品模塊不可用,則返回-1。vgGetModAvail函數通過列表中的索引號返回一個產品模塊的名稱,索引號的開始值為()。
vgGetNumModAvail函數返回列表中產品模塊的個數。
事件管理
這一節包含的信息有助於vega產品模塊的開發。一個產品模塊是一個為vega提供新增功能的庫。下面介紹在vega中管理事件的基本概念。這並不是預期使一個產品模塊如何成為實際應用程序的函數。
vega提供的建模行為是通過自行管理的事件通知和自行管理的事件活動。這些事件的自行管理特徵允許vega產品模塊互相傳遞。vega類記錄器(vega Class Recorder c_vegaVCR)同樣是一個可選的Vega產品模塊,從而當需要發生事件(事件活動)時,利用這個裝置通知那些相同的模塊,模塊事件發生了:
#include
void vgRegisterInstance (vgCommon *handle, void *name);
void vgEvent()ccurred (vgCommon *handle,unsigned eventId,void *edata):
vgRegisterInstance ()函數用於記錄vega或利用任意需要這樣通知的任意模塊的產品模塊類事件。參數如下;
. handle——指向被註冊事件句柄的一個指針。
. name——vega類名或利用正在註冊的句柄的產品模塊事件。
下面代碼表示一個特殊效果模塊應如何使用一個特殊VCR類事件記錄它所有的事件。
unsigned num=vgGetNumFx();
for(i=0;i
vgAddEventFunc((vgFx *)vgGeoFX(i),vcrName);
vgAddEventFunc()函數允許產品模塊使用vega事件函數提供的模塊地址作記錄,當vega處理和重建一個特殊事件時調用事件函數。 vgAddEventFunc()函數返回一個產品模塊和使用引入該事件的vega事件標識符eventId,其參數為:
. EventHandler——指向管理這一特定事件的事件管理器地址的一個指針。器攀控如何重建該事件的詳細情況。
. EventDataSize——以位元組數表示與該事件關聯的數據大小。
vegaVCR是一個使用該機構的一個產品模塊的例子,當在PLAyBACK方式下,VCR遇到一個事件標識符(eventId)信息包,該信息包包含了不在預先指定的vegaVCR事件的有效範圍內的事件標識符,VCR將調用已註冊的事件函數模塊,該模塊即相當於產品模塊信息包的事件標識符eventId,用於通知需要出現事件的產品模塊。下段代碼舉例說明一個應用程序如何註冊一個事件管理器以便確定使用控制交叉、選擇和繪製的方法穿越一個節點的穿越掩碼。
unsigned afterburnerEventId=vgAddEventFunc(setAfterBurners,sizeof(float));
vgEventOccurred函數用於通知已經發生一個Vega事件,vega能通知需要這種通紀的任何模塊。其參數為:
. Handle——指向剛剛獲得事件的事件旬柄的一個指針。
. EventId——描述該事件的惟一參數值(該值從vvgAddEventFunc函數中返回)。
. Edata——指向數據結構的一個指針,該結構包含處理和重建該事件所必須的事
件數據。
下段代碼舉例說明一個特殊效果模塊如何通知
的時間。
void vgFxSetTime(vgFx *fx,int which, doubte val)
{
struct_eventdata
{
double val;
int which;
} eventdata;
switch((vgFxTimeProp)which)
{
case VGFX_STARTTIME;
if(val=VGFX_NOW)
{
st=vgGetTime() eventdata.val=val;
}
else { st=val;
eventdata.val=val-vgGetTime();
break;
...
vgEventOccurred(fx,setTimeEventId,&eventdata);
}
目錄