官网对应说明文件:https://sinotrade.github.io/tutor/login/
首先,说明如何登入Shioaji API。
如果你还没有永丰金证券户及帐号密码,或是你想先测试Shioaji API的功能,可以使用模拟帐户进行登入
模拟环境的帐号为PAPIUSER01~PAPIUSER08,登入密码皆为「2222」,登入方式如下:
import shioaji as sj #将shioaji重新命名为sj
api = sj.Shioaji(simulation=True) #初始化时,simulation设为True,代表要使用模拟环境
api.login(
person_id="PAPIUSER01",
passwd="2222"
)
api.logout() #登出
如果你有永丰金证券户,可以直接用你的电子交易的帐号密码进行登入
import os
import shioaji as sj #将shioaji重新命名为sj
api = sj.Shioaji() #初始化api,不用给任何参数
#执行登入动作
api.login(
person_id=os.getenv('YOUR_PERSON_ID'), #登入帐号
passwd=os.getenv('YOUR_PASSWORD') #登入密码
)
api.logout() #登出
为了维护Shiaoji API的服务品质,从2021/08/06开始有限制帐号的连线数(同时间最多五个连线)。
所以Shioaji API提供了logout登出功能,当你不使用Shioaji API时,请记得执行logout()进行登出。其余相关服务限制,请参考官方说明档:https://sinotrade.github.io/tutor/limit/
跟第一个使用模拟环境登入方式,除了在初始化时不给任何参数外
可以看到在这里,是使用os.getenv来取得设定在系统环境变数中的帐号及密码
因为在实务上,我们不会把帐号资讯直接写在程序码中
,而是将帐号资讯设定在环境变数中;当程序执行时再从环境变数中取得帐号资讯
之所以会这麽做,主要是为了防止在分享或上传程序码时,不小心把帐号资讯泄漏出去
但因为Windows、Linux的环境变数设定方式大不相同,而且你所使用的使用者帐号不一定会有权限可以新增环境变数,所以大多会透过设定档的方式储存帐号资讯
这里介绍python-dotenv这个套件,使用方式也很简单
首先,在命令提示字元中(若有使用虚拟环境,请记得先启动虚拟环境),输入下列指令进行安装
pip install python-dotenv
接着在存放程序码的资料夹底下,新增一个「.env」的档案,档案内容如下:
YOUR_PERSON_ID=PAPIUSER01
YOUR_PASSWORD=2222
等号前面为变数的名称,後面为变数的值,每个变数以换行方式区分
最後,将程序码修改为以下方式
import os
import shioaji as sj
from dotenv import load_dotenv #从dotenv模组中汇入load_dotenv这个function
load_dotenv() #读取设定档中的内容至环境变数
api = sj.Shioaji()
api.login(
person_id=os.getenv('YOUR_PERSON_ID'),
passwd=os.getenv('YOUR_PASSWORD')
)
api.logout()
当执行load_dotenv()时,程序就会在该资料夹底下搜寻是否有「.env」这个档案,如果有就将变数名称及值读入至环境变数中
当然,你也可以把帐号资讯存在别的资料夹底下,在使用时只要指定env档案的完整路径即可,例如:
load_dotenv('D:\Shioaji\my_account.env')
登入後,我们可以看一下这个帐号底下有哪些帐户。取得帐户资讯有两种,第一种是在执行login时,定义一个变数储存回传的帐户资讯;第二种是在login後,执行list_accounts()取得帐户资讯。这两种方式,取得的内容都是相同的,范例如下:
accounts = api.login(
person_id=os.getenv('YOUR_PERSON_ID'),
passwd=os.getenv('YOUR_PASSWORD')
)
accounts = api.list_accounts()
若你登入虚拟环境後,执行print(accounts),会显示以下内容
[FutureAccount(person_id='QBCCAIGJBJ', broker_id='F002000', account_id='9100020', signed=True, username='PAPIUSER01'), StockAccount(person_id='QBCCAIGJBJ', broker_id='9A95', account_id='0504350', signed=True, username='PAPIUSER01')]
可以看到虚拟环境帐号底下,分别有FutureAccount期货帐户及StockAccount股票帐户,相关变数说明如下:
变数名称 | 说明 | |
---|---|---|
person_id | 身份证号码 | |
broker_id | 券商分点号码 | |
account_id | 帐户号码 | |
signed | 是否已签署API下单 | 若帐号资讯无此变数,表示此帐户尚未签署API下单 |
username | 使用者名称 | 若使用个人帐号登入,此栏位显示你的姓名 |
若你的帐户尚未签署API下单,可开启永丰金iLeader,找到「数位e柜台」并开启
点「签署中心」
签署中心中,有分「证券类」及「期货类」
若已签署,则左上角会显示「已签署」
若左上角显示「未签署」,则可以点进去进行签署动作
当你把产品包装好之後, 要怎麽销售出去呢? 『销售』套用在系统开发上面就是怎麽让外部的系统能够使用到...
JAVA 优点: 跨平台 物件导向特性 广泛应用於企业及 Web 应用开发和行动应用开发。 编译语言...
Springboot AJAX ...
SwiftUI Essentials - Creating and Combining Views ...
Kadence Blocks 是近两三年积极发展的区块组合套件外挂,主打《区块 Block》作为建...