2015年5月16日 星期六

程式交易利用選擇權避險 – 4

 

這篇再繼續整理一些選擇哪一種選擇權的觀察。週選的特性是Theta大、Gamma大,也就是時間耗損快、Delta變動也快,而程式交易要搭配的避險選擇權要怎麼選,還是要回過頭看要避險的程式交易是什麼屬性。

 

持倉越短的中短週期程式單,可能一兩天或一週內的,比較適合使用週選及與程式單同進同出的方式,而持倉越長期的使用週選就有交易成本過高的問題,就比較適合月選及進場後不理的方式,另外月週選也是有價差的,應該照當下的情況選擇合適的選擇權,例如在一個正價差的盤勢,月期貨 > 週選Put-Call Parity > 加權指數,如果這價差很大,那多單要避險時用月選來作Sell Call或Buy Put就稍稍有利一點點。

 

買賣方也是可以從程式交易本身的特性來搭配,高勝率低盈虧比,就搭配買方;低勝率高盈虧比,就搭配賣方。這樣的好處就是互補,在如何選擇所要搭配的選擇權時,都要記得我們避險的目的是要讓整體組合損益更平滑

 

而避險選擇權應當與程式單訊號同進同出或持續持有? L認為要分買賣方,使用買方避險,當程式單損失時,不一定有避險效果,因為必須有一定空間才能顯現避險效果,所以持續持有價外買方(EX. 10點以下)是比較好的選擇,也就是程式單進場時買方一起進場,程式單出場時買方就擺著不管了,一是出場價格極低,二是程式單再次進場仍可使用,三是還有一點點的機會,偶爾出乎意料的行情會賺回來。

 

使用賣方避險,當程式單損失時,幾乎都有避險效果,當程式單出場時,應同時出場,我們要的避險效果都會有,只是效果大不大要看履約價選擇,一般都是選擇價外2~3檔,並應有30點以上,太少點數的不一定划算,履約價選擇可以利用其它的一些指標來確認,例如市場最大未平倉OI的履約價、加權指數近期區間的上下緣、指數的乖離%數設定這些等等。

 

以上,是一般情況下的相關選擇想法,下一篇再寫,就台股現象來選擇合適選擇權的整理吧。

 

2015年4月11日 星期六

程式交易利用選擇權避險 – 3

 

跳空這件事,是我們想要避險的一大因素,有多少次一覺醒來看到美股大漲大跌,而我們部位是反向時的那種感受,真希望能夠有多一點避險,然後準備開盤被巴。

 

但是我們怎會知道開盤會跳空大漲大跌呢? 也可以換句話說,我們怎麼知道美股會大漲大跌呢? 除了一些事件因素之外 (數據公布或FOMC會議等等....前文有稍微介紹過,美元與FOMC會議 ),可以多參考 VIX 。

 

可由網址 http://stockcharts.com/h-sc/ui?s=vix 看到S&P 500 指數期貨的波動程度,如圖。

 

31

 

一般來說,波動率越大,表示盤勢的漲跌幅也會越大,像現在波動率一直掉,那美股的漲跌可能就越小,這樣的話,我們的跳空風險可能也就越小。( 不只跳空,我們的波動率也可能隨著S&P500的VIX跟著變大變小,因素當然是有很多,這只是其中一個。)

 

再來,我們拿VIX和S&P500期貨價格的走勢來比對看看,如圖。

 

32

 

這是2014/9~2015/2這段期間的比對,很明顯用肉眼就看的出來跌勢時VIX上漲,漲勢時VIX下跌,所以人家都說看VIX就可以看出來市場的氣氛如何,是恐慌還是舒緩

 

回到主題,這和選擇權避險有什麼關係?

 

選擇權的Greeks其中一項重要因素Vega就是波動率,我們真正關心的會影響價格的隱含波動率,很可能會跟著VIX的方向走,那由上圖的關係顯示,假如我們的趨勢程式單能夠跟對空頭盤勢時,期貨是空單,那搭配避險的選擇權應該要選空方波動會趨向大的正Vega,避險要作多而且是正Vega值的是,Buy Call

 

另一方面,多頭時趨勢單作多,期貨是多單,搭配的選擇權應該選多方波動會趨向小的負Vega,避險要作空而且是負Vega值的是,Sell Call

 

我們再來用實際例子檢視這個想法,為什麼是這個樣子,在空方時期貨作空單,行情真的下去了又急又快,波動率上升,我們的避險單Buy Call可以因為Vega上升而少輸一點,例如急跌兩百點時,Call價格卻掉沒多少或掉不下去,那我們可以有更多彈性來調整避險的Call。

 

反之,多方趨勢時期作多單,行情慢慢的走上去,波動率下降,我們的避險單Sell Call 可以因為Vega下降而少輸一點,例如今天小漲30點,Call的價格可能只漲一點點或跟本不動,那我們可以有更多彈性來調整避險的Call。

 

這篇紀錄的是偏重選擇權Vega的特性來搭配程式單的避險,因此要再特別注意,到期日要夠久,Vega才有影響效果,所以別用週選,要用月選較適合,另外,雖然這看起來很合理好用,但也只是眾多因素中的一項而已,換句話說,程式交易利用選擇權避險後面還有好幾篇。

 

 

歷史波動率2 - 期間選擇

 

延伸 歷史波動率 這篇文章及讀友synn的疑問 :

價格波動率 也就是 年度化標準差 如何計算

stddev( c[1]/c -1 ,len )*根號 252 ;

這樣對嗎

另外 LEN 要取幾天呢?

 

函數是STDEV(期間內每天的收盤價,有幾個就放幾個),得到的值再乘根號252,就得到年化波動率了。

 

要取幾天,多長多久的期間?這個問題不如先想一下,我們計算得出的這個波動率有什麼意義?

算出來的是10%,這單純的一個數字對我們來說好像沒有感覺,但是我們去算不同期間的來比較就有意思了,假設過去10天收盤價算出來的是10%,然後過去30天算出來的是15%,這就表示了短期的波動率比中期的波動率低,最近的行情變小了

 

利用這短期中期的波動率比較就有用處了,例如策略是突破或趨勢為主,我們當然希望波動是往大的方向,反之,波動往小的方向就去避開它,因此這個策略可以去尋找不同的標的,例如我們去計算每一種指數短中期波動率、或是股票或各種期貨都可以,全部列出來短中長期的波動率狀況來比較,從中篩選出合適這個策略的市場

 

所以,要取幾天?

短期的就5天吧,中期可以20天,長期60天,這沒絕對,你習慣就好。

歡迎繼續討論留言^^

 

2015年4月3日 星期五

程式交易利用選擇權避險 – 2

 

先多想想避險是什麼: 我們要的是程式單虧損時能少輸一點,當然我們也要付出一些合理的代價。

 

等等,好像不只是如此,照以上的定義來作避險,那用小台指來幫大台指避險不就好棒棒了,大台輸時小台賺一點回來,大台贏時小台也必定會損失一些,這不就是理想的避險了嗎? 何必搞複雜的選擇權策略來作避險,還可能越避越險?

 

看看小台作避險的損益圖如下。

 

3

 

圖右邊表示用小台作大台的避險,這樣的組合可以讓獲利和虧損同比例縮小,而勝率和盈虧比保持不變。這確實是一個避險的好方法,但有多少人會這樣作呢? 這不就是減碼而已,我們想的避險應該要有更好的效果。

 

是的,要翻一下舊文章了,交易策略評估三項重點中的 交易策略評估-獲利風險比 ,一個組合中若加入不同策略就可能可以提高獲利風險比,使得整體策略品質更好,但是前面說的小台拿來避險後,獲利和風險是同比例減少,也就是獲利風險比是不變的,固定的,而用選擇權來避險則有機會,假如能夠讓獲利不變,風險降低,那獲利風險比就能提升,避險就很有效果了,講白話一點的目標就是,有一個作下去不用賺沒關係,但也不會賠的選擇權策略,拿來作程式交易的避險就會讓 drawdwon縮小。

 

慢著! 目標為什麼不是用一個會賺的選擇權策略來避險,可以增加整體獲利又可以降低drawdown。嗯,當然是這樣子,但有這種策略很困難,如果選擇權策略那麼會賺還拿來避險作啥? 程式交易不要作了,直接押選擇權不就好了。

 

回到主題再來看選擇權先區分買賣方拿來作避險的損益圖效果。

 

5

 

4

 

上圖買方下圖賣方,損益圖形那麼基本不想描述了。避險就是有一得必有一失,買方用獲利時少賺一點去補貼大賠時的風險,賣方用獲利少賺很多去補貼盤整時的小賠,不過這樣講起來有點不公平,因為這損益圖顯示不出勝率的差別。

 

圖右邊的獲利風險目標,作買賣方都是一樣的,加上選擇權避險後,希望可以讓組合獲利不變,降低風險。但下面兩項則是大不同,加了買方後的勝率降低,盈虧比增加;加了賣方後的勝率增加,盈虧比減少

 

這篇就先到這,下次再續了。

 

 

2015年4月2日 星期四

程式交易利用選擇權避險 - 1

 

前幾篇廢文太多,該是寫點有營養的東西,針對程式交易利用選擇權避險這個主題作多一些分享。

 

先說好目標程式交易是針對中長期的趨勢策略,如果是短期或當沖的期貨交易對於選擇權避險的需求較小,或有不同作法。而利用選擇權則就是指作Buy方、Sell方、用Call、用Put、或複式合成。

 

當然期貨+選擇權時就是包含轉換的概念 Future = (Strike) + Call – Put,例如: 期貨作多單 + 避險用 Buy Put = Buy Call,那就先來看看人家所說的,選擇權避險以買一點點權利金作保險的效果吧。

 

以下是大家的好朋友,台指半年走勢。

 

1

 

不知道各位是不是看了就討厭,近半年往上追就跌,往下殺了又被軋到,波段單難作死了,下圖把一般的趨勢波段策略可能發生Drawdown的區域圈出來。

 

2

 

每一個小框框都是會巴死人的,若你的程式全是中期一兩百點左右的策略,那就GG了,那回到主題,當作多期貨時買一點PUT避險,或作空期貨時買一點CALL避險,會不會比較好?

 

以像上圖這樣的走勢來說,只會輸更慘,原因是那走勢就仍在一個兩三百點的區間內,程式單翻來翻去的同時,避險單一下買CALL出掉又買PUT出掉,只是賠更多而已。

買一點點的權利金就是比較遠的履約價,當走勢與部位反向時的幅度不夠大,買方權利金甚至可能倒賠,以實例來說,9500買多單時,要買哪裡的PUT? 會買到9300嗎? 那不只20點了,那有人說可以買週選比較便宜,履約價可以買進一點的,嗯,當然是可以,但也可能賠更快就是了,這是之後的一個主題,現在先寫到這。

 

那這例子就假設買9200PUT好了,10點,當行情走勢跌到9350時,多單停損,此時PUT,就看時間來的快和慢,如果是慢慢跌到9350,那PUT可能還是10點,甚至不到10點也很可能,那就沒有避險效果了。反之,程式9350翻空了,買CALL9600的,如果行情慢慢走的話,當空單輸錢時,CALL還是避不了險。

 

上述一大段只是說明買方不一定適合趨勢波段策略的避險,我們要來想在什麼情境之下才適合,那就有很多考慮因素,如:

 

履約價選擇?
到期合約選擇?
與程式單訊號同進同出或持續持有?
是否跟隨市價轉移履約價?
何時轉倉?
部位控制?

 

小短篇出文章,這個主題大約會寫四篇以上,希望讀友會有建議或討論。

 

2015年3月19日 星期四

台指觀察20150318

 

二月份結算9623,三月份結算9633.....期間刷的死去活來.....以下省略一千字

 

繼續努力吧,如果程式交易只作台指又沒搭配選擇權避險或其它策略的朋友,

這個月非常辛苦,值得注意的是當沖策略近期表現還蠻好的,多少COVER一些留倉單的損失。

而留倉單的春天何時會來? 真的不知道,是要等一天還是再等一個月....

 

如果你也一樣在這個月被刷的很痛苦的話,趁這個機會好好仔細檢查各策略績效,思考如何精進吧! 加油!

 

2015年3月4日 星期三

程式交易利用選擇權避險

 

各位讀友好久不見囉~ 又是一個多月沒發文,不過近期開始會再充實內容的,

因為最近有一些分享的內容,關於程式交易利用選擇權避險這個主題的整理,

還有一些雜七雜八的想法,都在學習當中,

也因為本身仍在思考學習,所以不敢貿然分享在網站上,

就請各位期待,期貨交易筆記不會關站的~

 

這幾天收到讀友的訊息回饋,覺得繼續在網站上分享是蠻有樂趣的,

就請各位繼續支持討論,一起再成長 ! 

 

2015年1月13日 星期二

台指觀察20150112

 

許久沒有PO文,真是不好意思,一月都快月中了,新的一年剛開始就非常刷盤,這個市況不好操作,L也分享一下心得。

 

這是個高波動、高頻率的洗刷,但是趨勢不明顯,目前完全看不出來方向在哪,操作上留倉單容易損失,當沖單則比較有機會,若有配置部位時應該要將短線當沖的比例放大,留倉單則最好搭配選擇權避險,以目前幾日的開盤來看就很明顯,常常是跳上跳下,而且是有0.5%以上的幅度,站錯邊都很傷。

 

以過去程式交易的經驗來說,一月也是最不好操作的月份(這是L本身的交易經驗,並非適用每人),順便一提第二難作的是七月。

 

既然盤勢不好操作就降低部位,但不是說程式單要主觀開關,該執行的照執行,只是搭配的避險策略可以多著重一下,新年祝各位讀友交易順利囉~

 

 

2014年11月21日 星期五

選舉前一週與選擇權操作

 

下週就是選舉前一週了,之前有參加過分享會的朋友,如果有印象的話,可以參考事件前的選擇權操作法。

 

重點是選前一週long Vol,直到選前一天收盤前再short Vol,可以利用月選和週選價差來作這兩件事,策略的來龍去脈和操作細節在這邊就不多說了,這樣的操作法勝算頗高且風險有限,機會不多,這週好好計劃選擇權的策略吧~

 

若讀友有興趣想深入瞭解的,可以mail來詢問,不過為了分享會朋友的權益,套一句好話來說,知識是有價值的。 

 

MultiCharts APP 下單訊息通知

 

用APP接收委託和成交回報,對於時常在外的交易人來說,這個功能蠻不錯的,有空可以試看看。

 

連結設定的網址如下

 

http://www.multicharts.com.tw/dis/dis_Content.aspx?rd=1&D_ID=1&SN=29753

 

 

2014年11月11日 星期二

持續的學習

 

期貨交易筆記開站以來已經紀錄分享了百篇文章,對讀友應該有一些益處。近期事務繁多,文章產出明顯減少,但還是希望能慢慢增加內容。

 

而下一個100篇,除了原本主題的延伸之外,內容也越來越進階了,這也是紀錄這個網站的動力,強迫自己持續學習,學習,在這市場上保持競爭力。

 

另外,也請讀友保持討論及提供有興趣的主題,共同學習吧。

 

2014年10月16日 星期四

選擇權賣方最佳結算價

 

這篇要紀錄選擇權賣方最佳結算價的小工具設計,這個價格的意義是在參考整個選擇權市場上未平倉合約對於最可能結算位置的預測,簡單的說,就是結在哪裡會賺最多。

 

以L自己的習慣來說,參考最大未平倉合約的位置及最佳結算價位置是每日必看的一項指標,有參考性,但同時也要提醒,期交所資料都是收盤後才公布,當日有大行情變化時是跟不上的,另外,這也僅僅是從選擇權市場來看。所以,心態上將它當作較長期的變化,這樣的角度或許比較適當。

 

稍微介紹後就來實作吧,寫EXCEL VBA,期交所每日公布選擇權每日交易行情查詢,由Excel匯入外部資料的連結是http://www.taifex.com.tw/chinese/3/3_2_tbl.asp

 

然後我們需要的資料有合約別、履約價、買賣權、結算價、未平倉合約量,將這些貼到sheet2再來算,前置作業是把周和近遠月的合約分開,這點也順帶提醒,由不同月份合約的最佳結算價可以看出市場對於近遠月指數的預期,這點也蠻值得參考的。

 

主要公式就是模擬各結算價下,現在未平倉合約的總損益如何,所以各個履約價都算一次完後加總起來,計算原則很簡單,

  1. 若是call & 模擬結算價<履約價,獲利為市價*未平倉口數
  2. 若是call & 模擬結算價>履約價,損益為( (模擬結算價-履約價)+市價)*未平倉口數
  3. 若是put & 模擬結算價>履約價,獲利為市價*未平倉口數
  4. 若是put & 模擬結算價<履約價,損益為( (履約價-模擬結算價)+市價)*未平倉口數

 

最後把各履約價的損益加總起來計在模擬價旁邊,看在哪個模擬價位是獲利最大就得到了。這個東西也能再進階去探索,就是把未平倉的GREEKS全算出來,搭配期貨去看,那有機會再寫。

 

其他的部份都是處理資料和迴圈而已,有需要參考的讀友可以看看下面程式碼區,如果想進一步瞭解的話,或許也可以再詳細作一篇紀錄。

當然有錯的話,L不負責任,有心得或指教的話,歡迎留言討論。

 

Sub cal()

Sheet2.Range("A2:Z700").Clear

i = 6

While Sheet1.Cells(i, 1) <> ""

If Sheet2.Cells(2, 2) = "" Then
Sheet2.Cells(2, 2) = Sheet1.Cells(i, 2)
ElseIf Sheet2.Cells(3, 2) = "" And Sheet1.Cells(i, 2) <> Sheet2.Cells(2, 2) Then
Sheet2.Cells(3, 2) = Sheet1.Cells(i, 2)
ElseIf Sheet2.Cells(4, 2) = "" And Sheet2.Cells(3, 2) <> "" And Sheet1.Cells(i, 2) <> Sheet2.Cells(3, 2) Then
Sheet2.Cells(4, 2) = Sheet1.Cells(i, 2)
ElseIf Sheet2.Cells(5, 2) = "" And Sheet2.Cells(4, 2) <> "" And Sheet2.Cells(3, 2) <> "" And Sheet1.Cells(i, 2) <> Sheet2.Cells(4, 2) Then
Sheet2.Cells(5, 2) = Sheet1.Cells(i, 2)
End If

Sheet2.Cells(i + 2, 2) = Sheet1.Cells(i, 2)
Sheet2.Cells(i + 2, 3) = Sheet1.Cells(i, 3)
Sheet2.Cells(i + 2, 4) = Sheet1.Cells(i, 4)
Sheet2.Cells(i + 2, 5) = Sheet1.Cells(i, 13)
Sheet2.Cells(i + 2, 6) = Sheet1.Cells(i, 9)

i = i + 1
Wend



i = 8

While Sheet2.Cells(i, 2) <> ""

If Sheet2.Cells(i, 2) = Sheet2.Cells(2, 2) Then
If Sheet2.Cells(i, 4) = "Call" And Sheet2.Cells(i, 5) > Sheet2.Cells(2, 4) Then
Sheet2.Cells(2, 4) = Sheet2.Cells(i, 5)
Sheet2.Cells(2, 3) = Sheet2.Cells(i, 3)
End If
If Sheet2.Cells(i, 4) = "Put" And Sheet2.Cells(i, 5) > Sheet2.Cells(2, 6) Then
Sheet2.Cells(2, 6) = Sheet2.Cells(i, 5)
Sheet2.Cells(2, 5) = Sheet2.Cells(i, 3)
End If
End If

If Sheet2.Cells(i, 2) = Sheet2.Cells(3, 2) Then
If Sheet2.Cells(i, 4) = "Call" And Sheet2.Cells(i, 5) > Sheet2.Cells(3, 4) Then
Sheet2.Cells(3, 4) = Sheet2.Cells(i, 5)
Sheet2.Cells(3, 3) = Sheet2.Cells(i, 3)
End If
If Sheet2.Cells(i, 4) = "Put" And Sheet2.Cells(i, 5) > Sheet2.Cells(3, 6) Then
Sheet2.Cells(3, 6) = Sheet2.Cells(i, 5)
Sheet2.Cells(3, 5) = Sheet2.Cells(i, 3)
End If
End If

If Sheet2.Cells(i, 2) = Sheet2.Cells(4, 2) Then
If Sheet2.Cells(i, 4) = "Call" And Sheet2.Cells(i, 5) > Sheet2.Cells(4, 4) Then
Sheet2.Cells(4, 4) = Sheet2.Cells(i, 5)
Sheet2.Cells(4, 3) = Sheet2.Cells(i, 3)
End If
If Sheet2.Cells(i, 4) = "Put" And Sheet2.Cells(i, 5) > Sheet2.Cells(4, 6) Then
Sheet2.Cells(4, 6) = Sheet2.Cells(i, 5)
Sheet2.Cells(4, 5) = Sheet2.Cells(i, 3)
End If
End If

If Sheet2.Cells(i, 2) = Sheet2.Cells(5, 2) Then
If Sheet2.Cells(i, 4) = "Call" And Sheet2.Cells(i, 5) > Sheet2.Cells(5, 4) Then
Sheet2.Cells(5, 4) = Sheet2.Cells(i, 5)
Sheet2.Cells(5, 3) = Sheet2.Cells(i, 3)
End If
If Sheet2.Cells(i, 4) = "Put" And Sheet2.Cells(i, 5) > Sheet2.Cells(5, 6) Then
Sheet2.Cells(5, 6) = Sheet2.Cells(i, 5)
Sheet2.Cells(5, 5) = Sheet2.Cells(i, 3)
End If
End If


i = i + 1
Wend


Sheet2.Cells(7, 9) = Sheet2.Cells(2, 2)
Sheet2.Cells(7, 10) = Sheet2.Cells(3, 2)
Sheet2.Cells(7, 11) = Sheet2.Cells(4, 2)
Sheet2.Cells(7, 12) = Sheet2.Cells(5, 2)

i = Sheet2.Cells(1, 10)
j = 8

While i < Sheet2.Cells(1, 11)

Sheet2.Cells(j, 8) = i


j = j + 1
i = i + 5
Wend








j = 8

While Sheet2.Cells(j, 8) <> ""

settle = Sheet2.Cells(j, 8)


i = 8

While Sheet2.Cells(i, 2) <> ""

If Sheet2.Cells(i, 4) = "Call" And Sheet2.Cells(i, 6) <> "-" Then
If settle > Sheet2.Cells(i, 3) Then Sheet2.Cells(i, 7) = (Sheet2.Cells(i, 6) - (settle - Sheet2.Cells(i, 3))) * Sheet2.Cells(i, 5)
If settle <= Sheet2.Cells(i, 3) Then Sheet2.Cells(i, 7) = Sheet2.Cells(i, 6) * Sheet2.Cells(i, 5)
End If

If Sheet2.Cells(i, 4) = "Put" And Sheet2.Cells(i, 6) <> "-" Then
If settle >= Sheet2.Cells(i, 3) Then Sheet2.Cells(i, 7) = Sheet2.Cells(i, 6) * Sheet2.Cells(i, 5)
If settle < Sheet2.Cells(i, 3) Then Sheet2.Cells(i, 7) = (Sheet2.Cells(i, 6) - (Sheet2.Cells(i, 3) - settle)) * Sheet2.Cells(i, 5)
End If

If Sheet2.Cells(i, 2) = Sheet2.Cells(7, 9) Then
Sheet2.Cells(j, 9) = Sheet2.Cells(j, 9) + Sheet2.Cells(i, 7)
ElseIf Sheet2.Cells(i, 2) = Sheet2.Cells(7, 10) Then
Sheet2.Cells(j, 10) = Sheet2.Cells(j, 10) + Sheet2.Cells(i, 7)
ElseIf Sheet2.Cells(i, 2) = Sheet2.Cells(7, 11) Then
Sheet2.Cells(j, 11) = Sheet2.Cells(j, 11) + Sheet2.Cells(i, 7)
ElseIf Sheet2.Cells(i, 2) = Sheet2.Cells(7, 12) Then
Sheet2.Cells(j, 12) = Sheet2.Cells(j, 12) + Sheet2.Cells(i, 7)
End If

i = i + 1
Wend

j = j + 1
Wend


Sheet2.Cells(6, 9) = Application.WorksheetFunction.Max(Sheet2.Range("I8:I360"))
Sheet2.Cells(6, 10) = Application.WorksheetFunction.Max(Sheet2.Range("J8:J360"))
Sheet2.Cells(6, 11) = Application.WorksheetFunction.Max(Sheet2.Range("K8:K360"))
Sheet2.Cells(6, 12) = Application.WorksheetFunction.Max(Sheet2.Range("L8:L360"))




i = 8

While Sheet2.Cells(i, 8) <> ""

If Sheet2.Cells(i, 9) = Sheet2.Cells(6, 9) Then Sheet2.Cells(2, 7) = Sheet2.Cells(i, 8)
If Sheet2.Cells(i, 10) = Sheet2.Cells(6, 10) Then Sheet2.Cells(3, 7) = Sheet2.Cells(i, 8)
If Sheet2.Cells(i, 11) = Sheet2.Cells(6, 11) Then Sheet2.Cells(4, 7) = Sheet2.Cells(i, 8)
If Sheet2.Cells(i, 12) = Sheet2.Cells(6, 12) Then Sheet2.Cells(5, 7) = Sheet2.Cells(i, 8)

i = i + 1
Wend



i = 1
While Sheet3.Cells(i, 1) <> ""

i = i + 1
Wend

Sheet3.Cells(i, 1) = Sheet1.Cells(2, 1)
Sheet3.Cells(i, 3) = Sheet2.Cells(2, 7)



End Sub

 

 

2014年9月26日 星期五

Flash Boys 快閃大對決

 

Flash Boys

 

這本書之前就已經聽過它的大名,是亞馬遜的暢銷書,現在有中譯本讀起來就輕鬆多了。

 

很有趣,值得看,內容講述美國高頻交易的運作,券商和交易所之間的關係,雖然和台灣制度完全不同,對於作台股交易是沒有什麼作用,但那些速度的競爭與原由看了真是讓人長見識。

 

轉貼一下書籍介紹及博客來網頁, Flash Boys 快閃大對決

 




 

美國有多少個股票交易所? 你很可能以為,只有兩家:紐約證交所、那斯達克。錯! 從二○○八年以來,這兩大交易所的壟斷早已被打破。今天,美國股市共有……13個公開交易所! 其中大多數未經台灣媒體報導,因此你聽也沒聽過,例如:BATS、Direct Edge等,很陌生吧?

 

不僅如此。這些「公開」交易所之外,幾乎每家大券商都有屬於自己的「私人」交易平台,俗稱「暗池」(dark pool)。而光是暗池,就有四十個以上。

 

這本書,就揭發了發生在證券交易所、暗池裡,一個媒體從未發現、但任何投資者聽來都匪夷所思的真實故事: 原來,報紙上的美股行情,都不是真的! 原來,紐約證交所的主機不在紐約,而是在一個鳥不拉屎的小鎮上,為什麼? 原來,有一群神秘玩家,暗中操控著全球最大股市,影響著包括台灣在內的全球市場!

 

然後,有一群年輕人---在金融圈打滾的科技人---終於發現了這個秘密,並且決定與這群神秘玩家宣戰! 就像電影「瞞天過海」,他們一個一個離開自己的工作,組成一個新團隊──Michael Lewis 稱他們為「快閃小子」(Flash Boys)。這本書講的,就是快閃小子與神祕玩家們,所展開這場精采大對決……

 

誰買走了你的股票?相信我,你一定不知道! ~Michael Lewis

 

 

2014年9月14日 星期日

程式交易與選擇權避險

 

大部份的程式交易都是趨勢型,有波段行情發生時能夠大賺,但是區間震盪的行情則會不斷的虧損,而在虧損時期要怎麼應對是這篇的主題。

 

遇到虧損時最容易想東想西,而最不該作的事最常去作,就是自己動手去調程式部位,這通常都沒什麼好結果,作程式的人,要謹記在心,程式部位是神聖不可侵犯的,有什麼問題,盤後再修改測試,別在盤中手癢。

 

而這個修改測試要怎麼作,是否必要改,就要好好想了,因為虧損是正常的,當虧損是在預期的範圍內,那不該改,若很想改,或許該改的是自己的心態,是不是不夠瞭解程式和它的表現狀況。

 

確定改要怎麼作,我們希望可以在震盪時降低虧損,首先是很常參考的逆勢單策略,把逆勢單加入投資組合裡,佔有小部份的比例,目標是讓整體組合在區間震盪時少輸一點,當然在大賺時應該也會少贏一點點,達到較平穩的目的。

 

但是逆勢單要寫的好並不簡單,光是要在長期的回測能夠獲利就是一個挑戰,於是標準不能看太高,別賠就好,只要不賺不賠,就能夠對整體策略組合有幫助,能夠降低drawdown。

 

而效果比逆勢單好的是利用選擇權避險,一個區間,假設就陣子的9200~9600,不停洗刷時,趨勢單虧損哭哭,逆勢單也不一定能獲利,但是選擇權有策略可以降低損失。當然選擇權也不是簡單的東西,而且回測也不容易,L想要紀錄的是實際應用的一些想法。

 

前提是很重要的,程式單為主,選擇權避險為輔。

目標是很重要的,程式單輸錢時,選擇權加進去可以少輸一點,反之,程式單贏錢時,選擇權會小賠或沒賺賠。

 

如此強調的原因是,選擇權本身就有很多策略,但把它當作獲利主軸和當作避險角色時,兩者想法是不同的概念。在這邊,需要專注在我們的前提和目標。

 

以下,都是針對台指市場的交易為例。首先,要確認時機,要利用選擇權避險的時機是特定的還是長駐的? 沒有標準方案,視程式交易特性,如果是有長波段單,或許長駐搭配會適合,若大部份是短單或經常無單,或許特定時間或極短期較好。

 

再來就看選擇權避險方式,就以這段期間9200~9600上下洗刷的區間為例,假如程式單是在9300點跌破時翻空的情況下,避險方式主要有下面幾種,我們就來看看如何搭配以及優缺點。

 

  1. Buy call

  2. Sell put

  3. Buy call + Buy put

  4. Sell call + Sell put


 

第一種,Buy call 可以擋住急拉時的風險,但是經常會歸零,如果是手動作避險的人,好處是不用去理它,不需要擔心太多,因為風險可以完全鎖住。要不要再作成多頭價差,上面再sell call? L是覺得有點多餘,因為我們目標是避險,上面再多作一個就沒辦法完全鎖住。強調again,經常歸零,買便宜的效果差,買貴的又很花成本,這是另一個要深入的主題。

 

第二種,Sell put可以增加收入,持有空單再去sell put就是等於sell call,只是履約價較低的sell call,我們程式單原本最大的利基就是能大賺一波,行情走越久我們就抱越久賺越多,但是加了sell put之後,作對的時候會少賺很多,作錯的時候也只是增加一點收入。

 

為什麼說是一點呢? 因為一般情況下,如果行情馬上反轉,空單被軋,以9300空單被軋到9400或9500時幾乎就停損翻多了,那這個sell put在翻多時也要出場了,這樣避險能賺多少? 當然,這勝率是高的,只是賺賠比需要多加考慮,也要思考自己的程式單是否適合,以單純sell方來說,L的經驗是拿到”加碼”的應用比較好一點。就是空單時想加碼,就同時作sell call,這是另一個要深入的主題,(這句好像重覆再用,為以後鋪梗)。

 

以上兩種是單腳,與程式單配合,如果程式單反轉時,這個選擇權部位也需要反轉,後兩種則不一定,而且很有趣。

 

第三第四種,雙buy和雙sell,先想想本質的差異,delta我們確定是要偏正的(初始時),因為是要拿來作期貨空單的避險,而雙buy是long gamma付theta,雙sell 是short gamma 收theta,也就是說,我們需要先確定想要和時間或趨勢作朋友?想不出來的話,不如反著想,不想要和時間或趨勢的哪個作敵人?

 

當你很害怕程式單被跳來跳去的行情巴的亂七八糟,早上急拉衝高讓空單停損翻多,午盤又下跌又翻空,抱著空單收盤後又看到美股一直漲,覺得明天起床又要面對虧損,這樣的情況下,你害怕的是波動劇烈,肯定作雙buy是好選擇,但不是雙buy了就沒事不管它,可以不管,但要想想,如果9300的期貨空單,搭配我們依區間9200~9600的想法,去buy 9600 call及buy 9200 put,後續要怎麼進出,需要考量一點,你認為9200或9600會不會破?

 

如果會,就不要管它,但是如果沒破,洗來洗去又回到9300,那完全沒避到險還多輸雙buy權利金,怎麼辦? 如果覺得不會破,但是洗刷又很劇烈,雙buy無誤,但是要管要調,當行情從9300漲到9400時,因為雙buy是long gamma,所以delta會從假設中立到偏多,這樣我們就再把它中立,就是空期貨。空了之後,行情真的又洗回9300,delta又會偏空,那再中立,就是買期貨,以此要訣反之亦然,洗的越快越嚴重,賺的越多,重點是,真的破了9600或9200,也不會輸。

 

另一方面,假如行情就是不太動,好長一段時間都是在9200~9600了,程式單賺不到錢,偶爾輸輸,也不是很痛,或許就適合與時間當朋友,雙sell收theta。這在台股是特別有利,因為我們的官股行庫都是排球隊的,指數跳上去就往下殺球,指數掉下去就撲去救球,區間操作超級明顯,而且作的還真厲害。我們若作雙sell時,官股行庫是很強的隊友,就假設sell 9200 put 和sell 9600 call,或者是從最大未平倉的合約來選履約價也好,如果這個區間一直沒走出去,這個雙sell就能帶來一些獲利。

 

以上四種選擇權避險方式只是大致介紹,實際上行情的路徑、波動程度、時間的拿捏、履約價選擇,都是重要因素,這些是另外好幾個要深入的主題。

 

2014年9月4日 星期四

20140903市場動態觀察

 

做了這麼久的台指,越覺得選擇權賣方是很重要的策略,如果交易的主力是在台指上,想要穩定的獲利是很需要賣方策略搭配的,看看我們的走勢吧。

 

tai

 

同期間,看看dax的走勢,低點從8900反彈到9600,而前一波是從萬點下去的,這作波段期貨利潤風險都高。

 

dax

相比之下,台指的波動真是小多了,另外值得再提的是,我們的官股行庫,老是逢高就賣,逢低就買,這種區間操作還真厲害,作的都蠻準的。

 

官股

圖片引用自群益期貨研究部。

 

既然我們台股是這樣的屬性,作賣方策略就有利些,也值得再深入研究策略。

 

L目前正在研讀高頻交易,一邊寫程式,網站久久才更新一次,有心得再繼續分享囉,若讀友有什麼想法或有興趣的主題,歡迎留言討論。