与 IBKR 等券商不同,在使用嘉信理财进行量化交易前,需要手动申请开发者权限并创建 App,该申请需要嘉信理财后台人工审批,因此时间较久,全程可能长达10~15个工作日。如需对接嘉信理财,请尽早提交申请。
1. 申请嘉信理财的开发者权限
前往嘉信理财开发者门户 (https://developer.schwab.com/) 注册账号,请注意:此账号与嘉信理财的交易账户是不同的概念(此账号仅用于管理 Wall-API 对接嘉信理财的相关事项),但仍需使用与嘉信理财交易账户相同的预留信息,如姓名、邮箱、手机号等,否则后续申请步骤很有可能会被拒绝。
Tips 1:由于大陆手机号接收境外验证码困难,如果有条件的话,请在嘉信理财的证券账户和开发者账户中尽量绑定境外手机号,否则可能会遇到接收不到验证码短信/电话等问题。
Tips 2:若在登录嘉信理财的证券账户已经遇到此类问题,请直接在美东工作时间联系嘉信理财电话客服(人工客服),获取一次性验证码来登录。成功登陆后尽快到设置中开启两步认证,之后再登录证券账户就只需要 “VIP Access” 应用上显示的6位数字即可,无需接收短信或电话。
Tips 3:对于嘉信理财的证券账户,修改手机号可以直接电话联系人工客服处理。请务必在处理好手机号的问题后再尝试注册嘉信理财开发者门户,因为下面的步骤需要接收验证码或电话。
注册完成后,按下图步骤请求 “Trader API - Individual” 的访问权限。
此步骤大约需要1~2个工作日来批准,在批准后,可以继续进行创建 App 的操作。
创建 App 的过程同样需要审批,时间上可能需要10个工作日以上,嘉信理财后台会隔一段时间集中审批一次,并非提交申请后立即处理,请耐心等待。如有疑问,请使用英文撰写邮件来联系 TraderAPI@Schwab.com
,建议不要致电嘉信理财来询问开发者门户的相关问题,他们是不同的团队在负责,致电可能不会得到有效回复。
在 App 的状态更新为 “Ready For Use” 后,即可将相关信息填入 WallTrading-API 的配置文件中。
请务必注意:“App Key” 、“Secret” 是关乎账户财产安全的重要凭据,请务必保密,一旦泄露,请立即前往嘉信理财开发者门户执行 “Deactivate App” 操作后再新建一个 App,否则可能会导致财产损失!!!
2. 配置 WallTrading-API
编辑 WallTrading-API 项目中的env/_secrete.py
文件,填入账户的相关信息,即:嘉信理财的8位数字账号 、“App Key”、“Secret”:
编辑trading_settings.py
文件,将TRADING_BROKER
的值修改为SCHWAB
:
这样,运行在服务器中的 WallTrading-API 就配置完成啦。
3. 获取 Token
与 IBKR 等需要在服务器上另外安装软件的券商不同,嘉信理财只需要定期获取 Token 即可。
根据嘉信理财的要求,每次获取的 Token 的有效期为7天,过期自动失效,失效后 WallTrading-API 将不能执行下单等操作。因此,为避免周中出现 Token 失效影响下单的情况,建议在每周日或周一开盘前重新获取一次 Token。
进入以下代码仓库:
https://github.com/angustar/schwab-generate-token
有编程基础的股东朋友可以根据README.md
的提示操作,否则请使用一台 Windows 系统的电脑直接下载schwab-generate-token.exe
软件并执行:
以下步骤请全程使用本地网络完成,切勿使用任何代理软件,否则会导致 Token 获取失败!
在软件中输入相关的信息(点击鼠标右键粘贴)后,根据提示将红框中的链接复制到浏览器中打开:
使用嘉信理财的交易账户登录(非前面注册的嘉信理财开发者门户账号):
根据提示完成账户登录后,根据提示完成后续操作,再点击Done
:
出现下图中的界面后,复制浏览器的完整链接(非常非常长,请务必完整复制):
将复制的链接粘贴回软件中(点击鼠标右键粘贴):
如果没有报错的话,会在当前目录生成_schwab_token.json
文件,这个文件就是我们需要使用的 Token。接下来,把这个_schwab_token.json
文件放入 WallTrading-API 项目中的env
目录下即可:
请务必注意:与前文提到的 “App Key” 、“Secret” 一样,_schwab_token.json
同样是关乎账户财产安全的重要凭据,请务必保密,如果这三者同时泄露,一定会导致财产损失!!!