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

为何VNPY自己合成的bar数据总有一些错误的异常数据?

经常出现一些偏离很远的价格,在其他行情软件上都没有这个价格,但vnpy合成的bar就有这个错误价格,哪位大神知道是什么原因吗?能否解决呢?

我想做一个止损程序,用script_trader,但这个程序要针对所有期货合约,由于合约太多,所以我不想一开始就订阅行情,希望能够在判断有持仓后,才订阅行情,然后再根据行情来判断是否要止损。

我写了如下一些代码,然后实际运行中,却无法获得行情,返回的tick为None,哪位大神帮忙看看是什么问题?

engine.connect_gateway(ctp_setting, "CTP")
subscribe_list = []
while True:
positions = engine.get_all_positions(use_df=False)
for item in positions:
volume = item.volume
if volume != 0:
if vt_symbol not in subscribe_list:
engine.subscribe(vt_symbol)
subscribe_list.append(vt_symbol)
tick = engine.get_tick(vt_symbol=vt_symbol)

以上最后一句,tick总是取不到。

在价差策略中用self.buy发出订单,到了spread_strategy_engine里面的def send_order中,这时req经过了一次converter的转换:

req_list = self.offset_converter.convert_order_request(
original_req, lock)

返回的是一个空的list,后面发单就不会成功。

进一步跟踪发现,是converter.py中,def convert_order_request_shfe()里面有个:
if req.volume > pos_available:
return []

而pos_available一直等于0,导致返回的是空值。

pos_available = self.short_pos - self.short_pos_frozen

最终发现,这里的self.short_pos 和 self.short_pos_frozen 始终等于0.

请问这个问题该如何解决呢?

目前的spread_setting模板好像有问题,哪位大神改成正确的啊?

仿照ctp的no ui格式,我想将其用于价差策略,按下面步骤改了一下,但好像有问题,策略一直不被执行,哪位大神帮我看看问题所在:

  1. 把引入的cta_engine 改成spread_engine:

    # from vnpy.app.cta_strategy import CtaStrategyApp
    from vnpy.app.spread_trading import SpreadTradingApp

  2. 把run_child中的主引擎改成spread引擎
    # cta_engine = main_engine.add_app(CtaStrategyApp)
    spread_engine = main_engine.add_app(SpreadTradingApp)

  3. 把后面的初始化改成:

    spread_engine.start()
    main_engine.write_log("spread策略初始化完成")

    spread_engine.init_all_strategies()
    sleep(10) # Leave enough time to complete strategy initialization
    main_engine.write_log("spread策略全部初始化")

    spread_engine.start_all_strategies()
    main_engine.write_log("spread策略全部启动")

这样修改后,策略一直没有反应,请问是哪里错了?

一直在用vnpy1.9,好不容易下决心要切换到新版本,却发现很多功能没有啊,望大神们给予解答:

1、 1.9版本有个ctatratdng,想新开一个账号,直接复制一下这个文件夹就可以,同时要交易什么品种,直接在文件夹里面的cta_setting里面设置,每个文件夹可以不同的设置。但现在2.0版本,设置要到C盘下面的一个隐藏目录去更改? 这样岂非很麻烦?

2、 1.9版本的策略里面有个同步参数self.syncList, 可以在策略重启时读取之前保存的参数值, 2.0版本的策略模板里面好似没有这个了?要如何才能保存参数呢?

2.0.9版本价差引擎中的setting_filename在哪里?
setting_filename = "spraed_trading_strategy.json", 但找不到spraed_trading_strategy.json这个文件。

之前总感觉加载的历史数据有问题,算出来的指标和其他软件不一致,用了一年多才发现,原来数据库中保存的K线中,夜盘的时间竟然算到了第二天,导致加载数据时,昨天晚上夜盘的数据总是在今天白天数据之后,所以算出来的指标就都错了。

这个好像又牵涉到合成K线的问题,请问群主有办法解决吗?

实盘运行过程中,经常会预见策略发出错误指令,然后返回一个错误的提示,策略中要如何读出这个错误提示从而调整某些参数呢?

常见的例如策略有持仓,实际没有持仓,策略发出平仓指令,交易所就返回错误提示说清仓量超过持仓量,这时候如果不修改策略持仓数据,就会一直不停发出平仓指令,也就一直收到错误提示,这种情况该如何避免?

请教个问题,在某个品种的策略运行中,怎么取到另一个品种的tick数据? 我在vtEngine中看到一个函数gettick(),但用此取出来是个None值

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

沪公网安备 31011502017034号

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