iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 24
1
Software Development

Python 程式交易 30 天新手入門系列 第 24

Day-24 回測系統:設計架構

架構考量

基本的回測系統由四大元素組成:

  1. 資料來源模組
  2. 時序運行模組
  3. 策略運行模組
  4. 交易執行模組
  5. 交易統計模組

資料來源模組

應設計為可接受來自:

  1. 歷史資料
  2. 即時訊號

如此方可確保歷史資料回測後,仍可於線上模擬實測進行觀察、評估及修正。

時序運行模組

須能按照指定設定載入:

  1. 歷史資料
  2. 指標訊號

歷史資料與指標訊號必須依時序運行,並且在指定的時間點被載入或啟用,例如 5 分 K 就只能依序運行在其所屬的 5 分鐘內,如何依照時序進行資料處理是相當重要的,因其決定回測的準確性。

策略運行模組

基本上還分為三個子模組:

  1. 資料暫存模組
  2. 演算法模組
  3. 決策模組

資料暫存模組的必要性是因為許多演算法並非只是需要當下時間的資料,可能依條件需要往回取特定數量或時間段的歷史資料或指標,才能交由演算法模組進行運算或模型模式配對,最後針對演算法模組的輸出,由決策模組中的臨界條件或者規則判斷決定是否進行交易。

交易執行模組

須考量交易執行時的各種因素,去盡量貼近真實交易,做出合理交易行為,確保回測的有效性,例如:

  1. 滑價
    並非固定送 2-3 點,還必須透過當下的歷史訊號成交價的變化率進行調整。
  2. 成本
    關係可交易的數量。

交易統計模組

針對回測時間段內所有交易,至少提供以下資訊:

  1. 交易次數
    供策略評估者確定進出場次數是否有異。
  2. 交易頻率
    供策略評估者確認交易頻率是否適用於對應盤勢。
  3. 投入成本
  4. 實際收益
  5. 投資報酬率
  6. 策略組合勝率

團隊系列文:

CSScoke - 金魚都能懂的這個網頁畫面怎麼切 - 金魚都能懂了你還怕學不會嗎
Clarence - LINE bot 好好玩 30 天玩轉 LINE API
Hina Hina - 陣列大亂鬥
King Tzeng - IoT沒那麼難!新手用JavaScript入門做自己的玩具
Vita Ora - 好 Js 不學嗎 !? JavaScript 入門中的入門。
TaTaMo - 用Python開發的網頁不能放到Github上?Lektor說可以!!


上一篇
Day-23 回測系統:歷史資料準備
下一篇
Day-25 回測系統:資料來源模組
系列文
Python 程式交易 30 天新手入門30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言