最新消息
2024
08
/
21
TQuant Lab 超級趨勢策略,低買高賣賺取波段價差
超級趨勢指標 ( SuperTrend Indicator ) 是一種技術分析工具,用於識別金融市場中的趨勢走向,幫助投資人判別波段的相對高點及低點,進而做出買賣決策,因此超級趨勢指標特別適合無法判別股價走向,或是常常太早退場、錯過波段漲幅的投資人。
2024
08
/
23
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% |