CTP客户端v6.3.15

ctpwrapper的Python项目详细描述


CTP期

Build StatusBuild statusCodacy BadgepypistatuspyversionimplementationDownloads

CTP Website

版本:V6.3.15

平台:Linux 64位,Windows 64位

python需求:x86-64

特别支持pypy3-v5.10.1-3.5.3 Linux 64位

由Lovelylain激发

安装

在安装ctpwrapper包之前,需要确保 已安装cython软件包。

>>>pip install cython --upgrade
>>>pip install ctpwrapper --upgrade

捐献[捐助]

用法

mdapi类包装器

importsysfromctpwrapperimportApiStructurefromctpwrapperimportMdApiPyclassMd(MdApiPy):"""    """def__init__(self,broker_id,investor_id,password,request_id=1):self.broker_id=broker_idself.investor_id=investor_idself.password=passwordself.request_id=request_iddefOnRspError(self,pRspInfo,nRequestID,bIsLast):self.ErrorRspInfo(pRspInfo,nRequestID)defErrorRspInfo(self,info,request_id):"""        :param info:        :return:        """ifinfo.ErrorID!=0:print('request_id=%s ErrorID=%d, ErrorMsg=%s',request_id,info.ErrorID,info.ErrorMsg.decode('gbk'))returninfo.ErrorID!=0defOnFrontConnected(self):"""        :return:        """user_login=ApiStructure.ReqUserLoginField(BrokerID=self.broker_id,UserID=self.investor_id,Password=self.password)self.ReqUserLogin(user_login,self.request_id)defOnFrontDisconnected(self,nReason):print("Md OnFrontDisconnected %s",nReason)sys.exit()defOnHeartBeatWarning(self,nTimeLapse):"""心跳超时警告。当长时间未收到报文时,该方法被调用。        @param nTimeLapse 距离上次接收报文的时间        """print('Md OnHeartBeatWarning, time = %s',nTimeLapse)defOnRspUserLogin(self,pRspUserLogin,pRspInfo,nRequestID,bIsLast):"""        用户登录应答        :param pRspUserLogin:        :param pRspInfo:        :param nRequestID:        :param bIsLast:        :return:        """ifpRspInfo.ErrorID!=0:print("Md OnRspUserLogin failed error_id=%s msg:%s",pRspInfo.ErrorID,pRspInfo.ErrorMsg.decode('gbk'))else:print("Md user login successfully")print(pRspUserLogin)print(pRspInfo)BORDKER_ID=""INVESTOR_ID=""PASSWORD=""SERVER=""md=Md(BORDKER_ID,INVESTOR_ID,PASSWORD)md.Create()md.RegisterFront(SERVER)md.Init()day=md.GetTradingDay()print(day)print("api worker!")

交易员类包装器

fromctpwrapperimportApiStructurefromctpwrapperimportTraderApiPyclassTrader(TraderApiPy):def__init__(self,broker_id,investor_id,password,request_id=1):self.request_id=request_idself.broker_id=broker_id.encode()self.investor_id=investor_id.encode()self.password=password.encode()defOnRspError(self,pRspInfo,nRequestID,bIsLast):self.ErrorRspInfo(pRspInfo,nRequestID)defErrorRspInfo(self,info,request_id):"""        :param info:        :return:        """ifinfo.ErrorID!=0:print('request_id=%s ErrorID=%d, ErrorMsg=%s',request_id,info.ErrorID,info.ErrorMsg.decode('gbk'))returninfo.ErrorID!=0defOnHeartBeatWarning(self,nTimeLapse):"""心跳超时警告。当长时间未收到报文时,该方法被调用。        @param nTimeLapse 距离上次接收报文的时间        """print("on OnHeartBeatWarning time: ",nTimeLapse)defOnFrontDisconnected(self,nReason):print("on FrontDisConnected disconnected",nReason)defOnFrontConnected(self):req=ApiStructure.ReqUserLoginField(BrokerID=self.broker_id,UserID=self.investor_id,Password=self.password)self.ReqUserLogin(req,self.request_id)print("trader on front connection")defOnRspUserLogin(self,pRspUserLogin,pRspInfo,nRequestID,bIsLast):ifpRspInfo.ErrorID!=0:print("Md OnRspUserLogin failed error_id=%s msg:%s",pRspInfo.ErrorID,pRspInfo.ErrorMsg.decode('gbk'))else:print("Md user login successfully")inv=ApiStructure.QryInvestorField(BrokerID=self.broker_id,InvestorID=self.investor_id)self.ReqQryInvestor(inv,self.inc_request_id())req=ApiStructure.SettlementInfoConfirmField.from_dict({"BrokerID":self.broker_id,"InvestorID":self.investor_id})self.ReqSettlementInfoConfirm(req,self.inc_request_id())defOnRspSettlementInfoConfirm(self,pSettlementInfoConfirm,pRspInfo,nRequestID,bIsLast):print(pSettlementInfoConfirm,pRspInfo)print(pRspInfo.ErrorMsg.decode("GBK"))definc_request_id(self):self.request_id+=1returnself.request_iddefOnRspQryInvestor(self,pInvestor,pRspInfo,nRequestID,bIsLast):print(pInvestor,pRspInfo)if__name__=="__main__":investor_id=""broker_id=""password=""server=""user_trader=Trader(broker_id=broker_id,investor_id=investor_id,password=password)user_trader.Create()user_trader.RegisterFront(server)user_trader.SubscribePrivateTopic(2)# 只传送登录后的流内容user_trader.SubscribePrivateTopic(2)# 只传送登录后的流内容user_trader.Init()print("trader started")print(user_trader.GetTradingDay())user_trader.Join()

文档

ctp的文档可以在docs

联系人

如果您对ctpwrapper api有任何疑问,请联系365504029@qq.com

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用Shiro 1.3.2和JBoss EAP 7.1的组合,java会话立即过期   过滤器中的java Init方法调用   Java中的赋值运算符无效   java在MapReduce中可以在同一个键下输出多个值吗?   java为什么此代码的输出不正确?   每个玩家的击杀次数总是相同的。(布基特)   Java 6热点中的jvm Java 5运行时   java是否适合使用反射来迭代成员以进行测试?   java如何模拟节点。js请求。发送和请求。查询   jsp音频流错误| java。网SocketException:对等方重置连接:socket写入错误   Android Java从其他类访问MainActivity中的WebView   java隐形框架布局   java XMLStreamException:尝试输出第二个根StaXparser   java使用这个快捷方式会导致问题吗?   使用两个Y轴时java Graphview SetBackgroundColor问题   JVM在java dataflowsdk 1.9.1和hbase 1.0.0退出时挂起(但不适用于以前的hbase库)   java在Jboss Server中部署war文件时,如何在Jboss Server独立文件夹中创建映像目录?