VeighNa量化社区
你的开源社区量化交易平台
Member
离线
81 帖子
声望: 0

上次提到的代理服务器问题还没解决。现在需要在内网电脑上操作,内网电脑通过代理服务器访问外网。请问如何连接到CTP?
我尝试连接main_engine.connect(ctp_setting, "CTP"),但是无法登录。同样代码在外网电脑可以登录。所以是内网的代理服务器设置没设置对。请问应该如何设置才能让内网电脑通过CTP接口接受到行情呀?
感觉应该有哪个位置需要输入代理服务器信息?

MTF wrote:

不正常了,应该能取到之前数秒到实时结束的K线,建议排查下网络问题,以及是否get_price调用传参对了

请问 日内分钟线下载 get_price里面 输入的 日期格式 是这样么? dt.datetime(2022, 2, 25, 14, 30, 0)

我用get_price() 在日内下载分钟线,只能取到大约十分钟以前的数据,这个正常么?难道不能取到实时的最新的分钟线数据么?

回测的时候是不是on_trade 函数里面的东西写了也不会被考虑到呀?
比如 if trade.offset == Offset.OPEN: 然后干点事情。发现好像写了和没写差别没有

请问无界面运行/脚本策略 的时候,可以一个程序登录多个CTP账号并且同时往多个CTP账号挂单么?还是一个策略实例只能跑一个CTP账号呀?

感觉好像是一旦我有头寸了,这个json 文件就开始更新了。但是如果没有头寸就不会更新。是这样么?

这个json 文件应该是实时储存cta策略里面定义的各种变量对吧?它是多久被更新一次呀?实盘跑的时候有时候发现他并没有每隔1分钟被更新一次。不知道有没有哪行代码是描述定期更新这个json 文件的。如果变量变了,但是.json 不更新,可能是什么原因呢?

xiaohe wrote:

存进了ArrayManager里用于指标计算,但是最多只能存size根(比如am的默认size是100,就最多只能存100根)
https://www.vnpy.com/docs/cn/cta_strategy.html

谢谢!所以存够了100根以后,就是通过CTP接口新进来一个数据,就顶掉一个老数据是吧?这个过程是不需要行情录制的对吧?就是Cta_Strategy自己会在实盘跑的时候自己存100个最近的历史数据,对吧?

xiaohe wrote:

没有存入数据库,实盘交易所推过来的tick会通过事件引擎推给策略的on_tick函数,然后通过BarGenerator生成bar推给策略的on_bar函数。
需要存储交易所推过来的数据的话请通过data_recorder模块录制数据,可参考https://www.vnpy.com/docs/cn/data_recorder.html

比如我开实盘策略跑一上午,但是没有开data_recorder,貌似策略也能自己记录实盘数据?因为我在实盘的时候 每分钟print 出来过去10个bar的close price,每隔一分钟print一次,每次都能不仅看到最新1分钟的价格,也能看到前几分钟的价格。所以本身策略把bar数据存起来了?

xiaohe wrote:

会有问题,请勿重复连接。
是的。

但是main_engine.close() 以后,暂时保存的通过CTP 接收的实盘数据就没有了对吧?

在实盘交易中,使用.py 脚本策略,

多次使用 main_engine.connect(ctp_setting, "CTP") 登录CTP 会有问题么?

还是每次都要先 main_engine.close() 确保之前的gateway关了再 main_engine.connect(ctp_setting, "CTP")?

因为期货公司的CTP 下午需要重新登录才能接上。

郭易燔 wrote:

cta模块不会存储市场数据。

ctabacktester使用数据库中数据进行回测。

ctastrategy使用交易接口推送的数据进行交易。

本地数据可以通过datarecorder进行录制或者datamanager进行下载。

“ctastrategy使用交易接口推送的数据进行交易”。 是不是实盘跑的时候系统把CTP接口收到的数据存到某个缓存里面了呀?

加入没有数据录制,也没有买任何数据。就靠实盘策略跑的时候CTA模块存的数据,好像也是能跑的?这个CTA模块存下来的实盘数据放在哪里了呢?我如果对CTA模块进行初始化之后,之前存当天的实盘数据就都没了,是正常的么?

郭易燔 wrote:

没有no_ui中调用DataRecorder的示例代码,可以参考一下示例里cta模块的使用方法,调用DataRecorder里的函数运行。

实盘跑的时候,需要历史数据来计算指标初始值,会依次尝试从接口、数据服务商、数据库查询数据。如果都无法获取,则系统会接收实盘数据计算指标初始值,直到指标初始化完成后才会进行正常委托操作。

谢谢! 具体调用哪个函数呢?DataRecorder 在哪个文件夹路径下面压?

之前Example 文件夹里面应该有一个 runDataRecording.py。这个文件的连接能给我一下么?

https://github.com/vnpy/vnpy/wiki/%E8%A1%8C%E6%83%85%E8%AE%B0%E5%BD%95%E6%A8%A1%E5%9D%97

需要跑哪几行代码才能存到数据库呀?我今天跑了DataRecorder但是发现数据库里面并没有存上。

xiaohe wrote:

对应的数据库

charlesttt wrote:

load_bar 的函数具体在哪个文件夹里面呀?天数是自然日还是工作日呀?

xiaohe wrote:

load_bar天数太短

谢谢, 假如我数据库里面只有5天数据。我loadbar(100),100 天数据,不会有任何不良影响对吧?

load_bar 的函数具体在哪个文件夹里面呀?天数是自然日还是工作日呀?

xiaohe wrote:

load_bar天数太短

设置好合约之后,当天的DataRecorder把日内行情存在哪里了呀?我加了main_engine.add_app(DataRecorderApp) 但是还是找不到它把数据存哪了。如果重启策略,数据会丢,找不到

用Python的交易员 wrote:

需要配置具体录入行情的合约,具体请参考文档:https://www.vnpy.com/docs/cn/data_recoder.html

谢谢!如何打开DataRecorder记录行情呢?有示例代码么?

实盘跑的时候,必须实时把日内数据存到数据库里面,CTA策略才能正常跑对吧?

郭易燔 wrote:

no_ui的示例里并没有自动储存实盘行情数据。no_ui通过定时运行和关闭子进程来开启和关闭交易系统。no_ui的示例里只调用了ctp接口和cta策略模块,只是演示作用,如果有需要可以自行扩展。
如果需要在no_ui中记录行情数据,可以在no_ui中调用vnpy_datarecorder模块。

© 2015-2022 微信 18391752892
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】