免費下載
搜尋
自動交易回測功能
2020-10-05 17:19:54

前言

前陣子在機車行換輪胎與車行老闆閒聊股市投資心得,老闆說他小時候以為自己投資股票賺得錢比賠得多,後來深入了對帳單後才發現,其實他以前的賺賠是打平的,原因是他看對帳單,都是看到賺錢的,賠錢的沒去深入了解它。

後來仔細想想,策略雷達回測可能也有類似的窘境,回測勝率高與報酬率高的策略用戶有時候會懷疑是假聖杯,想要有更多的回測數據來評估策略的穩健性,故在自動交易回測我們祭出更多的回測策略因子,像是獲利因子與平均獲利虧損比,可以用來檢查高勝率策略的穩健度;也提供買進持有報酬率與大盤指數報酬率,方便做短線與主動投資者對照策略績效,希望能強化自動交易回測報告功能,加強投資者評估策略的效率。

目的

因應自動交易的語法,我們在自動交易中心可以做到的交易更加多元,譬如說可以做到翻單、加碼、減碼等部位控管的動作,故在自動交易回測設定增加「初始資金」參數設定,讓用戶使用本金來查看回測績效,並增加至 26 個回測報表數據,例如:獲利因子、平均獲利虧損比(賺賠比)...等等,釋出更多的策略因子,強化自動交易回測報表,以利讓用戶判斷策略回測績效表現。

策略雷達回測的總報酬率讓多數用戶不好解讀,所以自動交易回測報酬率改以「最大持倉報酬率」呈現,以便讓新用戶較容易上手理解,舊用戶若用慣了時間加權報酬,也可以在介面切換時間加權報酬率曲線,或者在系統參數調整預設顯示時間加權報酬率曲線。我們也增加了買進持有(Buy&Hold)與大盤指數報酬率,讓短進短出、主動型投資的用戶方便對照績效表現。每筆交易的報酬率在股票商品會納入除權息再投資,在期貨商品則會去除換月價差影響,讓報酬率變得更為精確。不過,為了方便使用者於圖表上比對進出場點,我們在交易分析中顯示的進出場價仍然是回測頻率的點位,而非計算報酬所用的價格。

回測報告畫面增加可切換成全部、做多與做空顯示回測報表上的數據,由於回測報表的數據變多,也有提供放大回測報表的功能,方便讓用戶一次看到所有的回測數據,曲線績效圖也增加「淨利」方便用戶視覺上閱覽盈虧績效表現。

本文將使用以下四個章節來做介紹,大家可以點選超連結跳轉到需要了解的章節參考:

與策略雷達回測差異性

回測參數設定差異

  1. 自動交易回測的日線與還原日線一定要勾選逐筆洗價才能跑回測,原因是目前的自動交易系統實際送單時不支援跨日委託單,當日的委託在收盤後如果沒成交的話會自動清除部位,所以如果沒有勾選逐筆洗價的話,就不會產生任何的交易。
  2. 策略雷達回測在跑當沖策略時,往往在當日收盤前的清倉條件不好撰寫,故我們在自動交易回測增加「每日部位歸零」功能選項,方便當沖用戶使用此功能,輕鬆達到當日收盤前的清倉設定,無須在腳本撰寫語法判斷。
  3. 策略雷達回測中的「資料讀取筆數」蠻多用戶不了解這項功能的文字意思,所以自動交易回測改成以「預先執行筆數」文字來表示,希望讓用戶了解是在開始回測日期前先跑預先執行筆數的資料運算。
  4. 在跑AT回測的過程中,條件通過在回測期間模擬成交會依照腳本撰寫的價格送模擬委託單,並在下一個回測洗價看是否會成交,若沒有特別撰寫,則會依照AT策略介面上的預設買進/賣出的價格設定送模擬委託單,這點在Sensor回測中無法做到。
  5. 初始資金參數說明:自動交易回測增加「初始資金」參數供用戶填寫,可將投入的本金納入自動交易策略回測運算,並在自動交易回測報告呈現更多的數據,在下列的數據使用到百分比(%)呈現的都是有用到初始資金參數來運算,相關介紹可以參考「自動交易回測項目說明

回測報告畫面差異

  1. 自動交易回測數據共有 26 個項目,而策略雷達回測數據僅有 12 個項目,除了運用初始資金來計算出更多的策略因子外,我們也有加上「最大持倉報酬率」、「買進持有報酬率」與「大盤指數報酬率」

    • 最大持倉報酬率,是淨利/最大持倉金額,因為初始資金是由用戶自行設定,但我們在回測時並不會考慮觸發時資金是否足夠可以交易,在評估策略上可能會失真。所以提供最大持倉金額及報酬率,讓客戶了解真的執行這個策略會需要多少資金及其真實的報酬率。同時,報酬率曲線圖也是以最大持倉報酬率繪製。
    • 買進持有報酬率(Buy & Hold)是比較策略績效的方式之一,讓短進短出的用戶,方便去比較長期持有報酬績效。例如,商品是06/01進場,07/31出場,但回測區間是 05/01 ~ 08/15,則買進報酬率是 05/01 ~ 08/15 所運算出來的數值。
    • 大盤指數報酬,也是比較策略績效的方式之一,讓主動型投資的用戶,方便比較大盤績效。

  2. 自動交易回測的策略,因為可以在語法上呈現翻單的撰寫,所以在自動交易回測報告上,有加上全部、做多與作空,切換三種操作方向的回測數據呈現,以便讓使用者了解操作方向的績效表現。
  3. 自動交易回測報告新增了最大持倉報酬率、時間加權報酬率與淨利曲線圖,並且在這三個曲線圖上標上創新高的藍點標記,以及增加最大區間虧損副圖,除了讓大家方便查看最大區間虧損數值外,也能從淨利曲線圖上了解創新高的點位在何處,強化績效曲線圖的呈現。
  4. 自動交易回測數據,有百分比與金額呈現兩種方式,可以點選切換呈現,方便大家檢視回測數據。

  5. 自動交易回測報酬率曲線圖,調整為最大持倉報酬率與時間加權報酬率,兩種線圖供大家選擇呈現,而時間加權、買進持有與大盤指數報酬率,都在「+」Icon元件中,用戶可點選該元件疊加上述報酬率至曲線圖績效中對照比較。預設顯示最大持倉報酬率來呈現的原因是,大家對於時間加權報酬率較不熟悉,故在自動交易回測改用最大持倉報酬來呈現,希望新用戶可以較好上手,舊用戶若用慣了時間加權報酬呈現,只要點選績效曲線圖上方的「時間加權報酬率」按鈕切換呈現,或者在系統參數調整預設顯示時間加權報酬率曲線即可

  6. 自動交易回測新增「每日報表」頁面,方便用戶檢視每日統計的獲利、總獲利、最大持倉金額與商品檔數數據,供用戶參考歸納出策略的績效在那些特定日子較弱勢,就能夠讓投資者考慮加上濾網,在績效不好的週期減少操作,或者把進場條件調整更嚴格。
  7. 在「系統參數」可以設定自動交易回測報告的顯示預設設定,以利使用者在跑完自動交易回測報告後,直接預設顯示想查看的數值與報酬率曲線圖顯示的格式,就不用跑完後還要再調整格式設定,方便大家使用,目前可以調整的系統參數預設設定如下:

    • 自動交易回測報告的表格數值預設顯示設定。
    • 自動交易回測報告的報酬率曲線圖預設呈現設定。
    • 自動交易回測報告「整體統計」頁面的報酬率曲線圖預設疊加參考指標設定。

※註:在企業版的「系統參數」路徑為「上方主功能列 → 系統(S) → 設定(K) → 系統參數(P)」;在個人版的「系統參數」路徑為「上方主功能列 → 設定(S) → 我的設定(K) → 系統偏好設定(P)」

自動交易回測項目說明

由於自動交易回測報表共 26 個數據與 策略雷達 回測報告共 12 個數據差異蠻多的,故以下將細部介紹 自動交易 回測報表數據的說明。此外自動交易回測報表上有顯示$與%兩種數據,$是以金額來計算,而%都是除以初始資金。

筆者喜歡直白的淨利數據,可以了解投入多少本金在這個策略上的收益為何。另外,獲利因子、平均獲利虧損比、買進持有報酬、大盤指數報酬,自動交易回測多了這四個策略因子,在評估回測績效表現時,又可以在更深入了解,這些數據在策略雷達回測上是無法被瞭解到的。

  1. 淨利

    • 損益的加總就是淨利,用來判斷回測期間盈虧的數據,在下方也有呈現績效曲線圖,方便用戶審視績效。
    • 百分比(%)是除以「初始資金」參數後的數據。

  2. 毛利

    • 獲利的加總就是毛利,也就是回測期間的獲利表現。
    • 百分比(%)是除以「初始資金」參數後的數據。

  3. 毛損

    • 虧損的加總就是毛損,也就是回測期間的虧損表現。
    • 百分比(%)是除以「初始資金」參數後的數據。

  4. 獲利因子

    • 毛利/ABS(毛損)×SIGN(淨利);ABS為絕對值;SIGN為數值的正負號。

      • 僅有獲利、無虧損(分母為0)則獲利因子為「+0」
      • 僅有虧損、無獲利(分子為0)則獲利因子為「-0」
      • 無交易,則獲利因子為「n/a」

    • 也就是總獲利金額/總虧損金額,可以搭配勝率檢視,假設策略勝率很高,每次都賺 1 元,總共賺了 9 次,但是賠 1 次,虧損 10 元,仍無用武之地。
    • 一般認為,獲利因子大於 1.5 策略才算堪用。

  5. 最大持倉金額

    • 也就是回測區間內持倉部位數的最大值。

  6. 總交易成本

    • 每筆交易的單筆手續費加總,對於操作短期的投資者而言,交易成本也是評估策略因子之一。
    • 百分比(%)是除以「初始資金」參數後的數據。

  7. 總交易次數

    • 交易次數的加總,此數據與策略雷達回測相同。

  8. 獲利交易次數

    • 獲利交易次數的加總,此數據與策略雷達回測相同。

  9. 虧損交易次數

    • 虧損交易次數,此數據與策略雷達回測相同。

  10. 勝率

    • 獲利交易次數/總交易次數,此數據與策略雷達回測相同。

  11. 平均交易

    • 淨利/總交易次數,取代了原本雷達回測的平均報酬率%,改以平均交易來呈現,原因是雷達回測的平均報酬率數據較難理解。
    • 百分比(%)是除以「初始資金」參數後的數據。

  12. 平均獲利交易

    • 毛利/獲利交易次數,用來觀察每次獲利交易的平均值。
    • 百分比(%)是除以「初始資金」參數後的數據。

  13. 平均虧損交易

    • 虧損/獲利交易次數,用來觀察每次虧損交易的平均值。
    • 百分比(%)是除以「初始資金」參數後的數據。

  14. 平均獲利虧損比

    • ABS(平均獲利交易/平均虧損交易);ABS為絕對值。
    • 俗稱「賺賠比」交易要獲利的基本原則就是大賺小賠,此項數據可以用來衡量策略本身獲利的能力。

  15. 最大獲利交易

    • 所有獲利金額>0(賺錢)的交易中,獲利金額最大(賺最多)就是最大獲利交易。
    • 策略雷達回測為最大獲利率%(單筆),在自動交易回測使用最大獲利交易來表示,原因是較容易解讀。
    • 百分比(%)是除以「初始資金」參數後的數據。

  16. 最大虧損交易

    • 所有獲利金額<0(賠錢)的交易中,獲利金額最小(賠最多)就是最大虧損交易。
    • 策略雷達回測為最大虧損率%(單筆),在自動交易回測使用最大虧損交易來表示,原因是較容易解讀。
    • 百分比(%)是除以「初始資金」參數後的數據。

  17. 最大區間獲利

    • 運用收盤價來計算,列出回測中每一段獲利(淨利>0)區間的累加淨利變化,取最大值。
    • 百分比(%)是除以「初始資金」參數後的數據。

  18. 最大區間虧損

    • 運用收盤價來計算,列出回測中每一段虧損(淨利<0)區間的累加淨利變化,取最小值。
    • 代表從績效最高點拉回的平倉損益,如果回測區間承受不了最大區間虧損,那後面的獲利如浮雲,因為已被斷頭砍倉。
    • 百分比(%)是除以「初始資金」參數後的數據。

  19. 全部交易的平均持倉K線根數

    • 此項數據,用來表述持有部位的平均期間為何,部位與資金需要投入的時間為何。

  20. 獲利交易的平均持倉K線根數

    • 此項數據,用來表述獲利交易持有部位的平均期間為何。

  21. 虧損交易的平均持倉K線根數

    • 此項數據,用來表述虧損交易持有部位的平均期間為何。

  22. 回測K線根數

    • 可以搭配買進持有報酬來觀察,回測K線根數用來評估買進持有報酬的持有期間為何。

  23. 時間加權報酬率

    • 與策略雷達回測相同。
    • 去除資金因素後調整報酬率,可以較好評估進出場的有效性。
    • 每一筆(次)交易的當期報酬率在當期所佔用的資金都是一樣的。
    • 時間加權報酬$=累計時間加權報酬率×初始資金
    • 股票會納入除權息再投資、期貨會去除換月價差影響。

  24. 最大持倉報酬率

    • 最大持倉報酬率=淨利/最大持倉金額;最大持倉報酬$=淨利
    • 以回測區間內,真實會動用到的最大資金來計算報酬率。
    • 自動交易回測的報酬率主線圖,改以最大持倉報酬率來呈現,因為初始資金是由用戶自行設定,但我們在回測時並不會考慮觸發時資金是否可以交易,在評估策略上可能會失真。所以提供最大持倉金額及報酬率,讓客戶了解真的執行這個策略會需要多少資金及其真實的報酬率。同時,報酬率曲線圖也是以最大持倉報酬率繪製。
    • 股票會納入除權息再投資、期貨會去除換月價差影響。

  25. 買進持有報酬率

    • 評估策略、比較績效用。不考慮進出場訊號,單純在回測區間內持有回測商品可獲得的報酬率。例如,商品是06/01進場,07/31出場,但回測區間是 05/01 ~ 0815,則買進報酬率是 05/01 ~ 08/15 所運算出來的數值。
    • Buy&Hold 數據方便做短線的投資者對照,衡量短期策略績效表現,如果短期策略績效與買進持有差不多的話,那建議就單純買進持有就好。
    • 股票會納入除權息再投資、期貨會去除換月價差影響。

  26. 大盤指數報酬率

    • 評估策略、比較績效用,大盤在回測區間的報酬率,以加權報酬指數(TSETR.TW)計算的買進持有報酬率。
    • 方便讓主動型投資者比對績效用,如果主動投資的績效沒有比大盤表現來的穩健,那建議投入ETF的懷抱,主動投資就是要完敗大盤才有感。
    • 股票會納入除權息再投資、期貨會去除換月價差影響。

自動交易回測報告UI說明

自動交易回測報告畫面,一樣是使用「整體統計」、「商品統計表」、「商品分析」、「交易分析」、「腳本資料」這五個頁面來呈現。除了腳本資料頁面沒有異動外,其他的四個頁面在自動交易回測都有做些微的調整,另外新增了「每日報表」頁面,以下將做細部的介紹。

整體統計

  1. 整體統計頁面,在回測報表有新增「全部」、「做多」與「做空」三個切換按鈕以便讓用戶查看各個操作方向的績效表現。自動交易 回測能在一個策略做到翻單的策略,故增加此功能,方便用戶瀏覽各個方向的回測數據。
  2. 自動交易回測數據,有百分比與金額呈現兩種方式,可以點選切換呈現,方便大家檢視回測數據。
  3. 由於自動交易回測報表數據多達 26 個,以及最大區間虧損副圖,故增加放大回測報表數據與績效線圖的Tool,以便用戶一覽無遺回測數據與績效線圖。
  4. 自動交易回測報告新增了最大持倉報酬率、時間加權報酬率與淨利曲線圖,並且在這三個曲線圖上標上創新高的藍點標記,以及增加最大區間虧損副圖,除了讓大家方便查看最大區間虧損數值外,也能從淨利曲線圖上了解創新高的點位在何處,強化績效曲線圖的呈現。

  5. 自動交易回測報酬率曲線圖,調整為最大持倉報酬率與時間加權報酬率,兩種線圖供大家選擇呈現,而時間加權、買進持有與大盤指數報酬率,都在「+」Icon元件中,用戶可點選該元件疊加上述報酬率至曲線圖績效中對照比較。預設顯示最大持倉報酬率來呈現的原因是,大家對於時間加權報酬率較不熟悉,故在自動交易回測改用最大持倉報酬來呈現,希望新用戶可以較好上手,舊用戶若用慣了時間加權報酬呈現,只要點選績效曲線圖上方的「時間加權報酬率」按鈕切換呈現,或者在系統參數調整預設顯示時間加權報酬率曲線即可。

每日報表

  1. 自動交易回測新增「每日報表」頁面,方便用戶檢視每日統計的獲利、總獲利、最大持倉金額與商品檔數數據,供用戶參考歸納出策略的績效在那些特定日子較弱勢,就能夠讓投資者考慮加上濾網,在績效不好的週期減少操作,或者把進場條件調整更嚴格。

商品統計表

  1. 在商品統計表中,同樣有新增「全部」、「做多」與「做空」三個切換按鈕以便讓用戶查看各個操作方向的績效表現。
  2. 在商品統計表中,同樣有百分比與金額呈現兩種方式,可以點選切換呈現,方便大家檢視回測數據。

商品分析

  1. 同樣在商品分析有新增「全部」、「做多」與「做空」三個切換按鈕以便讓用戶查看各個操作方向的績效表現。
  2. 同樣在商品分析有百分比與金額呈現兩種方式,可以點選切換呈現,方便大家檢視回測數據。
  3. 同樣在商品分析中,由於自動交易回測報表數據多達 26 個,以及最大區間虧損副圖,故增加放大回測報表數據與績效線圖的Tool,以便用戶一覽無遺回測數據與績效線圖。
  4. 同樣在商品分析中,自動交易回測報告新增了最大持倉報酬率、時間加權報酬率與淨利曲線圖,並且在這三個曲線圖上標上創新高的藍點標記,以及增加最大區間虧損副圖,除了讓大家方便查看最大區間虧損數值外,也能從淨利曲線圖上了解創新高的點位在何處,強化績效曲線圖的呈現。

  5. 同樣在商品分析中,自動交易回測報酬率曲線圖,調整為最大持倉報酬率與時間加權報酬率,兩種線圖供大家選擇呈現,而時間加權、買進持有與大盤指數報酬率,都在「+」Icon元件中,用戶可點選該元件疊加上述報酬率至曲線圖績效中對照比較。預設顯示最大持倉報酬率來呈現的原因是,大家對於時間加權報酬率較不熟悉,故在自動交易回測改用最大持倉報酬來呈現,希望新用戶可以較好上手,舊用戶若用慣了時間加權報酬呈現,只要點選績效曲線圖上方的「時間加權報酬率」按鈕切換呈現,或者在系統參數調整預設顯示時間加權報酬率曲線即可。

交易分析

在交易分析頁面中,我們調整了進場與出場的標註圖示,以利讓大家檢閱各筆模擬成交回測的進出場位置,其中「#」編號為對應的交易序號,例如上圖的「#01」是序號 1 的進出場點位,而「#02」是序號 2 的進出場點位,而紅色與綠色數字為進出場的交易數量。由於模擬成交回測有加碼、減碼的交易語法,故在交易分析我們用「#」編號來標註對應的交易序號,就能知悉以下對應的進出場點位資訊:

  • 「紅框 #01、紅色數字 1」表示交易 1 序號進場買進 1 張。
  • 「紅框 #02、紅色數字 1」表示交易 2 序號加碼買進 1 張。
  • 「綠框 #01、綠色數字 1」表示交易 1 序號減碼賣出 1 張。
  • 「綠框 #02、綠色數字 1」表示交易 2 序號出場賣出 1 張。

XS自動交易執行回測入口

若要執行XS自動交易回測,有三個地方可以執行,分別是「XS自動交易中心工作區」、「XS自動交易中心目錄區」、「XScript編輯器」

  • 「XS自動交易中心工作區」右上角,點選回測即可執行回測

  • 「XS自動交易中心目錄區」,點選右鍵→回測,即可執行回測

  • 從「XScript編輯器」中,開啟要執行回測的警示腳本,然後點選「回測」按鈕來執行回測

以上說明到此告一段落,預祝大家可以使用模擬成交回測功能,找出優質的交易策略,早日取得交易聖杯!謝謝大家。