Co-Pilot
Updated a month ago

shioaji

SSinotrade
0.2k
sinotrade/shioaji
80
Agent Score

💡 Summary

Shioaji is a comprehensive trading API for accessing Taiwan's financial markets using Python.

🎯 Target Audience

Retail traders looking to automate their trading strategies.Data scientists interested in financial modeling.Developers creating trading applications.Financial analysts seeking real-time market data.Students learning about trading and financial APIs.

🤖 AI Roast:The README suggests network access for trading operations, which poses risks like unauthorized access and data leaks. Implementing API key management and secure storage practices c

Security AnalysisMedium Risk

The README suggests network access for trading operations, which poses risks like unauthorized access and data leaks. Implementing API key management and secure storage practices can mitigate these risks.

Shioaji

shioaji-logosinopac-logo

PyPI - Status PyPI - Python Version PyPI - Downloads Coverage Binder doc Telegram

Shioaji is a trading API provided by Sinopac that offers a comprehensive and user-friendly platform for accessing the Taiwan financial markets. With Shioaji, you can trade a variety of financial instruments including stocks, futures, and options using your favorite Python packages such as numpy, scipy, pandas, pytorch, or tensorflow to build your own custom trading models. The platform is easy to use and intuitive, with advanced charting tools, real-time market data, and a customizable interface that allows you to tailor your trading experience to your specific needs. Shioaji is fast and efficient, with a high-performance core implemented in C++ and using FPGA event broker technology, and it is the first Python trading API in Taiwan that is compatible with Linux and Mac, making it a truly cross-platform solution. Whether you are a beginner looking to get started in the world of trading or an experienced trader looking for a more powerful platform, Shioaji has something to offer. Sign up for a free account today and start trading with confidence.

First Taiwan trading API with AI coding agent skill supportClaude Code & Codex CLI

AI Coding Agent Skills

Shioaji is the first Taiwan trading API with AI coding agent skill support. Get AI-assisted guidance on using the Shioaji API.

Claude Code

claude plugin marketplace add Sinotrade/Shioaji claude plugin install shioaji

OpenAI Codex CLI

In a Codex session, use the skill-installer:

$skill-installer install shioaji from Sinotrade/Shioaji --path skills/shioaji

Installation

Binaries

simple using pip to install

pip install shioaji

update shioaji with

pip install -U shioaji

uv

using uv to install

uv add shioaji 

install speed version

uv add shioaji --extra speed

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_TOKEN", "YOUR_SECRET_KEY") api.activate_ca( ca_path="/c/your/ca/path/Sinopac.pfx", ca_passwd="YOUR_CA_PASSWORD", )

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.StockPriceType.LMT, order_type=sj.constant.OrderType.ROD, order_lot=sj.constant.StockOrderLot.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

Telegram

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, CC.Chiao and Po Chien Yang with major contributions.

5-Dim Analysis
Clarity8/10
Novelty8/10
Utility9/10
Completeness8/10
Maintainability7/10
Pros & Cons

Pros

  • User-friendly interface for Python developers.
  • Supports a wide range of financial instruments.
  • Real-time market data streaming.
  • Cross-platform compatibility.

Cons

  • Limited to Taiwan's financial markets.
  • May require additional setup for advanced features.
  • Documentation could be more detailed.
  • Dependency on external libraries.

Related Skills

pytorch

S
toolCode Lib
92/ 100

“It's the Swiss Army knife of deep learning, but good luck figuring out which of the 47 installation methods is the one that won't break your system.”

agno

S
toolCode Lib
90/ 100

“It promises to be the Kubernetes for agents, but let's see if developers have the patience to learn yet another orchestration layer.”

nuxt-skills

S
toolCo-Pilot
90/ 100

“It's essentially a well-organized cheat sheet that turns your AI assistant into a Nuxt framework parrot.”

Disclaimer: This content is sourced from GitHub open source projects for display and rating purposes only.

Copyright belongs to the original author Sinotrade.