Day4 - 如何设定预设交易帐号

在登入成功後,今天我们示范下单前,如何确认要使用哪个帐号交易。

*注1: Shioaji的各项功能(订阅报价/下单..等),范围涵盖了证券与期货商品,下单会有证券户与期货户的差别。而有些投资人在永丰金证券或期货,也有可能有多个帐号,因此下单之前就有必要对交易帐号进行设定。
*注2: 无法登入的朋友,如果您已经在永丰金证券开户完成,但还未签署Python API使用申请,务必要先完成文件签署才能使用Shioaji各项功能。请参考这里

查看交易帐号的方式,第一种是登入就能看,范例:

#登入时,一并显示帐号讯息
import shioaji as sj
api = sj.Shioaji()
api.login(
    person_id="填入个人帐号(通常是身分证)", 
    passwd="个人密码", 
    contracts_cb=lambda security_type: print(f"{repr(security_type)} fetch done.")
)

执行後,正常的话会看到下列回覆讯息。黄色框起来的部分,就可以看到个人帐户资料,StockAccount代表证券帐户、FutureAccount代表期货帐户。

另一种是用下列指令查看帐户资料,就可以取得跟上图黄色部分一样的讯息。

accounts = api.list_accounts()
accounts

接下来查看预设的帐号,一样是有分为证券与期货两种,指令如下:

# Stock default account  证券目前的预设帐户
print(api.stock_account)

# Futures default account 期货目前的预设帐户
print(api.futopt_account)

接下来是设定下单的时候要用哪一个帐号,第一种方式是在order当中放入指定account资讯。请参考下列程序码的注解。关於下单order的其他内容,我们之後再细谈。

# stock order    证券商品下单指令
order = api.Order(
    price=12, 
    quantity=1, 
    action=sj.constant.Action.Buy, 
    price_type=sj.constant.StockPriceType.LMT, 
    order_type=sj.constant.TFTOrderType.ROD, 
    order_lot=sj.constant.TFTStockOrderLot.Common, 
    account=api.stock_account   #这一行指定帐户
)

# futures order  期货商品下单指令
order = api.Order(
    action=sj.constant.Action.Buy,
    price=10200,
    quantity=2,
    price_type=sj.constant.StockPriceType.LMT,
    order_type=sj.constant.FuturesOrderType.ROD, 
    octype=sj.constant.FuturesOCType.Auto,
    account=api.futopt_account   #这一行指定帐户
)

另一个方式是直接设定预设的帐户,程序码如下

# stock default account  设定证券帐户
api.set_default_account(accounts[-1])
print(api.stock_account)

# futures default account  设定期货帐户
api.set_default_account(accounts[1])
print(api.futopt_account)

上述程序码的accounts型态是list。中括号内填入的是list内容的顺序位置,从0开始起算代表第1个,1代表第2个。范例中的-1代表是最後第一个,如果是-2就是倒数第二个。对list使用不了解的朋友可以再查询一下Python语言的list用法。

以上就是今天的分享,如果有问题欢迎留言讨论,如果有不正确的地方也请多指教,谢谢。


<<:  用React刻自己的投资Dashboard Day4 - highcharts制作线图

>>:  {DAY 7} SQL 资料表的处理:Deleting, Altering & Dropping

#8 Web Layout: RWD

What is RWD? “Responsive web design (RWD) is a des...

Logo 语言和你 SAY HELLO!!

第二十六天 各位点进来的朋友,你们好阿 小的不才只能做这个系列的文章,但还是希望分享给点进来的朋友,...

Day23 Let's ODOO: Currency

当我们使用销售或是产品的模组,我们有时候会针对各种货币来做销售单,但这样会造成统计问题,所以Odoo...

D11 - 分子料理 解构赋值 Destructing Assignment

前言 let shoppingList = ['Oreo', 'Tilamisu', 'snicke...