當開發出一套根據特定指標觸發的策略時,往往會陷入「如果能提前進場報酬率會不會更好」的迷思,又或是出現訊號後的價格太高,會猶豫「是不是應該延遲進場,等待更好守停損的價格」。
如果這是在策略開發階段發出的疑問,那確實是值得研究的議題,但若在策略上線執行階段才產生這個疑問,其實這在某種程度上代表自己還沒準備好執行策略,或是還沒搞清楚自己在執行的是什麼策略。
假設有一個策略訊號在上禮拜五(10/11)觸發,要求下周一(10/14)要進場買 4807 這檔股票:
4807 日線圖
10/14的走勢圖
10/11 觸發訊號當天的收盤價是 25.5 元,到了 10/14 開盤,直接跳空開高 7.2%,這時就會有人覺得開盤價太高了,想等回檔到5%以下再進場布局,結果往往股價會一去不回,反而錯過訊號進場機會。如果是夠強勢的股票,往往後面就不會再出現 10/14 開盤的價位了。
這造成的影響其實不單單是錯失一檔股票,還錯失了達成策略期望績效的可能性。
大部分的策略報酬都是多個輸輸贏贏的交易累積來的,開高是很常見的強勢股特徵(盤前大家都想追買,所以容易跳空開高),強勢股又往往是策略重要的績效來源,一旦因為不願意多承擔那一點點的風險,最後因為標的鎖漲停買不到或被迫買在更高價,長期下來對執行策略的期望報酬影響會是負面居多。
第二個理由是,如果認為開多高就不該買,就應該寫成策略進場條件下去回測看看,用過往數據來證明自己的選擇是對的。但太多人一開始遇到這個問題的時候,反而會選擇用自己主觀判斷進場方式來影響策略的執行。同理,像是「策略訊號觸發的第一天開盤鎖漲停買不到,第二天還該不該買」之類的問題,都應該透過回測手段解決,問別人通常是沒意義的,別人的策略可能可以追買,自己的策略可能追買這個動作長期下來是很虧的。
既然都要做量化交易了,這種能簡單量化的動作應該自己實做看看,而不是拿去隨機問一個一定比自己更不熟自己策略的陌生人。
改用5分K來看可能的買點
假如訊號的觸發條件夠明確,在前一天13:25-13:30收盤前就能猜到當晚高機率會觸發隔天買進的訊號,那有沒有機會在尾盤集合競價階段直接下單委託「漲停價」去買,讓自己拿到更好的成本價呢?
當然可以,但大部分時間裡不太容易做到。
實際上會發生的劇本不會只有一種,尾盤集合競價也有可能搓出一個預期之外的價格,隔天也不一定只會開高;如果策略需要參考盤後才更新的數據(例如籌碼),更是無法100%肯定一定會觸發訊號。這種提前進場的行為,其實是策略的不穩定因子,甚至有可能讓策略長期表現產生巨大誤差。
另一個常見情境是日K頻率的「均線黃金交叉」策略,常有人會想在快發生黃金交叉之前就先進場,這個也是策略的不穩定因子。
如果真的能找到提前確認的方法,就應該直接寫在策略的進場條件裡,再去跑回測看看結果,回測成績若是比原策略好,才有可能是真的找到優化進場的方法。只不過大部分的時候,原本策略是做什麼頻率,就用什麼頻率的數據去找進出場方法就好,過分執著於「跑大頻率策略卻想著用小頻率進場偷成本」的做法,只會花費大量時間在做類似參數最佳化的行為,實際上卻對策略長期的報酬與風險沒有特別顯著的影響。
等到收K之後才進行訊號判斷,才是100%符合策略預期的做法。任何在收K前預先進行的計算,都存在被假訊號欺騙的可能。
這個情境有點綜合前 2 個情境,同時存在「未能確實執行策略」和「不能如回測買在指定時間」的問題,但處理方法應該是一樣的。
先修改策略,實際回測兩種情況看看。第一種是原始策略出訊號後隔天如果開盤漲停,就默認錯過該筆交易,看看這樣的回測結果表現如何;第二種則是出訊號後隔天開盤漲停,改到第二天再買,看看回測結果變怎麼樣,績效好的話再去細分第二天如果漲停就跳過訊號和第二天也漲停就改成第三天買進的方式,看看是不是一定要買到才是對策略最好的處理方法。
如果目前還有這些策略進場的迷思,追根究柢其實都是對策略研究得不夠透徹才會產生的困擾,當自己對策略足夠了解之後,煩惱的問題應該會變成以下這些:
「怎麼確保在有限的資金下不要錯過任何一次策略訊號?」
「張數超過1張的話,要利用開盤跟收盤集合競價做均價嗎?還是在同一天內做時間均價?」
「當同時執行多策略訊號時,是不是要套用評分機制去區分策略優先級,優先級低的做不到就算了?」
「需不需要根據本金調整策略進場的面額上限,避免高價股只能買零股吃滑價或索性放棄高價股?」
「有沒有需要限制策略每個周期只能持有的檔數上限?」
最後還是建議能跑自動交易就不要手動,機械化操作能完全根除人性的影響,才不會因為人性影響把一個好的策略做壞了。
實際上跑自動交易還是會遇到少數情況需要人為介入,例如圈存資金買處置股、停資只能現買之類,但一般來說還是能比人工交易更容易貼合策略的交易邏輯