iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 18
0
AI & Data

量化交易30天系列 第 18

量化交易30天 Day18 - 串接券商API做交易(五) 使用API查帳戶概況

  • 分享至 

  • xImage
  •  

量化交易30天
本系列文章是紀錄一位量化交易新手的學習過程,除了基礎的Python語法不說明,其他金融相關的東西都會一步步地說明,希望讓更多想學習量化交易但是沒有學過相關金融知識的朋友們,透過這系列的文章,能夠對量化交易略知一二,也歡迎量化交易的高手們多多交流。

由於在交易的過程中,有些策略會是去檢測損益情況,例如:價位有達到停損或停利點的時候就賣出,那這樣的情況往往是要不斷地去檢視損益的部份,所以這篇就要來學習一下怎麼用shioaji查詢帳戶狀況啦,這邊。(一樣要記得要先用api登入跟載入憑證喔,可以先看Day16)

List Position 檢視帳上庫存

In

api.list_positions(api.stock_account)

Out

Position(code='6142', direction=<Action.Buy: 'Buy'>, quantity=13, price=8.04, pnl=1534.0, yd_quantity=29)

說明一下attributes:

code (str): contract id. 股票代號
direction (Action): action.{Buy, Sell} 持倉方向
quantity (int): quantity. 庫存量
price (float): the average price. 均價
pnl (float): unrealized profit. 未實現損益
yd_quantity (int): yesterday 昨日庫存

Profit Loss 區間損益

In

import pandas as pd
pl = api.list_profit_loss(api.stock_account,'2020-05-05','2020-09-30')
df = pd.DataFrame(pl)
df

Out

說明一下attributes:

id (int): use to find detail 用來看詳細損益用的識別碼
code (str): contract id. 標的代號,股票商品的話就是股票代號啦
quantity (int): quantity. 交易數量
price (float): price. 交易價格
pnl (float): profit and loss. 盈虧
pr_ratio (float): profit rate. 獲利率

Profit Loss Detail 損益詳細資料

用上面那個id就可以來查損益的詳細資料囉,可以看到上面第一筆資料的交易量是5張,實際看下面detail時候,其實是當初分兩筆買進的股票。
In

# 後面那個2就是使用上面Profit Loss的id
detail = api.list_profit_loss_detail(api.stock_account, detail_id = 0)
df = pd.DataFrame(detail)
df

Out

一樣來看一下attributes吧:

code (str): contract id. 標的代號
quantity (int): quantity. 交易數量
price (float): price. 交易價格
cost (int): cost of price. 成本
fee (int): fee. 手續費
shortselling_fee (int): fee of short selling. 
currency (str): {NTD, USD, HKD, EUR, CAD, BAS}

settlement 交割訊息查詢

顯示最近3天的交割金額,t代表今天,t+1代表明天,t+2代表後天。
In

settlement = api.list_settlements(api.stock_account)
df = pd.DataFrame(settlement)
df

Output

帳戶餘額查詢

In

acc_balance = api.account_balance()
df = pd.DataFrame(acc_balance)
df

Output

本篇總結
這篇大概就總結一下shioaji查帳戶的功能,其實算是蠻完整的。

P.S.
如果大家對於量化交易有興趣的話,我自己有上過以下這門課,課程內容從串接股市資料API、儲存至資料庫、將自己的策略轉化成程式碼、自動下單,並且可以把整個流程自動化,每天早上執行一次,一整天就不用看盤了,覺得是蠻實戰的,可以參考看看。

筆者 Sean
奈米戶投資人 / Python愛用者
喜歡用Python玩轉金融數據,從個股基本面、技術面、籌碼面相關資料,一直到總體經濟數據,都是平常接觸到的素材;對於投資,除了研究歷史數據,也喜歡瞭解市場上大家在玩些什麼。


上一篇
量化交易30天 Day17 - 串接券商API做交易(四) 台股下單
下一篇
量化交易30天 Day19 - 串接券商API做交易(六) 讀懂委託及成交回報訊息
系列文
量化交易30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言