請更新您的瀏覽器

您使用的瀏覽器版本較舊,已不再受支援。建議您更新瀏覽器版本,以獲得最佳使用體驗。

理財

元富證 API 初學者指南:如何利用 TQuant Lab 策略進行自動化下單

TEJ 台灣經濟新報

更新於 2024年11月28日15:04 • 發布於 2024年11月08日05:30
元富證 API 初學者指南:如何利用 TQuant Lab 策略進行自動化下單

Photo byWalkator onUnsplash

前言

在現代金融市場中,程式交易逐漸成為投資者提升效率與降低風險的重要工具。也有越來越多的券商開始提供 API 服務,讓投資人能夠自動化下單、快速反應市場變動。本文將介紹如何利用元富證 API 進行自動化下單,並結合 TQuant Lab 的策略,實際操作展示如何透過程式化的方式優化投資決策。透過這套流程,投資者能夠更好地掌握市場機會,提升投資績效。

策略範例

本文以巴菲特企業投資法則為範例,詳細介紹可以參考 TQuant Lab 華倫.巴菲特企業投資法則

範例摘要

此策略使用的量化指標有

  • 最近年度股東權益報酬率 > 產業平均值
  • 3 年平均股東權益報酬率 > 15%
  • 最近年度毛利率 > 產業平均值
  • 7 年內市值增加值 / 7 年內保留盈餘增加值 > 1
  • ( 最近年度自由現金流量 / 7 年前自由現金流量 ) - 1 > 1

因為股東權益報酬率可以藉由增加舉債來提升,因此我們排除金融產業這類高槓桿的產業。另外對於每一元的保留盈餘,巴菲特希望企業能創造超過一元的市場價值,由於這牽涉到公司的上市年限是否夠久,因此我們篩選上市時間大於 7 年的公司。

使用 TejToolAPI 抓取所需的財務資料

根據企業投資法則中的選股條件,我們需要的財務科目有以下 7 項:

  • 主產業別_中文
  • 常續 ROE
  • 營業毛利率
  • 個股市值_元
  • 保留盈餘
  • 營運產生現金流量
  • 投資產生現金流量

其中營運產生現金流量與投資產生現金流量可用以計算自由現金流量。

自由現金流量 = 營運產生現金流量 + (-)投資產生現金流量

而投資產生現金流量多為負數。

p.s.

取出符合 5 項選股條件的標的

我們選擇 2015-12-31 符合條件的股票,每個一條件都會做一個 set ,最後取交集得到符合條件的標的

將符合上述 5 項選股條件的股票取交集即可獲得我們的標的,可以發現以電子零組件業與半導體業為大宗。

符合 5 項選股條件之標的

這樣就得到我們利用此策略選出來的股票池,接下來就進入正式的下單環節。

環境設置與套件安裝

驗證流程包含

自動化下單

交易流程範例可以參考API 文件範本

首先,你需要安裝 MasterTradePy ,能夠幫助你實現自動化交易策略。

要下載 API 檔案可以到元富數位 API 專區

要在終端機先使用 CD 指令切到 MasterTradePy 資料夾

cd MasterTradePy pip install MasterTradePy-0.0.15-py3-none-win_amd64.whl

引入套件

回到編譯器內,開啟使用 API 所需要的套件。

import threading from MasterTradePy.api import MasterTradeAPI from MasterTradePy.model import * from MasterTradePy.constant import PriceType, OrderType, TradingSession, Side, TradingUnit, RCode

初始化設定

設定帳號、密碼以及目標股票代碼。

這裡我們將股票代碼設置成一個列表,放入巴菲特策略所選出來的股票池。

username = 'your_username' password = 'your_password' stock_id_list = [ 1476, 1477, 2467, 3006, 3014, 3034, 3042, 3413, 3533, 3557, 5234, 5269, 6202, 8016, 8046, 8081, 9906 ]

event = threading.Event() 是用來控制多線程之間的同步,特別是使用 API 進行交易時,確保某些事件(如連接成功)發生後,才讓其他部分的程式繼續執行。

event = threading.Event()

執行訂單

我們以市價買入股票池中的所有股票。

def execute_order(api, stock_id_list): account = 'your_account' price = '' # 空白表示市價下單 qtr = '1000' # 1張請輸入1000 orderType = OrderType.ROD if not price: priceType = PriceType.MKT else: priceType = PriceType.LMT for stock_id in stock_id_list: symbol = stock_id order = Order(tradingSession=TradingSession.NORMAL, side=Side.Buy, symbol=symbol, priceType=priceType, price=price, tradingUnit=TradingUnit.COMMON, qty=qty, orderType=orderType, tradingAccount=account, userDef='') rcode = api.NewOrder(order) if rcode == RCode.OK: print(f'已送出委託: {symbol}') else: print(f'下單失敗! 股票代號: {symbol},請再次執行程式,依據回報資料修正輸入')

自動化下單主程式流程

整個程式的主要流程如下:

  • 登入交易 API,並進行雙因子認證。
  • 自動下單買入股票。 def main(): trader = ConcreteMarketTrader() api = MasterTradeAPI(trader) api.SetConnectionHost('solace140.masterlink.com.tw:55555') # 登入交易主機 rc = api.Login(username, password, True, True, True) if rc == RCode.OK: print('交易主機連線成功,進行雙因子認證') # 取得帳戶並進行驗證 accounts = [x[4:] for x in api.accounts] rcc = api.CheckAccs(tradingAccounts=accounts) if rcc == RCode.OK: print('驗證已通過,可執行 API 交易功能') execute_order(api, stock_id_list) input("Press Enter to finish…\n") main()

結論

本文透過範例展示了如何利用元富證券的 API 進行自動化下單操作,並結合巴菲特價值投資策略進行實際應用。我們介紹了如何設定交易環境、執行策略以及下單流程,讓投資人能夠藉由程式交易的方式提高交易效率,下一篇會繼續介紹永豐 API 的使用方法以及範例使用,帶各位進入程式交易的領域。
提醒,本文巴菲特選股法則與 API 自動下單程式僅做示範之用,不為獲利保證來源。投資一定有風險,投資策略有賺有賠,使用者參考本文開發投資策略時,建議參酌自已與外部資訊,增加指定每檔股票的下單股數與價格,並嚴格控管風險。

未來,TEJ 也會持續使用 TEJ 資料庫及 TQuant Lab 來建構各式指標,並回測指標績效,所以歡迎對各種交易回測有興趣的讀者,選購 TQuant Lab 的相關方案,用高品質的資料庫,建構出適合自己的交易策略。

【TQuant Lab 回測系統】解決你的量化金融痛點

全方位提供交易回測所需工具

點我註冊會員,開始試用

原始程式碼

點此前往 github

延伸閱讀

查看原始文章

更多理財相關文章

01

ATM新制今上路!8大銀行「宣布新規」 有錢也領不出來

TVBS
02

特斯拉AI晶片選三星非台積?分析師曝關鍵!

NOWnews 今日新聞
03

股市觀察》兩周內決戰!台股要崩了?分析師揭「假利空真洗盤」真相

新頭殼
04

海角36億元拿不回外傳要賣街口電支股票 泰山反應曝光

鏡週刊
05

AI股太貴、非龍頭股不敢買?億級投資人:現在這種產品是好選擇

商周.com
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
查看更多

留言 0

沒有留言。

最新消息

鉅亨買幣速報 - 以太幣(ETH)24小時成交量超過22.6億美元,LTO Network(LTO)24小時漲幅達54.8%

anue鉅亨網

輝達H20晶片重啟對中國出口 傳向台積電追加代工訂單

商傳媒

矽谷最神秘公司 Palantir 現身台灣,自揭市場差異化的關鍵優勢

TechOrange 科技報橘

〈國巨法說〉Q2業外影響每股純益1.03元 上半年仍賺逾2股本

anue鉅亨網

盤後速報 - 大台北(9908)次交易(30)日除息1.2元,參考價30.05元

anue鉅亨網

盤後速報 - 大汽電(8931)次交易(30)日除息2元,參考價50.8元

anue鉅亨網

盤後速報 - 上洋(6728)次交易(30)日除息8元,參考價153.0元

anue鉅亨網

盤後速報 - 伊雲谷(6689)次交易(30)日除息2元,參考價79.1元

anue鉅亨網

盤後速報 - 動力-KY(6591)次交易(30)日除息2.35元,參考價64.75元

anue鉅亨網

盤後速報 - 瑞祺電通(6416)次交易(30)日除息2.9元,參考價84.4元

anue鉅亨網

盤後速報 - 大城地產(6171)次交易(30)日除息2.5元,參考價33.1元

anue鉅亨網

盤後速報 - 久威(6114)次交易(30)日除息0.5元,參考價35.75元

anue鉅亨網

盤後速報 - 中租-KY甲特(5871A)次交易(30)日除息3.8元,參考價98.2元

anue鉅亨網

盤後速報 - 中租-KY(5871)次交易(30)日除權息6.3元,參考價118.04元

anue鉅亨網

盤後速報 - 遠雄港(5607)次交易(30)日除權息1.3元,參考價43.24元

anue鉅亨網

盤後速報 - 宣德(5457)次交易(30)日除息1.3元,參考價42.0元

anue鉅亨網

盤後速報 - 國眾(5410)次交易(30)日除息1.5元,參考價27.25元

anue鉅亨網

盤後速報 - 強信-KY(4560)次交易(30)日除息1.2元,參考價34.0元

anue鉅亨網

盤後速報 - 冠星-KY(4439)次交易(30)日除息2元,參考價90.0元

anue鉅亨網

盤後速報 - 東隆興(4401)次交易(30)日除息0.7元,參考價15.45元

anue鉅亨網

盤後速報 - 世坤(4305)次交易(30)日除息3.2元,參考價45.55元

anue鉅亨網

盤後速報 - 中華食(4205)次交易(30)日除權息3元,參考價86.91元

anue鉅亨網

AI需求助攻,國巨Q2本業獲利站11季高點,Q3營收、雙率向上

財訊快報

盤後速報 - 先益(3531)次交易(30)日除息0.8元,參考價22.75元

anue鉅亨網

盤後速報 - 晶睿(3454)次交易(30)日除息2.3元,參考價104.2元

anue鉅亨網

盤後速報 - 弘憶股(3312)次交易(30)日除息1.4元,參考價45.7元

anue鉅亨網

盤後速報 - 綠意(2596)次交易(30)日除息1元,參考價30.05元

anue鉅亨網

盤後速報 - 皇普(2528)次交易(30)日除權0.5元,參考價27.43元

anue鉅亨網

盤後速報 - 怡利電(2497)次交易(30)日除息2元,參考價39.0元

anue鉅亨網

盤後速報 - 技嘉(2376)次交易(30)日除息10元,參考價272.5元

anue鉅亨網

盤後速報 - 矽統(2363)次交易(30)日除息0.5元,參考價55.1元

anue鉅亨網

盤後速報 - 智邦(2345)次交易(30)日除息11元,參考價841.0元

anue鉅亨網

盤後速報 - 宇隆(2233)次交易(30)日除息7元,參考價172.0元

anue鉅亨網

盤後速報 - 力肯(1570)次交易(30)日除息1.3元,參考價22.6元

anue鉅亨網

盤後速報 - 元山(6275)下週(8月5日)除息2.26元,預估參考價41.39元

anue鉅亨網

盤後速報 - 達麗(6177)下週(8月5日)除權息4元,預估參考價40.24元

anue鉅亨網

盤後速報 - 宜特(3289)下週(8月5日)除息1元,預估參考價121.0元

anue鉅亨網

盤後速報 - 力特(3051)下週(8月5日)除息1.52元,預估參考價23.78元

anue鉅亨網

盤後速報 - 臺企銀(2834)下週(8月5日)除權息0.8元,預估參考價15.14元

anue鉅亨網

盤後速報 - 根基(2546)下週(8月5日)除權息3.8元,預估參考價77.17元

anue鉅亨網