顯示具有 通道突破 標籤的文章。 顯示所有文章
顯示具有 通道突破 標籤的文章。 顯示所有文章

2013年12月14日 星期六

秒K應用

 

一般多數交易者在使用或觀看K棒的時候,通常從1分、5分、10分線開始著手,稍微想做些差異化的時候可能使用2分線、3分線、7分線等較少見的K棒周期,然而若跳脫分線框架,當科技進步,電腦效能日新月異,秒線的使用在MC上也已經完全不是問題,也許現今交易的戰場已經不是分線可因應?為了證明這個想法或差異化我們既有的策略,我們開始思考使用秒k來作交易,至於該要設定多少秒呢?

 

J這邊可以提供讀者一個方向,首先看一個例子,3分線表示180秒,若設定為177秒,則因為177/(180-177)=59,所以表示當一般的3分線走了59根K棒之後,因為每一根省下3秒的時間,導致在177秒的K棒設定下,圖上已經畫出了60根K,反之設定成183秒則比原本分線少1根K棒。

 

透過多或少製造1根K棒,也許能讓我們減少一些在整分時敲單的滑價(因一般程式單若是用指標型撰寫將在00秒時敲單),而本篇將延續海龜通道突破策略的精神,稍微小改程式碼成為利用close價突破來進單的指標型策略,以反映秒k收盤價的微小差異在近年來的影響。

 

程式碼修改如下圖。

 

1

 

建立用close所創造的高低區間,回取K棒數(HL)參數讀者可自行嘗試。

進場與出場也以最簡單的方式修改如下圖。

 

2

 

須注意,在撰寫秒線以下層級時,TIME要改為TIME_S才不會錯誤喔!另外本篇利用之前提及的尾盤出場策略1-建立日期表,作最後進場與出場時間調整,以及漲跌幅超過6%的進場限制。

 

在參數相同的情況下,本篇利用最多加碼5口來突顯出3分線與177秒的差異,首先我們先來看3分線的表現如何,回測時間為2007年至今,來回成本單筆設定800元。

 

3

 

再看看177秒的績效圖如下。

 

4

 

可以發現兩者在同樣狀況下,177秒K的回檔略小於3分線,而且獲利大約多了快100萬。再來觀察近年來表現,如下圖所示。

 

5

 

上方的圖是3分線,可以看出近年來已經無法再創新高(上次新高點大約為2011年2月),而下圖177秒K的在2013年9月還有再創新高。

 

經過本篇的實驗證實,也許過往的簡單模型在近年來無法表現得令人滿意,但透過細微的變化,許多邏輯仍然是持續有效的,只是現在交易的戰場或許已經拉到秒K上了,讀者可以再延伸思考透過不同的以往的K棒計算,可能也會有更好的表現。

 

 

2013年12月5日 星期四

尾盤出場策略2-加強判斷

 

一支交易策略可簡單分成進場主邏輯、出場主邏輯,而當沖策略在尾盤必須出場的特性,使得其重要性在出場設計上不容小覷,然而根據 J 幾年來的觀察,似乎許多交易者並不太在乎這點,大多專心於進場與一般停損的設計,而最後出場僅使用指定時間出場,因此本篇延續 尾盤出場策略1-建立日期表,來簡單介紹一些尾盤現象對績效的影響性,提供讀者思考更多在尾盤邏輯設計的一些想法。

 

本篇測試的策略在進場主邏輯部分延續 通道突破策略  一文中所使用的程式碼,讀者可先行參考,然而為了增加交易次數以突顯出尾盤的影響性,本篇改用台指期1分線交易,參數也稍微修改,並配合尾盤出場策略1-建立日期表 所使用的最終出場時間作為初始設計,其出場設計如下圖,讀者可先回憶一下。

 

圖片 1

 

2007年至今交易績效如下(手續費來回共800元)

圖片 2

 

現在,開始進入本篇的尾盤出場邏輯,主要新增的想法是,交易時間以及賺賠對於出場快慢的影響,以及是否該逆勢找好的點出場(例如作多拉高出),或順勢出場(例如下跌後多單出場),讓我們直接看程式碼與績效得到簡單結論。

 

圖片 3

 

從上圖中可發現,若策略處於虧損狀態,且12點50分至13點時是上漲的,則於13點後就盡快出場,如同虧損時找有利的點出場,其改善的績效如下圖。

 

圖片 4

 

獲利增加約10萬,MDD幾乎不變,效果不錯,然而若是條件相反,當策略賺錢早點出場則會如何呢?直接看下圖績效來得到結論。

 

圖片 5

 

可發現獲利明顯減少23萬,MDD幾乎不變,符合虧損時早點讓部位出場,賺錢時讓獲利奔馳的精神,然而讓賺錢的部位一直持有到尾盤就是最好的嗎? J用同樣的手法找到稍微能繼續改善績效的方法,一樣直接來看程式碼。

 

圖片 6

 

其想法主要在思考,若是賺錢的時候,大多數當沖順勢策略應該也是賺錢,而假定多數策略與K棒周期的影響大約都在13:10至13:20分左右出場,因此若行情在此時間轉為與今日當沖走勢反向,也許顯示法人在尾盤作價上並不積極,持有過久也不一定能吃到13:30當沖強制平倉以及現貨收盤後期貨的順勢行情,使得順短期的勢先出場較有優勢,其績效如下。

 

圖片 7

 

獲利上升6萬,MDD續減少,反之此時若改為逆勢出場(即條件3與4對調),績效如下。

 

圖片 8

 

顯示若尾盤趨勢持續順勢,不該提早出場,將大幅減少獲利與增加MDD。

 

最後,透過尾盤簡單的上漲與下跌現象,與交易時間的特色,將有助於進一步改善交易績效,而本篇並非特別要研究其成因為何,只是挑出可能相對有意義的時間去做測試,得出符合一般賺錢精神的結論,賠錢快出,而且逆勢找好機會出效果不錯;賺錢要等轉弱再出,否則持有久一點較有優勢再了解簡單的尾盤狀況後,更進階讀者則可思考如何精進賠錢逆勢出的方法,賺錢順勢出的方法,也許可以找到更明顯改善績效的交易邏輯。

 

 

2013年10月9日 星期三

尾盤出場策略1-建立日期表

 

J注意到一般朋友進行策略撰寫的時候,可能較容易頭重腳輕,即非常努力思考進場邏輯的創意,卻容易遺忘尾盤出場的創意其實也影響甚大,因此本篇將介紹一個最基本的尾盤出場的方法作為系列的第一篇。

 

此方法基本上說穿了很簡單,就是當沖不要都只在1330前出場,也許常常會圖個方便而沒有使用這樣的做法,又或是使用當沖保證金的人受限於規定都必須於30分前平倉出場,然而J之後會簡單證明市場是殘酷的,越有錢的人或法人可能因為不會用到如此滿的保證金,策略也相對多元,因此多承擔幾分鐘的風險,確實也有其報酬可拿,以下將示範先從建立結算日期表作為FUNCTION,再於訊號中使用。

 

首先,先選擇新增功能函數的頁面。

 

尾盤出場策略1

 

再鍵入名稱,本例以END OF MONTH縮寫取名,讀者可自行依喜好設定,其他項目可不用調整。

 

尾盤出場策略2

 

將結算日期KEY入如下圖所示,每年做一次,但讀者千萬記得若碰到颱風休假調整日期,須要更改之前所預KEY的日期,才不會發生錯誤。

 

尾盤出場策略3

 

最後加上如下的判斷式,讓本FUNCTION可以在結算當天為1,非結算日為0。

(註: L補充,表列的方法是較完整的方式,另外結算日的判斷也可以寫函數,邏輯是(星期三) && (15號~21號) ,但延後結算日可能需要再稍微修改 )

 

尾盤出場策略4

 

J將先前撰寫的 通道突破原型進場策略 拿來作為測試的基準,首先使用固定時間於1325後出場的方式,程式碼如下。

 

尾盤出場策略5

 

績效如下圖,來回手續費共設定為800,自2005年回測至今,獲利55萬回檔約28萬,每筆交易平均賺319元。

 

尾盤出場策略6

 

尾盤出場策略7

 

現在我們將尾盤出場時間修改如下,在非結算日晚點出場,結算當天維持一樣25分出場。

 

尾盤出場策略8

 

其他參數與回測時間皆不變,績效如下圖所示。

 

尾盤出場策略9

 

尾盤出場策略10

 

可以發現獲利明顯增加35萬,MDD幾乎不太影響,平均每筆獲利增加了約200元,效果相當顯著。

 

這樣簡單的測試期望能提醒讀者,不要認為尾盤的出場幾分鐘沒甚麼差別,也許市場規則確實影響了交易的結果,不要怕麻煩,多花一點時間建立一個結算日期表,也許可以幫助大家多獲得一些報酬,然而本篇的測試相當的基本,實際上EOM還有許多用途,日後J將繼續介紹,讀者也可先行思考。

 

另外此種建立日期表的方式,也可用在交易海外事件上,透過J之前分享的 經濟數據 一文中,讀者可先尋找對市場有較大影響的事件公布日期,建立於FUNCTION中,即可回測,也許當日行情確實比其他日子更值得交易。

 

2013年9月9日 星期一

基本出場策略

 

一般程式交易者一開始常常花時間在思考進場邏輯比較多,而例如均線交叉、通道突破等,都是直接利用下一個訊號進場,當成前一訊號的出場,例如黃金交叉買進,死亡交叉時將買進訊號直接反手做空,又或是漲破通道買進,跌破通道直接反手做空。這樣的交易特色是,沒有空手的時期,也就是認為隨時要有方向,導致在震盪盤的時候,交易次數比有先出場的策略來的多,因此本篇先介紹一些J認為若要寫出有空手時期的策略,最基本需要有的出場寫法。

 

本篇一樣採用通道突破的邏輯擔任進場主邏輯,讀者可先複習 通道突破策略 ,本篇將進場稍微增加了每日交易次數與時間的濾網,交易次數控制的程式碼如下:

 

J 基本出場策略1


J 基本出場策略2


 

利用DTTL(多單用)與DTTS(空單用)來建立一個開關,每天第一根K棒後即計算為1,當部位變化為多單或空單,則將其歸0,藉此控制減少區間過小時來回進出的狀況,因此進場的程式碼改寫如下。

 

J 基本出場策略3


 

在交易次數與時間控制下,當價格突破HH或跌破LL就進場。

 

        再透過進場濾網的限制後,此通道突破已不若原本隨時都會有部位的設計(因可能進場條件被濾掉),所以原本通道反手作多或反手作空的進場線,須另外撰寫成為出場邏輯,避免進場濾網檔掉原本通道的出場,故可如下圖般重新撰寫

 

J 基本出場策略4


 

我們簡單看一下這樣的留倉績效,如下圖。(本篇主要凸顯增加停損機只與原本策略的差異,因此參數與K棒周期並不特別提供,讀者可以自行嘗試適合自己的周期。)

 

J 基本出場策略5


 

績效有個印象後,我們開始試著增加最基本的固定停損邏輯,如下圖。

 

J 基本出場策略6



 

透過SETSTOPLOSS內建功能的使用,可以設定多空兩者分別輸多少金額停損,將多空特性不同的想法結合進去,但讀者須特別注意,若使用MP來判斷多空,則會漏掉一進場時,瞬間價格可能在當根就已經超過停損的狀況,因此特別增加一個不分多空的SETSTOPLOSS,善用只要有部位就能在K棒內產生委託的出場功能 

增加後的績效如下圖。


 



J 基本出場策略7



 
 多單明顯的改善,空單在獲利上卻減少了,雖整體的獲利上升,回檔卻變大,結果並不令人滿意,顯示只有固定停損是不夠的,接著我們來撰寫也很常用的獲利拉回出場法

 

        在撰寫獲利拉回出場時,為了避免MC計算上產生K棒內價格走勢假設的錯誤(例如在未開啟精密回測時,K棒只用開高低收4個點運算,而若當根走勢很大,在回測計算獲利拉回時,將利用該K棒最高或最低點計算,然而真實情況可能在還沒出現最高或最低點時已經達成獲利拉回出場的現象,導致高估獲利能力的狀況。)




 

因此J將不建議讀者使用setpercenttrailing與setdollartrailing等內建功能,下圖將示範如何利用自行撰寫的程式碼達到同樣的目的。  


 





J 基本出場策略8



 


透過MPH與MPL的設計,可以計算進場後最高的價位,與最低的價位,再透過變數GAINL與GAINS的調整,設定要達到多少點以上才滿足"獲利"的條件並再由TRLX與TRSX來設定拉回的百分比,於確立出現上一根K棒最高最低點後,掛出STOP單,等待"拉回"時觸碰價格即出場
 

 增加此出場法後,績效如下圖。


 




J 基本出場策略9



J 基本出場策略10






 

可以發現獲利持續增加,回檔也大幅減少,近年績效也持續創高,顯示出場的設計將明顯的影響策略表現,而本篇除了主邏輯通道得出場,另增加了固定停損與獲利拉回的出場,但實際上還有許多不同類型的出場設計,在有了本篇基礎後J將於日後介紹更多面向的出場邏輯,以提供讀者思考如何打造一個更完整的交易策略。


 
 







2013年8月19日 星期一

通道突破策略

 

當沖突破是 Technical 技術分析 中很重要的一部份,其觀念在於市場價格穿透了之前的價格壓力或支撐,繼而形成一股新的趨勢,而我們的目標即是在突破發生時能夠確認並建立部位以獲取趨勢的利潤。

 

一般比較單純的當沖突破策略,常利用近幾日內價格計算交易區間,當今日價格一上漲突破即買進,或價格一跌破即放空,這樣的交易區間,可以是固定的,也可以是變動的,當上下兩條突破線連結起來即形成一個價格通道,最常見的指標就是布林通道(Bollinger Band),L曾利用他示範過逆勢的交易策略,可參考 逆勢策略-Bollinger Band

 

創建一個價格通道,方法有無限多種,而通道突破策略又是一個可能可以長期獲利的方法,因此本篇J將利用最單純的方法建立通道,驗證台指期短線當沖中是否可以這樣獲利? 程式碼如下:

通道突破策略1


 

首先定義HL為一個INPUT參數,主要目的是,我想知道要回取(參考)多少K棒形成的高低點比較適合交易。

 

利用FOR迴圈與IFF條件,往回計算最高的值存入HH,最低的值存入LL並且每根K棒算完後,下一根又清除所有計算結果,再以當時的K棒位置往回從算HL(本例為80)根K棒,形成一個不斷計算最近80根K棒高低點的通道

 

若將其寫在指標中,即可做出如下的圖形,我們可藉由觀察這樣的圖形,思考是否值得進行下一步當沖突破的進出場撰寫。

 

通道突破策略2


 

從上圖來看,可發現當日內行情往一個方向移動,每次重新計算時,當根K線即是近80根的最高或最低,而其走勢似乎又有連續性,然若無接觸邊界的日內行情,則最後當日行情通常較小,屬於區間震盪的機會較高。

 

再看似有機會區分出強勢突破行情或日內整理盤時,我們著手進行交易訊號進出場的程式撰寫部分。

 

通道突破策略3


 

簡單的寫上要進場交易的時間,通常會保留一些時間給行情發展的機會,所以不會讓策略到最後幾分鐘還可以進場,而又因最後出場時間到了馬上要出場,出現沒有太大效益的交易狀況。

通道突破策略4


 

進場有受時間限制,所以出場要另外拉出來寫,以免受時間限制而無法停損

通道突破策略5


 

尾盤的出場,J覺得值得多花至少一篇來分享一些方法,本篇為了方便測試當沖的績效,我們可以使用內建SET指令,將最後收盤價當作出場價格。但實際交易中,請切記這個指令是不能讓你在當天出場成交的,當丟單的時候,已經收盤了,變成隔天的早上開盤才會成交出場,無法達成當沖的交易目的。

 

撰寫好後,就可以在圖上看到部分的交易狀況如下

 

通道突破策略6


 

 

績效圖如下,回測時間2005/1-2013/8,手續費與滑價設定總共來回800。

 

通道突破策略7


通道突破策略8


通道突破策略9


通道突破策略10


 

 

從簡單的測試來看,這樣的通道突破在台指期當沖上,是可以獲利的。雖然這樣簡單的邏輯,在當沖的回檔上(MDD)相對來說算大的,而近年的獲利也不佳,但因邏輯單純,交易次數夠多,若能增加一些濾網,適當的減少一些可能會虧損的交易,即可增加獲利也減少回檔的幅度。

 

後續,J將利用這樣的簡單進場邏輯,透過每個小細節的改善,讓這個策略成為一個更完善,風險報酬比更好的策略,也期望透過這樣一步一步的分享,了解在程式撰寫中除了找新邏輯以外,許多小地方其實大有文章,多一點小嘗試,也許會發現讓績效大幅改善的方法