
【分析師專欄】3行程式碼居然有85%的超高勝率!
2023/07/05 - MultiCharts, TOUCHANCE, 達錢, 程式交易課程, 分析師, 謝富傑, 程式交易 so Easy!
今天要教大家一個非常簡單的交易策略,適用於美股市場。如果你能一直看到最後,我會教大家如何編寫一個勝率達到85%的交易策略,而且這個策略可以直接應用在交易平台上。
![]() |
|
如果你有聽過我的直播,應該知道除了【勝率】之外,你們也需要了解一些其他的重要事項,例如該策略的【最大風險和過去的最大虧損】。這些都是你們需要注意的事項。
我們要講的交易策略會涉及交易績效的一部分。請記住,我們所做的交易策略是根據【過去】的例子進行回測的,但這並不代表未來一定能產生相同的績效。所以在使用這個策略時,大家要格外小心謹慎。
Keep It Simple!!
今天要介紹的策略是一個超級簡單的策略。它只需要很少的程式碼,但卻能帶來良好的交易結果。不過,請記住,交易績效並非保證,風險仍然存在。在使用任何策略之前,請確保你已充分了解它並具有相應的風險管理措施。
首先,我想要與大家分享一個觀念,那就是如果你現在正在使用一個非常複雜的交易策略,未來失效的可能性就會相當高。
越簡單的策略,未來實現可能性更高
強調只使用三行程式的原因是因為在這種簡單的策略下,即使只使用三個參數,也能夠獲得不錯的績效。這意味著在這個市場上使用這種方式交易的未來實現可能性相當高。因此,我們強調的是你的交易策略越簡單越好。
那麼,該如何判斷你的策略是否太過複雜呢?其實很簡單。如果你的策略邏輯非常複雜,就是一頁寫不完的話,那麼你可能需要懷疑你的策略是否太過複雜了。
這種情況下,很可能存在過度最佳化的風險。因此,今天我們要教大家的只有三行程式,並且我會逐步教大家實作這個策略。之後,我會解釋這個策略的原理。
簡單的交易策略具有以下優點:
- 易於理解:簡單的策略更容易理解和實施,即使是對於剛入門的交易者也能夠輕鬆上手。這樣可以減少錯誤和混淆的機會。
- 減少過度最佳化的風險:複雜的策略容易過度最佳化,過度追求過去的績效,而忽略了未來市場變化的不確定性。簡單策略則更具彈性,能夠應對不同市場環境。
- 更易於優化和測試:簡單策略的參數更少,因此更易於進行優化和測試。你可以更快地評估不同參數的效果,找到最適合的設置。
當然,簡單並不意味著無效或者不具備競爭力。事實上,許多成功的交易策略都以簡單的原則為基礎。關鍵在於理解市場動態和交易原則,並且能夠根據實際情況做出靈活的調整。
總結而言,簡單的交易策略通常更易於理解、優化和執行,同時也能夠減少過度最佳化的風險。重要的是要理解策略的基本原則並且能夠根據市場變化進行調整。
策略概念:趨勢追蹤
今天我們將主要講解一種【趨勢追蹤】的交易策略。這個策略基於觀察你想交易的商品【是否】存在趨勢,如果有趨勢,我們就跟隨趨勢進行交易。
均線的意義 - 平均成本
均線的意思是在一段時間內,這些價格的平均值。為什麼要講平均成本呢?假設我們繪製了一條均線,那麼當價格在均線上方時,意味著當前進場的人都處於盈利狀態,因為大多數人都賺錢。相反,如果價格在均線下方,那麼當價格接近均線時,之前套牢的人會急於賣出,這時就會產生賣壓。因此,我們通常希望在價格在均線上方時進行多頭操作,在價格在均線下方時進行空頭操作。
那麼,該如何判斷商品是否具有趨勢呢?通常,人們會使用一些常見的指標,例如均線。而最常用的均線可能是5日線、10日線、20日線和60日線,市場上大家經常使用的均線還有 200 日均線,就是一個非常厲害的選擇!
商品選擇 - 標普500指數
今天我們要測試的商品是標普500指數(S&P),最近展現了非常強勁的走勢,並創下了去年10月以來的新高。我們將使用日線圖來進行測試。如果你有 MultiCharts 軟體,就可以直接使用它來回測。如果沒有,沒關係,我將解釋原理,你可以根據自己的交易平台來進行觀察。現在,我們要進行一些測試...
IF C CROSS OVER AVERAGE(C, 200) THEN BUY NEXT BAR MARKET;
IF C CROSS UNDER AVERAGE(C, 200) THEN SELLSHORT NEXT BAR MARKET;
我們來拆解這幾句話,非常簡單。
如果收盤價超過了某個均線,就說明市場看漲,我們會買入。如果收盤價跌破了200日均線,就說明市場看跌,我們會做空。
寫完之後,我們打開圖表,將剛才的信號添加進去。為了驗證,我們再加一條均線,比如200日均線,並稍微調整一下,這樣大家更容易觀察。
透過觀察來調整策略
好的,這時候我們將趨勢拉長一點來觀察。你會發現大部分股票的行情都是向上的,比較多是上漲的趨勢。在回測之後,你可以先觀察多單和空單的績效。
讓我們從這個績效表中來看。實際上,如果你使用均線做多,你可以賺取 81,000 美元,而使用均線做空則會虧損 61,000 美元。
記住,當我們從回測的報表中找到進場獲利的機會比較高的情況時,我們可以先去掉空單。所以,我們將原本的賣出單改成只賣多單,就是平掉多單就好了,不再反向做空。
IF C CROSS OVER AVERAGE(C, 200) THEN BUY NEXT BAR MARKET;
IF C CROSS UNDER AVERAGE(C, 200) THEN SELL NEXT BAR MARKET;
好的,讓我們來看一下現在只做多不做空的情況下,原本空單的虧損 6 萬塊已經沒有了,所以我們現在的獲利只剩下做多的 8 萬一。可以看到,我們的績效已經比之前好很多了,不會像之前那樣差了。
再來看總交易分析,勝率稍微提高了 28 個百分點,原本只有 28%。
但其實這還不夠好,我們還可以對它進行優化。好,我們趕緊先只做多方吧,把空方去掉,然後進行回測。回測怎麼做呢?就是將它變成一個參數,使用 input,然後將均線也變成一個參數,比如我們叫它MA。
INPUT:MA( 200 );
IF C CROSS OVER AVERAGE(C, MA) THEN BUY NEXT BAR MARKET;
IF C CROSS UNDER AVERAGE(C, MA) THEN SELL NEXT BAR MARKET;
通过这种方法,你就可以进行最佳化的测试了。比如你可以从 5 开始一直测试到 200,每次增加 5。这样就可以进行最佳化。我最喜欢做验证的原因是,当你有一个想法时,进行验证会让你觉得很有趣。
調整進場方式
現在讓我們反過來思考一下,如果我們將買賣策略顛倒一下,會發生什麼。所以現在我想反轉一下,如果今天的收盤價小於昨天的最低點,我就買進;然後如果今天的收盤價大於昨天的高點,我就平倉。
INPUT:MA( 200 );
{
IF C CROSS OVER AVERAGE(C, MA) THEN BUY NEXT BAR MARKET;
IF C CROSS UNDER AVERAGE(C, MA) THEN SELL NEXT BAR MARKET;
}
IF C > H[1] THEN SELL NEXT BAR MARKET;
IF C < L[1] THEN BUY NEXT BAR MARKET;
讓我們來看一下交易曲線,完全不同了吧。
這完全顛覆了大家的想像。如果我們僅僅使用標普 500 的日線數據,在突破高點時進場,風險實際上是很大的。
好,根據這樣的績效,過去十幾年來大約可以賺取 10 萬美元。這個數值已經扣除了交易成本,每邊是31.25 美元。所以這個數值已經考慮了交易成本。然後我們看連續週期的部分,幾乎都有 60% 以上的勝率,平均來看今年大約是 85%。
我們已經示範了如何用均線判斷趨勢,然後又帶大家看了什麼時候進場是在下跌時好,還是在上漲時好。所以,你現在已經知道了這兩種方式。
那麼,現在我們要如何將它們結合成一個交易策略呢?有沒有人已經猜到了呢?就是我將兩個策略結合在一起,用一個長期均線來判斷趨勢,然後在日線的K線形態中尋找進場點。大家可以想像一下如何將這兩個策略結合在一起。
好簡單啊!這是進場點,也就是我們要扣板機的時刻,也就是說當日的K棒突破過去幾天的最低點。
IF C < LOWEST( L, LE ) THEN BUY NEXT BAR MARKET;
但是還需要符合一個條件,就是收盤價必須大於均線之上。我刪掉了之前的註解,這樣更清楚一些。然後稍微改變了順序,這樣大家觀看起來會更好。
INPUT:MA( 200 ), LE( 1 );
IF C < LOWEST( L, LE )[1] AND C > AVERAGE( C, MA ) THEN BUY NEXT BAR MARKET;
IF C > HIGHTEST( H, LE )[1] THEN SELL NEXT BAR MARKET;
回測完成後,我們可以直接查看績效報告。我們先來看勝率部分,85.07%。看起來我們已經達到了我們期望的 85% 的勝率了。因為台灣投資人喜歡高勝率,雖然我不知道為什麼,但是為了幫大家回測一個高勝率的績效,我們先採取這個標準。
然後我們看總收益率部分,達到了 134,000 美元,大約是 400 多萬台幣。而最大虧損為 13,000 美元,所以我們的風險報酬比為 9.79 倍。
再來看一下85%的勝率部分。我們看一下賠率,賠率也不低,有 1.55 倍的賠率。
總復習
讓我們來複習一下交易策略。
這個交易策略的核心思想是建立一個均線過濾機制,主要思路是在上升趨勢中逆勢買入,也就是在下跌時進行買入操作。這樣做既有長期保護的效果,也有短期操作的機會。因此,我們不會追高,而是等待回調並在突破均線時進行買入。
最後,每種方法都有其優缺點,我們只需要找出最適合自己的方法。今天的主題如果再加上止損的話,就會超過三行了,所以我今天沒有加入止損。各位可以自行嘗試,雖然不確定結果是否會更好,但數字是不會欺騙人的。
完整的影片連接:
部落格:https://itradesoeasy.com/
粉絲團:https://www.facebook.com/TradeSoEasy/
LINE@:http://line.me/ti/p/%40shi4052s
Instagram:https://www.instagram.com/tradesoeasy