快問快答 - 策略開發篇
NEWS 2018/10/01

今年2月一時興起開放給群友問答,特別把這些東西簡單分類一下,在此謝謝群友的問題,若有覺得不妥不想分享問題的群友,請再跟我說即可。我的答案不見得是標準答案,僅供參考囉.

Q.策略的中心思想:以傳統技術指標關價,或是以k棒在過去的行為模式, 兩者所寫出的策略, 有什麼明顯的差異嗎? 或是說 朝哪方向的寫法比較 能夠少走一些冤枉路?

A. 這二種開發的方式,主要都是參考價格資訊為主。技術指標簡單來說,就是價格或是其它資訊的加減乘除。k棒型態也是一樣。可以先想想自己是用什麼角度來思考上線策略,我相信大部份的人一定是報表好看為主。但就我而言,不同的邏輯可以讓我進場點分散,而不是重壓在某種策略或瀘網上。如果就我的經驗來說,我用k棒的變化會比單純用技術指標出來的績效較好,套用在其它商品上也會較簡單。可以去思考一個問題,有名的技術指標你知我知大家知,要在這一塊賺到超額的報酬,關鍵一定不會是在這指標上。

 


Q.目前策略形成到上線,大致是採用所謂技術指標?最佳化?加停損停利?最佳化--?形成投資組合?再最佳化?上線, 過程中反覆的最佳化, 也盡量以樣本內外檢視, 希望能夠避開過度最佳化的風險, 投資組合也相對平滑並且降低了MDD, 但是心裡面總有揣揣的感覺, 總覺得似乎缺了些什麼, 能請c哥指點一二嗎?

A.策略形成的方式有幾派,說真的沒有所謂的好壞,能抓貓的就是好貓。但策略形成的過程,一定要與你內心的信念相符合。

一般來說,一種是先觀察再形成策略,舉例來說,我觀察到一個現象,通常大跌後再小v轉但一段時間盤整,這時進多單抱到底好像能賺錢。然後再開始著手回測,此時參數的意義很清楚,就是如何定義大跌(幅度) 與小v轉(幅度) 與時間盤整(區間,k棒數),邏輯性強的程式,參數最佳化時通常是呈現島狀。此時其實最佳化的風險是相對較小。

但另外一種,是隨機排列出來的程式。就像是做迴歸分析,只是在找一段時間內的最佳值。這種要特別注意的就是參數的意義性要理解。舉例來說,假設固定停損出場,然後你最佳化是1個tick 從1到200,這種最佳化就完全沒意義,但如果結合自身的信念,你本身就是風險無法承受100點的停損,那範圍設在30-100 間隔10。這樣的最佳化的風險降低一點。以你的開發流程,通常我的做法是技術指標+出場(抽換),最後才會進行"有意義"的最佳化。

會有揣揣的感覺,我每年都會有啊,因為市場怎麼走我們並不知道,所以看天吃飯,我每一年都不知道自己會不會賺錢(臣服市場)。但若不是這個原因,就代表你對於你整體架構上其實信念是不足的,直說就是每一步的動作,細節處理的程度到那,你自己並不清楚,只是報表好看而以。程式交易很多是在細節內,舉例來說,樣本內外的檢視(表面),如何取樣本內外,為何,你做這個的測試目的是什麼? 這就是關鍵了。

 


Q. 將手單方式轉變成程式,似乎有些例如型態(M,W,N)...等等, 以眼睛能夠輕易判斷的但程式困難表達, 請教有什麼訣竅來做這樣的轉換嗎?

A. 型態困難之處就是在於定義,舉例來說 v轉,如何去定義v轉,頭尾相對高(多高,比例,區間),中間是最低,但程式是死的。區間大與小就會決定這些關鍵。這一類的寫法,我會建議用"大方向"對來寫,再進而去修正。簡單來說,就是當你定義出來的code,在圖表上是否有訊號,然後只要要求8-9成有出現即可。剩下的1-2成,看看原因是否可以克服(通常是不行,會卡在區間)。型態是一種平面的概念,有時候你在定義時,可以跳脫框架的定義,只要追求你肉眼看到的圖,有出現你要的訊號。

 


Q. 如何用不同的策略邏輯利用排列組合用在加速開發新商品上,例如有10種不同策略邏輯取任2個組合成新的策略,就會有45種不同方式。利用最佳化方式產生45種不同的策略以節省開發新商品的時間?

A. 其實我是不建議用這種隨便取樣的方式去開發策略。這樣也許看起來開發策略很快,但事實上背後風險是蠻大的。但並不是說這方法不好,只是我們要能理解盲點在那,再從這個地方去俢正。

這種策略產生機,我自己有寫。但我通常是選定好一個主題(ex 均線),然後觀察進出場後,想一些我覺得可行的濾網或出場。再產生出來策略的code,測試出比較佳的邏輯。但是!!!最佳的邏輯,必須要能說服我自己!!!! 這點十分重要,因為有時多空的邏輯並無章法可言,那就是最佳化的一個產物,上線的風險就要保持警戒。所以,千萬要記得,這只是一個讓你少寫code的工具,但並不是主要的核心。

開發的盲點是這個,所以在應用上,只要知道模組套用的過程是合理且符合你自己的信念。這部份的風險會降低許多。