Skip to main content

Sinopac All New Trading Api.

Project description

Shioaji

shioaji-logosinopac-logo

PyPI - Status PyPI - Python Version PyPI - Downloads Build - Status

Coverage Binder doc Gitter GitHub Workflow Status (branch)

Shioaji is sinopac provide the most pythonic api for trading the taiwan and global financial market. You can use your favorite Python packages such as numpy, scipy, pandas, pytorch or tensorflow to build your own trading model with intergrated the shioaji api on cross platform.

Installation

Binaries

simple using pip to install

pip install shioaji

Docker Image

simple run with interactive mode in docker

docker run -it sinotrade/shioaji:latest

run with jupyter lab or notebook

docker run -p 8888:8888 sinotrade/shioaji:jupyter

Quickstarts

Initialization

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",
)

Just import our API library like other popular python library and new the instance to start using our API. Login your account and activate the certification then you can start placing order.

Streaming Market Data

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 the real time market data. Simplely pass contract into quote subscribe function and give the quote type will receive the streaming data.

Place Order

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)

Like the above subscribing market data using the contract, then need to define the order. Pass them into place_order function, then it will return the trade that describe the status of your order.

Conclusion

This quickstart demonstrates how easy to use our package for native Python users. Unlike many other trading API is hard for Python developer. We focus on making more pythonic trading API for our users.

More usage detail on document.

doc

Communication

Gitter

  • Gitter: general chat, online discussions, collaboration etc.
  • GitHub issues: bug reports, feature requests, install issues, RFCs, thoughts, etc.

Releases and Contributing

Shioaji has a 14 day release cycle. See the release change log. Please let us know if you encounter a bug by filing an issue.

We appreciate all suggestions. If you have any idea want us to implement, please discuss with us in gitter.

The Team

Shioaji is currently maintained by Sally, Yvictor, Sam, CC.Chiao and Po Chien Yang with major contributions.

Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for shioaji, version 0.3.0.dev4
Filename, size File type Python version Upload date Hashes
Filename, size shioaji-0.3.0.dev4-cp36-cp36m-macosx_10_14_x86_64.whl (911.9 kB) File type Wheel Python version cp36 Upload date Hashes View
Filename, size shioaji-0.3.0.dev4-cp36-cp36m-manylinux1_x86_64.whl (4.7 MB) File type Wheel Python version cp36 Upload date Hashes View
Filename, size shioaji-0.3.0.dev4-cp36-cp36m-manylinux2010_x86_64.whl (4.9 MB) File type Wheel Python version cp36 Upload date Hashes View
Filename, size shioaji-0.3.0.dev4-cp36-cp36m-win_amd64.whl (1.8 MB) File type Wheel Python version cp36 Upload date Hashes View
Filename, size shioaji-0.3.0.dev4-cp37-cp37m-macosx_10_14_x86_64.whl (879.1 kB) File type Wheel Python version cp37 Upload date Hashes View
Filename, size shioaji-0.3.0.dev4-cp37-cp37m-manylinux1_x86_64.whl (4.7 MB) File type Wheel Python version cp37 Upload date Hashes View
Filename, size shioaji-0.3.0.dev4-cp37-cp37m-manylinux2010_x86_64.whl (4.9 MB) File type Wheel Python version cp37 Upload date Hashes View
Filename, size shioaji-0.3.0.dev4-cp37-cp37m-win_amd64.whl (1.8 MB) File type Wheel Python version cp37 Upload date Hashes View
Filename, size shioaji-0.3.0.dev4-cp38-cp38-macosx_10_14_x86_64.whl (895.5 kB) File type Wheel Python version cp38 Upload date Hashes View
Filename, size shioaji-0.3.0.dev4-cp38-cp38-manylinux1_x86_64.whl (5.0 MB) File type Wheel Python version cp38 Upload date Hashes View
Filename, size shioaji-0.3.0.dev4-cp38-cp38-manylinux2010_x86_64.whl (6.0 MB) File type Wheel Python version cp38 Upload date Hashes View
Filename, size shioaji-0.3.0.dev4-cp38-cp38-win_amd64.whl (1.8 MB) File type Wheel Python version cp38 Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page