Python client for send order to Concords Securities.
Project description
conrich
康和綜合證券程式下單API整合了.net framework 4.5架構下的交易介面,讓使用者可以輕鬆的運用python執行快速下單。
conrich is a securities, futures, option API, which send orders to Concord Securities Group. This package integrated with .net framework 4.5, and is compatible with Python 3.5+. It is distributed under the MIT license.
Installation
Preinstall
API usage needs application in advance. In order to use this package, please contact us.
Binaries
simply use pip to install
pip install conrich
Quick Starts
Login
from conrich import StockAPI
agent = StockAPI()
agent.login("YOUR_PERSON_ID", "YOUR_PASSWORD")
from conrich import FuturesAPI
agent = FuturesAPI()
agent.login("YOUR_PERSON_ID", "YOUR_PASSWORD")
from conrich import ForeignFuturesAPI
agent = ForeignFuturesAPI()
agent.login("YOUR_PERSON_ID", "YOUR_PASSWORD")
Place Order
Stock
from conrich.Stock import constant
result = agent.order(action = constant.Action.NEW_ORDER.value,
branch_no = '8450',
account_no = "YOUR_ACCOUNT",
lot_type = constant.LotType.ROUND_LOT.value,
order_type = constant.OrderType.ORDINARY.value,
side = constant.Side.BUY.value,
day_trade_flag = constant.DayTradeFlag.N.value,
symbol = '6016',
quantity = 1,
price = 10.0,
price_flag = constant.PriceFlag.FIX.value,
time_in_force = constant.TimeInForce.ROD.value)
Futures
from conrich.Futures import constant
result = agent.order(action = constant.Action.NEW_ORDER.value,
branch_no = 'F029000',
account_no = "YOUR_ACCOUNT",
market_type = constant.Market.FUTURES.value,
compound_type = constant.CompoundType.FUTURES_SINGLE.value,
commodity = 'TXFI0',
time_in_force = constant.TimeInForce.ROD.value,
writeoff = constant.WriteOff.AUTO.value,
order_type = constant.OrderType.LIMIT.value,
side = constant.Side.BUY.value,
quantity = 1,
price = 12000.00)
Foreign Futures
agent.order(action=constant.Action.NEW_ORDER.value,
branch_no = 'F029000',
account_no = "YOUR_ACCOUNT",
exchange = 'NYM',
side1 = constant.Side.BUY.value,
market_type1 = constant.Market.FUTURES.value,
commodity1 = 'QM',
commodity_month1 = '202010',
strike_price1 = 0,
put_call1 = constant.PutCall.NONE.value,
side2 = '',
market_type2 = '',
commodity2 = '',
commodity_month2 = '',
strike_price2 = 0,
put_call2 = constant.PutCall.NONE.value,
order_type = constant.ForeignOrderType.LIMIT.value,
price = 0,
price_numerator = 0,
price_denominator = 0,
stop_price = 42.95,
stop_price_numerator = 0,
stop_price_denominator = 0,
quantity = 1,
writeoff = constant.Writeoff.OPEN.value)
Register Event
If you want to catch order or match report, one can define a function and register
Stock
def OrderReportHandler(result, msg):
order_result = {'result' : result.ResultType,
'status' : result.StatusCode,
'desc' : result.CodeDesc,
'order_guid' : result.OrderGuid,
'net_no' : result.ClOrdID
}
if result.ResultType=='1':
report = result.ExcReport
exe_report = {'order_id' : report.OrderID,
'orig_net_no' : report.OrigClOrdID,
'execute_status' : report.ExecType,
'account_no' : report.Account,
'symbol' : report.Symbol,
'side' : report.Side,
'quantity' : report.OrderQty,
'price' : report.Price,
'strike_quantity' : report.LastQty,
'strike_price' : report.LastPx,
'transaction_time' : report.TransactTime}
agent.OrderReportEvent += OrderReportHandler
Futures
def OrderReportHandler(code, msg):
dict_msg = dict((agent.msg_tag[k], v) for k,v in [tag.split('=') for tag in msg.split('|')])
print(dict_msg)
agent.OnFOrderReport += OrderReportHandler
Reference
https://www.concords.com.tw/download/20200318_證券API客戶使用元件及文件.zip https://www.concordfutures.com.tw/WebSiteUpload//Files/Document/20200728_期貨API.zip
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Hashes for conrich-0.6.1-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3020774a3d15601d9391b76dc030f7f6b0a57df265e1b4bfe93d71a0d796cb8 |
|
MD5 | c987f8c710545e9ad09328f77427e947 |
|
BLAKE2b-256 | e729ee166dbfaf5d2c8e83ec96d83736b6b9e55b8e4fe50dfbf6f0913d1390bb |
Hashes for conrich-0.6.1-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 434682471d405d70613475197bce74ce1ec5ec3b2ac2902657e50e71946c705a |
|
MD5 | 7a013b9cf8f957da098528129c5e3851 |
|
BLAKE2b-256 | d3da994fbd3a132ece00630d00fa5ae791561813e42b034d52732e572c5e2ae3 |
Hashes for conrich-0.6.1-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 56a1671da4255748a25f446ed7c15dd46c4a7a0cffd8625f6ffb5c106a93d241 |
|
MD5 | 302d4afa55b9d4ba8338a4787e1d3f62 |
|
BLAKE2b-256 | 25340eafd8446bdbad61349664c27c3b9e6257a7797d893329b45500d1939e2d |
Hashes for conrich-0.6.1-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8314b28bb071d99b9e5cb208197aa5c5d8d191ae27beb04e3a88032112427c30 |
|
MD5 | 9a4a119049167126f500ff4772164d1d |
|
BLAKE2b-256 | a6d7b475d84438c239a0f9f368e2cc47fd5ab3d6f961ef60b7a54a8524fecd4a |
Hashes for conrich-0.6.1-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 87227202b26c6b15b57abcf9135f2410e9a1efd8584db1683200a88cfae679cb |
|
MD5 | 6eb92481b255a2dd9cb149fafd96d990 |
|
BLAKE2b-256 | fa945b9e23eafa8124052e45ffb044256c03ca25985e152fadf64e816032f702 |
Hashes for conrich-0.6.1-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ff0f807848c11e05a7eceaa52e65c1d20dcadbaae62d4e4496db798c1ab4c321 |
|
MD5 | 07e7edcbc8a77d9ec5de7781a269661e |
|
BLAKE2b-256 | aa3bd42a9084fd2b56a9ffa000ccc197c2d30e788a9e77584f4aac49d23a28ff |