在登入成功後,今天我们示范下单前,如何确认要使用哪个帐号交易。
*注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
What is RWD? “Responsive web design (RWD) is a des...
第二十六天 各位点进来的朋友,你们好阿 小的不才只能做这个系列的文章,但还是希望分享给点进来的朋友,...
当我们使用销售或是产品的模组,我们有时候会针对各种货币来做销售单,但这样会造成统计问题,所以Odoo...
前言 let shoppingList = ['Oreo', 'Tilamisu', 'snicke...