Shioaji是中材集团提供的用于交易台湾和全球金融市场的最pythonic API。您可以使用自己喜欢的Python软件包(例如numpy,scipy,pandas,pytorch或tensorflow)来构建自己的交易模型,并在跨平台上集成shioaji api。
简单使用pip进行安装
pip install shioaji
在Docker中以交互模式轻松运行
docker run -it sinotrade/shioaji:latest
与Jupyter Lab或笔记本一起运行
docker run -p 8888:8888 sinotrade/shioaji:jupyter
import shioaji as sj
api = sj.Shioaji()
accounts = api.login("YOUR_PERSON_ID", "YOUR_PASSWORD")
api.activate_ca(
ca_path="/c/your/ca/path/Sinopac.pfx",
ca_passwd="YOUR_CA_PASSWORD",
person_id="Person of this Ca",
)
只需像其他流行的python库一样导入我们的API库,然后导入新实例即可开始使用我们的API。登录您的帐户并激活认证,然后就可以开始下订单了。
api.quote.subscribe(api.Contracts.Stocks["2330"], quote_type="tick")
api.quote.subscribe(api.Contracts.Stocks["2330"], quote_type="bidask")
api.quote.subscribe(api.Contracts.Futures["TXFC0"], quote_type="tick")
订阅实时市场数据。只需将合约传递到报价
subscribe函数中,并提供报价类型即可接收流数据。
contract = api.Contracts.Stocks["2890"]
order = api.Order(
price=9.6,
quantity=1,
action="Buy",
price_type="LMT",
order_type="ROD",
order_lot="Common",
account=api.stock_account,
)
# or
order = api.Order(
price=9.6,
quantity=1,
action=sj.constant.Action.Buy,
price_type=sj.constant.TFTStockPriceType.LMT,
order_type=sj.constant.TFTOrderType.ROD,
order_lot=sj.constant.TFTStockOrderLot.Common,
account=api.stock_account,
)
trade = api.place_order(contract, order)
就像上面使用合同来订阅市场数据一样,那么需要定义订单。将它们传递给
place_order函数,然后它将返回描述您订单状态的交易。
本快速入门演示了如何为本地Python用户使用我们的软件包。与许多其他交易API不同,Python开发人员很难。我们专注于为用户提供更多的pythonic交易API。
有关文档的更多用法详细信息。
Shioaji的发布周期为14天。请参阅发行变更日志。如果您遇到问题,请通过提交问题告知我们。
我们感谢所有建议。如果您有任何想法要我们实施,请与我们讨论。
Shioaji目前由Sally,Yvictor,Sam,CC.Chiao和Po Chien Yang负责维护,并做出了重要贡献。