shioaji day trading demo package
Last updated Mar 27, 2025
32
Stars
10
Forks
0
Issues
0
Stars/day
Attention Score
26
Language breakdown
No language data available.
▸ Files
click to expand
README
sjtrade
shioaji day trading demo package
Install
pip install sjtrade
Get started
Init Shioaji and SjTrader
python
import shioaji as sj
import sjtrade
api = sj.Shioaji() accounts = api.login(**login_kws) sjtrader = sjtrade.SJTrader(api)
Set Position Filepath and Preview Position
python
sjtrader.position_filepath = "position.txt"
sjtrade.io.file.readposition(sjtrader.positionfilepath)
Set Custom Position FileReader
python
from sjtrade.io.file import readcsvposition
sjtrader.readpositionfunc = readcsvposition
sjtrader.position_filepath = "position.csv"
sjtrader.readpositionfunc(sjtrader.position_filepath)
Set entrypct stopprofitpct stoploss_pct
python
sjtrader.entry_pct = 0.05
sjtrader.stopprofitpct = 0.095
sjtrader.stoplosspct = 0.09
Start sjtrader
python
sjtrader.start()
What do sjtrader start actually do
ipython
sjtrader.start??
Signature: sjtrader.start()
Source:
def start(self):
positions = readposition(self.position_filepath)
self.api.setordercallback(self.orderdealhandler)
sleep_until(8, 45)
self.placeentryorder(positions, self.entry_pct)
sleep_until(8, 54, 59)
self.api.quote.setontickstkv1callback(self.cancelpreorder_handler)
sleep_until(8, 59, 55)
self.api.quote.setontickstkv1callback(self.intradayhandler)
sleep_until(13, 25, 59)
self.openpositioncover()
File: ~/.pyenv/versions/miniconda3-latest/lib/python3.7/site-packages/sjtrade/trader.py
Type: method
Simulation
all order will be place as success and deal when price touchapi = sj.Shioaji()
accounts = api.login(**login_kws)
sjtrader = sjtrade.SJTrader(api, simulation=True)
sjtrader.position_filepath = "position.txt"
sjtrade.io.file.readposition(sjtrader.positionfilepath)
sjtrader.entry_pct = 0.05
sjtrader.stopprofitpct = 0.095
sjtrader.stoplosspct = 0.09
sjtrader.start()
Notifications
bash
pip install notifiers
Check notifiers
python
from notifiers import get_notifier
notifier = get_notifier("telegram")
TELECHATID = ""
TELEBOT_TOKEN = ""
PARAMS = {"chatid": TELECHATID, "token": TELEBOTTOKEN}
notifier.notify(message="test", **PARAMS)
Check logger
python
from loguru import logger
from notifiers.logging import NotificationHandler
handler = NotificationHandler("telegram", defaults=PARAMS)
logger.add(handler, level="INFO")
logger.info("logger test")
Developer's guide
flit install -s🔗 More in this category