ctpbee / ctpbee_api

此处描述ctpbee里面的ctp API 生成
15 stars 18 forks source link

楼主能让ctpbee的api扩展一下,支持openctp吗? #6

Closed qtbgo closed 1 year ago

qtbgo commented 2 years ago

openctp api https://github.com/krenx1983/openctp 有很多,据说vnpy已支持它。

据openctp说,只要用它的thostmduserapi_se.dll 、thosttraderapi_se.dll替换ctpbee的对应文件,就可以使用它的7*24仿真环境,叫tts。我试验了一下,有时可以,有时不行,出现如下错误。不知这是openctp的问题还是ctpbee的问题。

2022-04-23 13:27:20 app INFO app 行情服务器连接成功 2022-04-23 13:27:20 app INFO app 交易连接成功 2022-04-23 13:27:202022-04-23 13:27:20 app app INFOINFO appapp 交易服务器验证成功行情服务器登录成功

2022-04-23 13:27:20 app INFO app 交易登录成功 2022-04-23 13:27:20 app INFO app 结算信息确认成功 e:\myquant\venv_quant389\lib\site-packages\ctpbee\interface\ctp\td_api.py:308: UserWarning: 未预料到的合约问题 错误信息: 'TTS' warnings.warn(f"未预料到的合约问题 错误信息: {e}")

mojerro commented 1 year ago

+1 求大佬指导如何自己编译pyd也好 @somewheve @zhengquantao

somewheve commented 1 year ago

这个应该不算错误吧 不能正常运行吗 这个里面只是警告信息 不是崩溃信息

mojerro commented 1 year ago

这个应该不算错误吧 不能正常运行吗 这个里面只是警告信息 不是崩溃信息

openctp有自己的dll文件,需要替换编译才行。但是现在我编译项目不太成功,,,

mojerro commented 1 year ago

vnpy_ctp编译成功了,很怪,这俩项目结构差不多

somewheve commented 1 year ago

一样的 我当时是借助vnpy 1.9.2写的ctpbee api 是参考vnpy的 可以给下报错信息吗

somewheve commented 1 year ago

你这个可以试试不编译pyd 直接替换dll使用试试

mojerro commented 1 year ago

对哦,有道理,我试试

mojerro commented 1 year ago

一样的 我当时是借助vnpy 1.9.2写的ctpbee api 是参考vnpy的 可以给下报错信息吗

就是python.dll还是哪个链接库没找到,好像不是项目问题,但是我已经配置路径了,我在研究一下。vnpy的项目,我改了编译配置就跑通了,很怪 😢

quant2008 commented 1 year ago

是有个返回的交易所ctpbee不支持,改了就可以了

somewheve commented 1 year ago

@quant2008 能提交个pr忽略掉吗

quant2008 commented 1 year ago

我不会pr啊,我的修改如下: 如果要ctpbee支持openctp的api,则需要做如下修改。 (1)覆盖thostmduserapi_se.dll、thosttraderapi_se.dll 到https://github.com/krenx1983/openctp,找到相同版本号的目录,如 https://github.com/krenx1983/openctp/tree/master/6.6.1_P1_20210406/win64 将其中的thostmduserapi_se.dll、thosttraderapi_se.dll下载下来,覆盖本机ctpbee_api安装目录E:\myquant\venv_quant389\Lib\site-packages\ctpbee_api\ctp中的同名文件。

(2)ctpbee的constant.py修改 E:\myquant\venv_quant389\Lib\site-packages\ctpbee\constant.py class Exchange(Enum): 增加 TTS = "tts"

EXCHANGE_MAPPING 增加 "TTS": Exchange.TTS

(3)ctpbee的lib.py修改 E:\myquant\venv_quant389\Lib\site-packages\ctpbee\interface\ctp\lib.py EXCHANGE_CTP2VT = {
增加 "TTS": Exchange.TTS

不过openctp好像连续两个tick的时间戳是相同的,不知现在改好了没有。

somewheve commented 1 year ago

已经在constant里面支持TTS 关闭