#%% 任务列表 """ . 编写md的基础测试用例 . 按Trader模式来封装md . 要增加MdRequestMessage和MdResponseMessage . callback 列表中要加入md的函数名称,可以通过union trader.methodDict 和 md.methodDict(ok) . 解决转换器参数大小写不一致的问题 """ #%% 目标调用方式 from pyctp import Trader,Md,struct,callback def OnRspQryTradingAccount(**kwargs): pass trader = Trader(...) trader.bind(callback.OnRspQryTradingAccount,OnRspQryTradingAccount) data = struct.CThostFtdcTradingAccountField() ... ... trader.ReqQryTradingAccount(data) #%% import os from datetime import datetime os.chdir(u'/home/duhan/github/pyctp') from CTPStruct import * from CTPTrader import Trader frontAddress = os.environ.get('CTP_FRONT_ADDRESS') assert frontAddress brokerID = os.environ.get('CTP_BROKER_ID')
frontAddress = os.environ.get("CTP_FRONT_ADDRESS") brokerID = os.environ.get("CTP_BROKER_ID") userID = os.environ.get("CTP_USER_ID") password = os.environ.get("CTP_PASSWORD") assert frontAddress and brokerID and userID and password ## 导入pyctp相关的模块 ## Trader 交易员接口封装 ## Md 行情接口封装 ## struct 所有CTP结构体定义 ## callback 所有CTP的回调函数名称 from pyctp import Trader, Md, struct, callback from time import sleep ## 创建交易员接口对象 trader = Trader(frontAddress, brokerID, userID, password) ## 定义回调函数 result = [] def OnRspQryInvestor(**kwargs): # 注意:方法名称可以自由定义 result.append(kwargs) ## 绑定回调函数到交易员接口 trader.bind(callback.OnRspQryInvestor, OnRspQryInvestor) ## 准备请求数据表单 requestData = struct.CThostFtdcQryInvestorField() requestData.BrokerID = brokerID requestData.InvestorID = userID ## 调用请求API
## 这些信息放在环境变量中,以避免出现在程序中。 import os frontAddress = os.environ.get('CTP_FRONT_ADDRESS') brokerID = os.environ.get('CTP_BROKER_ID') userID = os.environ.get('CTP_USER_ID') password = os.environ.get('CTP_PASSWORD') assert frontAddress and brokerID and userID and password ## 导入pyctp相关的模块 ## Trader 交易员接口封装 ## Md 行情接口封装 ## struct 所有CTP结构体定义 ## callback 所有CTP的回调函数名称 from pyctp import Trader, Md, struct, callback from time import sleep ## 创建交易员接口对象 trader = Trader(frontAddress, brokerID, userID, password) ## 定义回调函数 result = [] def OnRspQryInvestor(**kwargs): # 注意:方法名称可以自由定义 result.append(kwargs) ## 绑定回调函数到交易员接口 trader.bind(callback.OnRspQryInvestor, OnRspQryInvestor) ## 准备请求数据表单 requestData = struct.CThostFtdcQryInvestorField() requestData.BrokerID = brokerID requestData.InvestorID = userID ## 调用请求API