Python CTP futures api
Project description
py_ctp
上期技术期货交易 api 之 python 封装,实现接口调用。支持 windows(x86/x64) linux(x64).
更新
20201104
更新:不再支持 32 位; 解决 lnx 下 so 路径问题;解决合约过多导致的 bug;
20210115
更新:接口更新到 6.5.1;大商所非交易合约数量庞大导致的问题。
20220504
更新: 重新编译封装的 C 接口; trade 登录不再需要 productInfo
版本
与官方版本保持一致:6.3.15 6.3.16
安装
pip install py-ctp==6.5.1.20220504
示例
#!/usr/bin/env python
# -*- coding: utf-8 -*-
__title__ = 'test py ctp of se'
__author__ = 'HaiFeng'
__mtime__ = '20190506'
from py_ctp.trade import CtpTrade
from py_ctp.quote import CtpQuote
from py_ctp.enums import *
import time
class TestTrade(object):
def __init__(self, addr: str, broker: str, investor: str, pwd: str, appid: str, auth_code: str, proc: str):
self.front = addr
self.broker = broker
self.investor = investor
self.pwd = pwd
self.appid = appid
self.authcode = auth_code
self.proc = proc
self.t = CtpTrade()
self.t.OnConnected = self.on_connect
self.t.OnUserLogin = lambda o, x: print('Trade logon:', x)
self.t.OnDisConnected = lambda o, x: print(x)
self.t.OnRtnNotice = lambda obj, time, msg: print(f'OnNotice: {time}:{msg}')
self.t.OnErrRtnQuote = lambda obj, quote, info: None
self.t.OnErrRtnQuoteInsert = lambda obj, o: None
self.t.OnOrder = lambda obj, o: None
self.t.OnErrOrder = lambda obj, f, info: None
self.t.OnTrade = lambda obj, o: None
self.t.OnInstrumentStatus = lambda obj, inst, stat: None
def on_connect(self, obj):
self.t.ReqUserLogin(self.investor, self.pwd, self.broker, self.proc, self.appid, self.authcode)
def run(self):
self.t.ReqConnect(self.front)
# self.t.ReqConnect('tcp://192.168.52.4:41205')
def release(self):
self.t.ReqUserLogout()
class TestQuote(object):
"""TestQuote"""
def __init__(self, addr: str, broker: str, investor: str, pwd: str):
""""""
self.front = addr
self.broker = broker
self.investor = investor
self.pwd = pwd
self.q = CtpQuote()
self.q.OnConnected = lambda x: self.q.ReqUserLogin(self.investor, self.pwd, self.broker)
self.q.OnUserLogin = lambda o, i: self.q.ReqSubscribeMarketData('rb2210')
def run(self):
self.q.ReqConnect(self.front)
def release(self):
self.q.ReqUserLogout()
if __name__ == "__main__":
front_trade = 'tcp://180.168.146.187:10202'
front_quote = 'tcp://180.168.146.187:10212'
broker = '9999'
investor = ''
pwd = ''
appid = ''
auth_code = ''
proc = ''
if investor == '':
investor = input('invesotr:')
pwd = input('password:')
appid = input('appid:')
auth_code = input('auth code:')
proc = input('product info:')
tt = TestTrade(front_trade, broker, investor, pwd, appid, auth_code, proc)
tt.run()
time.sleep(5)
# tt.t.ReqOrderInsert('j1905', DirectType.Buy, OffsetType.Open, 2060, 3)
time.sleep(3)
qq = TestQuote(front_quote, broker, investor, pwd)
qq.run()
# time.sleep(6)
# for inst in tt.t.instruments.values():
# print(inst)
input()
tt.release()
qq.release()
input()
Project details
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.
Source Distribution
py_ctp-6.5.1.20220505.tar.gz
(6.6 MB
view details)
Built Distribution
File details
Details for the file py_ctp-6.5.1.20220505.tar.gz
.
File metadata
- Download URL: py_ctp-6.5.1.20220505.tar.gz
- Upload date:
- Size: 6.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.64.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1add645dc3e85f4ab31e99e1d9db76bb1bff9428ad55e9547d3656464f790589 |
|
MD5 | 8fcbbf4eb62f720ac094b97adf0e2d91 |
|
BLAKE2b-256 | abeefad6f8cfa008c802560dd0e2ea56b5648778276f570f0c42ce32621fbc09 |
File details
Details for the file py_ctp-6.5.1.20220505-py3-none-any.whl
.
File metadata
- Download URL: py_ctp-6.5.1.20220505-py3-none-any.whl
- Upload date:
- Size: 11.5 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.64.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6343d4a92155c5bbb8fdf47cdbf2a77a46d8fa18cae9707843d2d7098ec286d1 |
|
MD5 | 77f958c972a6ad815c71e9dd2f95d73f |
|
BLAKE2b-256 | 45880e0c09cfabc3e2e49b022da4c9ef6b99c25dc0934e9742e507a1890f303e |