加值服務 | 相關文章

【分析師專欄】3行程式碼居然有85%的超高勝率!

2023/07/05 - MultiCharts, TOUCHANCE, 達錢, 程式交易課程, 分析師, 謝富傑, 程式交易 so Easy!


今天要教大家一個非常簡單的交易策略,適用於美股市場。如果你能一直看到最後,我會教大家如何編寫一個勝率達到85%的交易策略,而且這個策略可以直接應用在交易平台上。

程式交易 SoEasy - 謝富傑 分析師

YouTube頻道專門提供量化交易相關教學,累計上百場培訓課程,輔導超過百位學員建立交易系統。

  • 交易操作經驗20年
  • 日盛證券 營業員
  • 元大期貨 業務經理
  • 元大期貨 台中分公司經理
  • 元大期貨 顧問事業部主管
  • 交易所:CME芝商所、JPX日本交易所
  • 學術單位:逢甲大學、淡江大學、亞洲大學、清華大學、台灣師範大學、台北大學、嶺東科大、德明科大、中興大學

如果你有聽過我的直播,應該知道除了【勝率】之外,你們也需要了解一些其他的重要事項,例如該策略的【最大風險和過去的最大虧損】。這些都是你們需要注意的事項。

我們要講的交易策略會涉及交易績效的一部分。請記住,我們所做的交易策略是根據【過去】的例子進行回測的,但這並不代表未來一定能產生相同的績效。所以在使用這個策略時,大家要格外小心謹慎

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