2015年8月20日 星期四
台指2015年8月份結算
今日結算台指幾乎收最低,近月8月期貨從開倉約9000殺到8000點結算,期中也幾乎沒什麼反彈,是程式單大豐收的一個月,拿來避險的選擇權策略也大獲利,參考( 台指選擇權結算買賣方損益 )。
基本上這種行情是一定要把握住的,程式策略在這樣的行情最能發揮,幾乎沒有虧損的程式,只要好好的作好一件事就必定獲利,那就是紀律。
2015年7月2日 星期四
資金管理小思考
對策略研究了那麼多,資金管理倒是很少想過,這篇文章紀錄一個小範例給讀友思考。
有一支策略,贏時獲利25%,輸時虧損20%,假設勝率正好50%,試問此策略是否可行?
這簡單,50%*1.25+50%*0.8=1.025 ,大於1,可行!.....吧? 來實際作看看。
將策略套用標的A股票,期初股價100元,第一期後上漲25%,成為125元,第二期下跌20%,成為100元,兩期過後等於沒賺沒賠。
將策略套用標的B股票,期初股價也是100元,第一期下跌20%,成為80元,第二期上漲25%,成為100元,兩期過後也等於沒賺沒賠。
奇怪,明明是正期望值的策略,單一支標的過了幾期,或加上分散標的,似乎都賺不到錢。
但是加上一個小技巧就可以賺錢了,就是再平衡。
同樣的上述兩標的A和B,我們初始資金有20000元,平均投資A股和B股,可以把A股和B股各買100股,到了第一期後,A股125元*100股=有12500元,B股80元*100股=有8000元,總獲利=12500+8000-20000=500元,把500元放口袋裡,20000元繼續平均投資A股和B股,此時10000元買A股=10000/125=80股,10000元買B股=10000/80=125股,到了第二期後,A股100元*80股=有8000元,B股100元*125股=有12500元,總獲利=8000+12500-20000=500元,再把500元放口袋裡.......
同樣的情境下,A股和B股都回到100元,等於初始價格,不過我們口袋裡有多了1000元。
可以想想多重策略的管理是不是也能如此作呢?
2015年7月1日 星期三
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 指數期貨的波動程度,如圖。
一般來說,波動率越大,表示盤勢的漲跌幅也會越大,像現在波動率一直掉,那美股的漲跌可能就越小,這樣的話,我們的跳空風險可能也就越小。( 不只跳空,我們的波動率也可能隨著S&P500的VIX跟著變大變小,因素當然是有很多,這只是其中一個。)
再來,我們拿VIX和S&P500期貨價格的走勢來比對看看,如圖。
這是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
先多想想避險是什麼: 我們要的是程式單虧損時能少輸一點,當然我們也要付出一些合理的代價。
等等,好像不只是如此,照以上的定義來作避險,那用小台指來幫大台指避險不就好棒棒了,大台輸時小台賺一點回來,大台贏時小台也必定會損失一些,這不就是理想的避險了嗎? 何必搞複雜的選擇權策略來作避險,還可能越避越險?
看看小台作避險的損益圖如下。
圖右邊表示用小台作大台的避險,這樣的組合可以讓獲利和虧損同比例縮小,而勝率和盈虧比保持不變。這確實是一個避險的好方法,但有多少人會這樣作呢? 這不就是減碼而已,我們想的避險應該要有更好的效果。
是的,要翻一下舊文章了,交易策略評估三項重點中的 交易策略評估-獲利風險比 ,一個組合中若加入不同策略就可能可以提高獲利風險比,使得整體策略品質更好,但是前面說的小台拿來避險後,獲利和風險是同比例減少,也就是獲利風險比是不變的,固定的,而用選擇權來避險則有機會,假如能夠讓獲利不變,風險降低,那獲利風險比就能提升,避險就很有效果了,講白話一點的目標就是,有一個作下去不用賺沒關係,但也不會賠的選擇權策略,拿來作程式交易的避險就會讓 drawdwon縮小。
慢著! 目標為什麼不是用一個會賺的選擇權策略來避險,可以增加整體獲利又可以降低drawdown。嗯,當然是這樣子,但有這種策略很困難,如果選擇權策略那麼會賺還拿來避險作啥? 程式交易不要作了,直接押選擇權不就好了。
回到主題再來看選擇權先區分買賣方拿來作避險的損益圖效果。
上圖買方下圖賣方,損益圖形那麼基本不想描述了。避險就是有一得必有一失,買方用獲利時少賺一點去補貼大賠時的風險,賣方用獲利少賺很多去補貼盤整時的小賠,不過這樣講起來有點不公平,因為這損益圖顯示不出勝率的差別。
圖右邊的獲利風險目標,作買賣方都是一樣的,加上選擇權避險後,希望可以讓組合獲利不變,降低風險。但下面兩項則是大不同,加了買方後的勝率降低,盈虧比增加;加了賣方後的勝率增加,盈虧比減少。
這篇就先到這,下次再續了。
2015年4月2日 星期四
程式交易利用選擇權避險 - 1
前幾篇廢文太多,該是寫點有營養的東西,針對程式交易利用選擇權避險這個主題作多一些分享。
先說好目標程式交易是針對中長期的趨勢策略,如果是短期或當沖的期貨交易對於選擇權避險的需求較小,或有不同作法。而利用選擇權則就是指作Buy方、Sell方、用Call、用Put、或複式合成。
當然期貨+選擇權時就是包含轉換的概念 Future = (Strike) + Call – Put,例如: 期貨作多單 + 避險用 Buy Put = Buy Call,那就先來看看人家所說的,選擇權避險以買一點點權利金作保險的效果吧。
以下是大家的好朋友,台指半年走勢。
不知道各位是不是看了就討厭,近半年往上追就跌,往下殺了又被軋到,波段單難作死了,下圖把一般的趨勢波段策略可能發生Drawdown的區域圈出來。
每一個小框框都是會巴死人的,若你的程式全是中期一兩百點左右的策略,那就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再來算,前置作業是把周和近遠月的合約分開,這點也順帶提醒,由不同月份合約的最佳結算價可以看出市場對於近遠月指數的預期,這點也蠻值得參考的。
主要公式就是模擬各結算價下,現在未平倉合約的總損益如何,所以各個履約價都算一次完後加總起來,計算原則很簡單,
- 若是call & 模擬結算價<履約價,獲利為市價*未平倉口數
- 若是call & 模擬結算價>履約價,損益為( (模擬結算價-履約價)+市價)*未平倉口數
- 若是put & 模擬結算價>履約價,獲利為市價*未平倉口數
- 若是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