第一章:3 快速回測交易訊號


Posted by nightqwq on 2021-12-07

在上一個文章中,我們利用 finlab_crypto 模組成功製作雙均線買賣策略,這一次,我們要使用在 Github 上獲得超過一千四百顆星的開源模組「vectorbt」來針對這個策略進行回測。

a. 什麼是回測

在量化投資領域,我們將製作好的策略放入過往的行情波動中執行,並根據其成果來優化策略,然而這一切的前提是,我們假定歷史等於未來。


b. vectorbt

首先先 Google「vectorbt」並選取箭頭指向位置:

進入官網後,可以使用瀏覽器的頁面尋找功能輸入「Document」並點選箭頭指向位置:

進入官網介紹後,在左方的搜尋引擎裡面搜尋「portfolio」並點選箭頭指向位置:

之後,在左邊寫著「index」的地方不斷往下滑到箭頭指向位置,這裡有「vectorbt」的各種功能使用介紹,包含顯示每年的年化報酬率、最大風險等等,有興趣的話歡迎到裡面自行探索。

而在本章中,我們會使用裡面較為常用的功能「總體的報酬率」跟「每一次交易的詳情」來進行回測。


c. 開始回測

首先導入「vectorbt」:

import vectorbt as vbt

然後製作回測數據:

portfolio = vbt.Portfolio.from_signals(close, entries, exits, freq = '4h')

上例程式碼的思考模式:用 vbt 建構一個 portfolio,從 signals 獲取訊號,在括號裡面輸入收盤價格、進場點、出場點、交易頻率,並將製作好的數據傳到「portfolio」這個變數裡面。

製作好回測數據以後,利用 vectorbt 裡的一個方法「cumulative_returns()」來顯示總體報酬率,並以視覺化圖表呈現:

再來,我們使用下列程式碼,檢視每次交易的詳細情況:

portfolio.positions().records

如下圖:

於是,我們已完成一次最簡單的回測技巧。


今天先到這邊。

下一節,我們來將策略進行打包。


#加密貨幣 #Python







Related Posts

來學 React 吧之八_部署 React App

來學 React 吧之八_部署 React App

前言&第一天記錄

前言&第一天記錄

[ wee7 ] DOM 筆記

[ wee7 ] DOM 筆記


Comments