import shioaji as sj
api = sj.Shioaji()
Response Code: 0 | Event Code: 0 | Info: host '203.66.91.161:80', IP 203.66.91.161:80 (host 1 of 1) (host connection attempt 1 of 1) (total connection attempt 1 of 1) | Event: Session up
accounts = api.login("YOUR_PERSON_ID", "YOUR_PASSWORD")
accounts
[StockAccount(person_id=SecretStr('**********'), broker_id=SecretStr('**********'), account_id=SecretStr('**********'), signed=True, username=SecretStr('**********'))]
api.activate_ca(
ca_path="/c/your/ca/path/Sinopac.pfx",
ca_passwd="YOUR_PASSWORD",
person_id="Person of this Ca",
)
Ca Initial Done.
0
contract = api.Contracts.Stocks.TSE.TSE2890
contract
Stock(exchange=<Exchange.TSE: 'TSE'>, code='2890', symbol='TSE2890', name='永豐金', category='17', limit_up=13.75, limit_down=11.25, update_date='2020/03/11', day_trade=<DayTrade.OnlyBuy: 'OnlyBuy'>)
order = api.Order(
price=12,
quantity=3,
action="Buy",
price_type="LMT",
order_type="ROD",
order_lot="Common",
account=api.stock_account
)
order
Order(action=<Action.Buy: 'Buy'>, price=12, quantity=3, account=StockAccount(person_id=SecretStr('**********'), broker_id=SecretStr('**********'), account_id=SecretStr('**********'), signed=True, username=SecretStr('**********')), price_type=<StockPriceType.LMT: 'LMT'>, order_type=<FuturesOrderType.ROD: 'ROD'>)
order = api.Order(
price=12,
quantity=1,
action="Sell",
price_type="LMT",
order_type="ROD",
order_lot="Common",
account=api.stock_account
)
order
Order(action=<Action.Sell: 'Sell'>, price=12, quantity=1, account=StockAccount(person_id=SecretStr('**********'), broker_id=SecretStr('**********'), account_id=SecretStr('**********'), signed=True, username=SecretStr('**********')), price_type=<StockPriceType.LMT: 'LMT'>, order_type=<FuturesOrderType.ROD: 'ROD'>)
order = api.Order(
price=12,
quantity=1,
action="Sell",
price_type="LMT",
order_type="ROD",
order_lot="Common",
first_sell="true",
account=api.stock_account
)
order
Order(action=<Action.Sell: 'Sell'>, price=12, quantity=1, account=StockAccount(person_id=SecretStr('**********'), broker_id=SecretStr('**********'), account_id=SecretStr('**********'), signed=True, username=SecretStr('**********')), price_type=<StockPriceType.LMT: 'LMT'>, order_type=<FuturesOrderType.ROD: 'ROD'>, first_sell=<StockFirstSell.Yes: 'true'>)
trade = api.place_order(contract, order)
trade
Trade(contract=Stock(exchange=<Exchange.TSE: 'TSE'>, code='2890', symbol='TSE2890', name='永豐金', category='17', limit_up=13.75, limit_down=11.25, update_date='2020/03/11', day_trade=<DayTrade.OnlyBuy: 'OnlyBuy'>), order=Order(action=<Action.Buy: 'Buy'>, price=12, quantity=3, id='436ab247', seqno='622967', ordno='IA015', account=Account(account_type=<AccountType.Stock: 'S'>, person_id=SecretStr('**********'), broker_id=SecretStr('**********'), account_id=SecretStr('**********'), signed=True, username=SecretStr('')), price_type=<StockPriceType.LMT: 'LMT'>, order_type=<FuturesOrderType.ROD: 'ROD'>), status=OrderStatus(id='436ab247', status=<Status.PendingSubmit: 'PendingSubmit'>, status_code='0', order_datetime=datetime.datetime(2020, 3, 11, 14, 48, 40), deals=[]))
import shioaji as sj
api = sj.Shioaji()
accounts = api.login("YOUR_PERSON_ID", "YOUR_PASSWORD", contracts_timeout=10000)
api.activate_ca(
ca_path="/c/your/ca/path/Sinopac.pfx",
ca_passwd="YOUR_CA_PASSWORD",
person_id="Person of this Ca",
)
contract = api.Contracts.Stocks.TSE.TSE2890
order = api.Order(
price=12,
quantity=10,
action="Buy",
price_type="LMT",
order_type="ROD",
account=api.stock_account
)
trade = api.place_order(contract, order)
Response Code: 0 | Event Code: 0 | Info: host '203.66.91.161:80', IP 203.66.91.161:80 (host 1 of 1) (host connection attempt 1 of 1) (total connection attempt 1 of 1) | Event: Session up Ca Initial Done.
trade
Trade(contract=Stock(exchange=<Exchange.TSE: 'TSE'>, code='2890', symbol='TSE2890', name='永豐金', category='17', limit_up=13.75, limit_down=11.25, update_date='2020/03/11', day_trade=<DayTrade.OnlyBuy: 'OnlyBuy'>), order=Order(action=<Action.Buy: 'Buy'>, price=12, quantity=10, id='c068cdc9', seqno='622974', ordno='IA016', account=Account(account_type=<AccountType.Stock: 'S'>, person_id=SecretStr('**********'), broker_id=SecretStr('**********'), account_id=SecretStr('**********'), signed=True, username=SecretStr('')), price_type=<StockPriceType.LMT: 'LMT'>, order_type=<FuturesOrderType.ROD: 'ROD'>), status=OrderStatus(id='c068cdc9', status=<Status.PendingSubmit: 'PendingSubmit'>, status_code='0', order_datetime=datetime.datetime(2020, 3, 11, 14, 49, 31), deals=[]))
import shioaji as sj
api = sj.Shioaji()
accounts = api.login("YOUR_PERSON_ID", "YOUR_PASSWORD", contracts_timeout=10000)
api.activate_ca(
ca_path="/c/your/ca/path/Sinopac.pfx",
ca_passwd="YOUR_CA_PASSWORD",
person_id="Person of this Ca",
)
contract = api.Contracts.Stocks.TSE.TSE2890
order = api.Order(price=12.2,
quantity=1,
action="Sell",
price_type="LMT",
order_type="ROD",
first_sell="true",
account=api.stock_account
)
trade = api.place_order(contract, order)
Response Code: 0 | Event Code: 0 | Info: host '203.66.91.161:80', IP 203.66.91.161:80 (host 1 of 1) (host connection attempt 1 of 1) (total connection attempt 1 of 1) | Event: Session up Ca Initial Done.
trade
Trade(contract=Stock(exchange=<Exchange.TSE: 'TSE'>, code='2890', symbol='TSE2890', name='永豐金', category='17', limit_up=13.75, limit_down=11.25, update_date='2020/03/11', day_trade=<DayTrade.OnlyBuy: 'OnlyBuy'>), order=Order(action=<Action.Sell: 'Sell'>, price=12.2, quantity=1, id='1902ddc1', seqno='622981', ordno='IA022', account=Account(account_type=<AccountType.Stock: 'S'>, person_id=SecretStr('**********'), broker_id=SecretStr('**********'), account_id=SecretStr('**********'), signed=True, username=SecretStr('')), price_type=<StockPriceType.LMT: 'LMT'>, order_type=<FuturesOrderType.ROD: 'ROD'>), status=OrderStatus(id='1902ddc1', status=<Status.PendingSubmit: 'PendingSubmit'>, status_code='0', order_datetime=datetime.datetime(2020, 3, 11, 14, 52, 35), deals=[]))
api.update_status(api.stock_account)
api.cancel_order(trade)
api.update_status(api.stock_account)
trade
Trade(contract=Stock(exchange=<Exchange.TSE: 'TSE'>, code='2890', symbol='TSE2890', name='永豐金', category='17', limit_up=13.75, limit_down=11.25, update_date='2020/03/11', day_trade=<DayTrade.OnlyBuy: 'OnlyBuy'>), order=Order(action=<Action.Buy: 'Buy'>, price=12.0, quantity=10, id='314a7e1d', seqno='622984', ordno='IA023', account=Account(account_type=<AccountType.Stock: 'S'>, person_id=SecretStr('**********'), broker_id=SecretStr('**********'), account_id=SecretStr('**********'), signed=True, username=SecretStr('')), price_type=<StockPriceType.LMT: 'LMT'>, order_type=<FuturesOrderType.ROD: 'ROD'>), status=OrderStatus(id='314a7e1d', status=<Status.Cancelled: 'Cancelled'>, status_code='00', order_datetime=datetime.datetime(2020, 3, 11, 14, 53, 13), cancel_quantity=10, deals=[]))
api.update_status(api.stock_account)
api.update_order(trade=trade, price=12, qty=2)
api.update_status(api.stock_account)
trade
Trade(contract=Stock(exchange=<Exchange.TSE: 'TSE'>, code='2890', symbol='TSE2890', name='永豐金', category='17', limit_up=13.75, limit_down=11.25, update_date='2020/03/11', day_trade=<DayTrade.OnlyBuy: 'OnlyBuy'>), order=Order(action=<Action.Buy: 'Buy'>, price=12.0, quantity=10, id='314a7e1d', seqno='622984', ordno='IA023', account=Account(account_type=<AccountType.Stock: 'S'>, person_id=SecretStr('**********'), broker_id=SecretStr('**********'), account_id=SecretStr('**********'), signed=True, username=SecretStr('')), price_type=<StockPriceType.LMT: 'LMT'>, order_type=<FuturesOrderType.ROD: 'ROD'>), status=OrderStatus(id='314a7e1d', status=<Status.Submitted: 'Submitted'>, status_code='00', order_datetime=datetime.datetime(2020, 3, 11, 14, 53, 13), cancel_quantity=2, deals=[]))