今天來介紹一隻邏輯簡單的週選策略,並且利用了Average True Range 指標來當作波動率得特徵,來做偏多的雙賣,也就是同時sell call 以及sell put 的策略。
他利用兩個賣方去吸收時間價值,然後因為是稍微偏多的雙賣,所以sell put 我要做的是sell put 價平 並且sel call 價外四到五檔,給他一點上漲空間的概念,因為指數長期還是偏多的,但也希望不要漲太多,漲太多打穿sell call要停損。
如果想要知道怎麼回測選擇權可以先參考 如何回測選擇權
先介紹一下這次用到的指標ATR
ATR 是什麼?
平均真實波幅(Average True Range, ATR)是一種用於衡量市場波動性的技術分析指標。它由著名的技術分析專家威爾斯·威爾德(Welles Wilder)在1978年提出,常用於股票、外匯、期貨和其他金融市場。
ATR的計算方法如下:
- 真實波幅(True Range, TR):它是從以下三個價格範圍中選出最大者:
- 當日最高價與當日最低價之差。
- 當日最高價與前一日收盤價之差的絕對值。
- 當日最低價與前一日收盤價之差的絕對值。
- 平均真實波幅(ATR):通常計算一定時間週期(如14天)內的真實波幅平均值。
ATR主要用途如下:
- 衡量市場波動性:ATR值較高表示市場波動性大,反之則表示波動性小。
- 設定停損點和賺取點:交易者經常使用ATR來決定交易位置的合理停損點和賺取點。
- 趨勢變化的指示:ATR的變化有時被用來辨別市場趨勢的可能變化。
需要注意的是,ATR僅衡量波動性,而不預測市場方向。它是許多交易系統和策略的重要組成部分,幫助交易者更好地理解市場狀況並做出決策。
先來看一下績效曲線
策略績效圖
績效曲線如下
接下來來看powerlanguage的程式碼吧!
策略powerlanguage程式碼
input:len1(?),len2(?),len3(?);
if marketposition<=0
and (lowd(0)+opend(0))/2>closed(1)
and AvgTrueRange(len1)<=Highest(AvgTrueRange(len1)[1],len2)
and AvgTrueRange(len3)[1]<averagefc(AvgTrueRange(len3), len3)[1]
then buy next bar at market;
if MP>0 then begin
sell all share next bar at Lowest(l,22) stop;
setprofittarget_pt(500);
end;
if _settlement and t>=1330 and t<=sess1endtime then begin
sell this bar at c;
setexitonclose;
end;
策略邏輯解析
首先,因為做賣方,周選會相對肉比較多,所以用周選來做,每週都可以吸收一次時間價值,
這隻策略用60分k來做k棒的週期。
進場的時候我想要挑波動率比較平穩的地方去進多方,並且k棒稍微有點多方的樣子起始
進場條件
利用今日的日K開盤跟日K低點平均值要大於昨天收盤價當一個簡單的偏多濾網
(lowd(0)+opend(0))/2>closed(1)
波動率這邊都用ATR來做,多方要進場,我要挑一個低波動的地方進去,
所以我們取一個現在的ATR小於過去一段時間ATR平均
and AvgTrueRange(len3)[1]<averagefc(AvgTrueRange(len3), len3)[1]
長週期的ATR與台指期貨走勢關係
我們來看一下這張圖,指數的走勢對應ATR的一個關係,
是不是有感覺到,再漲勢的時候,ATR會比較有下降的感覺,在跌勢的時候有放大的感覺
所以想法就可以是,如果這個長週期的ATR一直再創新高就比較是跌勢的狀態,
我們的偏多進場就是要漲勢的狀態,所以是近期不要一直再創新高的狀態就可以這樣去寫
AvgTrueRange(len1)<=Highest(AvgTrueRange(len1)[1],len2)
出場條件
出場也用很單純的兩個,第一個是怕漲太多sell call的部位被打穿,所以做一個固定點數停利的
setprofittarget_pt(500);
然後做一個低於幾根低點就出場
sell all share next bar at Lowest(l,22) stop;
最後還有基本的一些結算兩個賣方都出場
if _settlement and t>=1330 and t<=sess1endtime then begin
sell this bar at c;
setexitonclose;
end;
策略回測步驟
寫好POWERLANGUAGE後,掛上訊號,掛上原本訊號後再掛上選擇權超人的輸出訊號
接著打開選擇權超人回測平台,可以先統一設定一些交易成本,手續費點數跟滑價幾tick,或是要看報酬率可以設定本金(多少點)
儲存後,右上角新增剛剛輸出的交易明細進來
然後用雙腳的 sell call 上面四檔 選+4 (就是價外四檔的意思),然後sell put 價平 選0,如下圖
接著按下回測按鈕就可以按下瀏覽看績效報告了
策略績效報告分析
績效概要
可以先從績效報告來看一下這是一隻回測區間2017年6月到2024年1月的回測資料,可以看出
報酬風險比大約7.多,獲利一千多點。勝率超過五成的,並且交易次屬比較少的一隻策略
對應的原始期貨策略賺得比較多,但交易起來應該比較不舒服,然後勝率也比較低
注意選擇權缺值對應的原始淨利點數
這邊要注意一下,因為選擇權很多時候會有一些缺失的歷史資料,我們就會略過不計算,這隻略過交易筆數只有佔比1.69%是還好。不過我們會列出略過的這幾筆交易對應的台指的損益點數是多少列出來,像這張圖是-197點,表示缺值的這部分,台指總共績效是賠197點,這樣你可以去對應出他的績效是高估了還是低估了
這邊可以看到原始的期貨我們用多單去做回測,他的多單是賠錢的,而我們的選擇權是偏多方的雙賣,所以在台指多單賠錢的狀況下,選擇權應該也是會賠錢的,只是可能賠少一點,所以這支策略的績效有稍微的被高估一點點,可以打個小折
我自己會再進一步去看略過的交易部分的幾筆的狀況,每一筆的損益會記錄在目前名稱日損益裡面,如果選擇權的部分為空的,就是那筆交易並沒有被算進去,而你還是可以看到對應部分台指的損益,就像以下圖片紅框處
這樣可以更深入的評估策略
台指期貨績效比較
在績效圖的部分,綜合對比,是可以看出,就像上面績效概要呈現的,他是一隻賺的比期貨少,但是中間有一段期貨緩慢向下的曲線,因為賣方收時間價值的關西,選擇權的績效反而是平穩創高的
這就是利用不同商品的特性,讓交易的特性做了一些改變,利用賣方也讓勝率跟交易的舒服度提高,不過拿了獲利的爆發力來換這樣。
從年損益圖,也可以看到多頭大爆發的2020年後半,期貨賺了兩千多點,但選擇權只有賺兩百多點。
交易就是常常要不同的地方去做取捨,這邊就可以看到不同商品做出來的的差異,交易者可以根據自己的需求去設計交易策略
變化方向
還記得前面有一張圖是長週期的ATR與走勢關西,
可以用這個思考,如果要做順勢的多單,有時候會容易被掃到停損出去,是不是可以如果ATR也真的創高的狀況再去損
if AvgTrueRange(len1)>=Highest(AvgTrueRange(len1)[1],len2) then sell all share next bar at Lowest(l,22) stop;
讓多單只有長周期ATR創高的時候才會觸發低於幾根停損,其他的當作沒看到
讓他變成一種順勢多單,而順勢多單就可以改打sell put 上面幾檔,這樣就又是不同的思考方向可以研究摟
如果打sell put 績效圖就會漲這樣
可以思考的東西很多,歡迎交流,以上就是這支策略的簡單介紹。
想要回測選擇權,快來用選擇權超人。
選擇權超人回測平台,讓你可以用MULTICHARTS 輕鬆回測選擇權策略,立即開發你的交易策略吧!
資料來源:期交所公開資料
免責申明:投資有賺有賠,僅分享量化研究與過去歷史統計數據,不保證資料或結果之正確性,量化策略也都很容易有時效性,內容和意見僅供參考,並不構成投資建議或勸誘,請勿直接串接下單。讀者應當自行進行完整的研究,並在做出任何投資決策前,理性評估,為自己負責。