最新消息
2024
11
/
29
利用 Alphalens 做因素分析-以放空因子為例(II)! — TEJ 量化投資月報 8 期
在進行量化交易前,投資者往往需要進行大量分析來確保策略的可行性。然而,在資訊量爆炸的情況下,資料處理與分析工作既耗時又繁瑣,對於新手來說即使是起點也是居高不下。 而 TQuant Lab 中的 Alphalens-tej 套件就是一個因素分析的工具!若能妥善運用便可大幅降低資訊的消耗。 ...
2024
11
/
22
程式交易指南:如何利用 TQuant Lab 策略結合永豐 API 進行自動化下單
程式交易真的那麼遙不可及嗎?事實上,台股的程式交易份額以年增 20% 的速度逐年上升,本文也將和大家介紹永豐金證券推出的程式交易 API:Shioaji,其使用原生 Python 環境打造的生態系統使程式碼易於撰寫,也使永豐 API 佔有台股程式交易約一半的份額。本文將帶大家透過 TQuant La...
2024
11
/
15
用 Alphalens 剖析因子表現,外資因子篇
本系列文章將利用 Alphalens 來探索幾個關鍵的因子,逐步分析不同的因子對市場表現的影響。第一篇文章聚焦於「外資資金」,解析國外資金進入市場所帶來的影響;接著,我們將探討「價值因子」,並研究其如何反映企業的內在價值;最後一篇將深入分析「價量因子」,以揭示價格與交易量之間的互動關係。 ...
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% |