最新消息
2024
11
/
08
元富證 API 初學者指南:如何利用 TQuant Lab 策略進行自動化下單
在現代金融市場中,程式交易逐漸成為投資者提升效率與降低風險的重要工具。也有越來越多的券商開始提供 API 服務,讓投資人能夠自動化下單、快速反應市場變動。本文將介紹如何利用元富證 API 進行自動化下單,並結合 TQuant Lab ...
2024
10
/
28
新手疑難雜症,幫你解答對於 TQuant Lab 的所有問題。
在使用 TQuant Lab 進行回測和策略分析時,新手可能會遇到一些技術上的挑戰和問題。本文將提供一些解決方法和技巧,幫助使用者更順利地進行策略開發和回測,提升效率與準確度。希望這些資訊能夠對大家有所幫助,解決各位的新手疑難雜症。
2024
07
/
10
Google Colab 運行 TQuant Lab 使用教學及常見錯誤
對於想使用 TQuant Lab 的同學們來說,除了原本的 GitHub 安裝教學,現在提供了一個更快速、簡潔的方式,讓我們可以在 Google Colab 上直接使用,無需設定虛擬環境,大大降低了使用門檻。
TQuant Lab
三大特點
以全台最完善的資料品質與內容,搭配最強大的事件驅動型回測系統,提供使用者開發與策略驗證的絕佳工具
瞭解更多模組化建構您的策略
模組化架構讓程式碼在撰寫時高度自由化,可將策略步驟化處理,同時處理多重標的買賣,並完整呈現策略績效與風險指標
龐大且高品質的資料庫
完整且即時的資料庫系統,經過層層把關與維護,讓您的回測績效不失真
強大、嚴謹的回測分析套件
四大 Python 分析工具,並提供多樣化參數讓您調整,全方位模擬市場交易環境,提升分析結果的可信度
產品內容介紹
TQuant Lab 一站式的量化研究平台
提供全台最完整的 PIT 量化資料庫和資料歸納工具(TEJ Tool API),搭配專業的因子分析工具、全方面的策略回測引擎和詳細的可視化報表呈現,通通一站式解決,劍指成為使用者在量化投資之路上的一大利器。
*PIT(Point In Time):過去歷史當下所能取得的最新資料,若使用錯誤資料恐造成前視偏誤問題,即策略績效將嚴重失準。
TQuant Lab 獨家功能
- TEJ 採用 Quantopian 公司所提供的 Zipline 套件,修改成符合台灣金融市場交易的回測引擎,經過多年發展,已是國際常用的量化平台基礎回測架構
- 由 TEJ 專業量化分析團隊維護,不定時推出專屬的新功能,可同時回測股票與 ETF 等多種商品
- 回測時,日誌自動顯示投資組合每日持有股票之各項紀錄,包含現金股利、股票股利等資訊,貼合市場真實情境
# TEJ獨家開發的輕量化 Zipline 回測引擎,最少僅需輸入您的策略建構式 pipeline 即可回測,亦可客製化各項參數
from zipline.algo.pipeline_algo import *
algo = TargetPercentPipeAlgo(
start_session=start_dt,
end_session=end_dt,
capital_base=1e6,
tradeday=tradeday,
max_leverage=0.80,
slippage_model=slippage.VolumeShareSlippage(volume_limit=0.15, price_impact=0.01),
pipeline=compute_signals,
analyze=analyze
)
results = algo.run()
- TEJ 採用 Quantopian 所提供的 Pipeline 套件,進行擴充、維護,能夠篩選、獲取特定金融數據來建構投資因子,讓使用者設計專屬投資策略
- 自動平移一期資料,確保建構策略時不會用到未來資料造成前視偏誤
- 內建多種計算函式如 zscore、SimpleMovingAverage、pearsonr、BollingerBands 等等方便您構建專屬的投資指標
- 視覺化產出流程圖,了解策略的計算過程
#Pipeline策略構建式
from zipline.pipeline.data import TQDataSet, TWEquityPricing
from zipline.pipeline.factors import SimpleMovingAverage
from zipline.pipeline import Pipeline
def compute_signals():
ind = TQDataSet.Industry.latest
volume = TQDataSet.Volume_1000_Shares.latest
mv = TQDataSet.Market_Cap_Dollars.latest
close = TWEquityPricing.close.latest
mv_filters = mv.percentile_between(80, 100)
#計算每期前20%市值公司中,近20天收盤價的移動平均
ma20 = SimpleMovingAverage(
inputs=[TWEquityPricing.close],
window_length=20,
mask=mv_filters
)
return Pipeline(columns={
'close':close,
'volume':volume,
'ind':ind,
'mv':mv,
'ma20':ma20
},
)
compute_signals().show_graph(format='svg')
- Alphalens 因子分析工具,TEJ團隊在其基礎上修改程適配台灣金融市場的版本,提供多種多樣的因子研究分析
- 報酬率分析,輕鬆組建出多空對沖投組來檢驗因子效力
- 資訊分析,觀察因子是否存在預測未來股票報酬的能力
- 週轉率分析,檢驗因子的換股頻率,是否造成太高的交易成本
- Pyfolio 是強大的策略績效分析工具,快速掌握策略的優缺點
- 一鍵產生完整的績效指標,同時產出各種視覺化報表
- 解析策略在過去歷史中,遭遇重大金融事件時是否足夠穩健
- 分析投資組合中流動性較差的股票,找出可能面臨的流動性風險
# 使用 extract_rets_pos_txn_from_zipline 將 Zipline-tej 回測出的結果進行拆分,用於後續各種績效報表中
from pyfolio.utils import extract_rets_pos_txn_from_zipline
returns, positions, transactions = extract_rets_pos_txn_from_zipline(results)
#pyfolio.tears.create_full_tear_sheet一行程式產出完整的視覺化績效報表
pyfolio.tears.create_full_tear_sheet(returns=returns,
positions=positions,
transactions=transactions,
benchmark_rets=benchmark_rets
)
# 觀察策略在各種歷史事件如2008年金融海嘯、2015年中國股災、2020年新冠疫情下的穩健性
from pyfolio.tears import create_interesting_times_tear_sheet
create_interesting_times_tear_sheet(returns, benchmark_rets)
# 檢驗個股是否有成交量太低造成出清困難的問題
pf.capacity.days_to_liquidate_positions(
positions,
market_data,
max_bar_consumption=0.2,
capital_base=1e6,
mean_volume_window=5,
).loc['20130430':]
- Zipline-tej 的事件驅動型回測可高度模擬真實市場進出的情況,提供多樣的動態與靜態滑價模型,諸如固定的點滑價成本、成交量驅動的動態滑價成本
- 台灣市場獨有的手續費成本模型以及成交訂單遞延機制
- 搭配 TEJ 資料庫提供的交易日註記,避免出現漲跌停還能順利買進的回測前視偏誤
- 不同資金容量對策略績效之影響(策略:每月定期買進市值最大的五十檔個股,無交易稅、滑價成本)
本金 |
一百萬 |
三千億 |
一兆 |
年化報酬率 |
12.04% |
11.35% |
10.83% |
累積報酬率 |
108.57% |
100.39% |
94.37% |