通过这样的方式可以拿到所有委托数据:
orders = main_engine.get_all_orders()
想在no_ui中获取到所有委托数据orders,但是具体不知道引入那些包? 具体如何才能拿到委托数据?方便具体指导一下吗?万分感激万分感激万分感激万分感激
老师您好,把所有OMS业务数据(非行情)例如成交、委托订单转入到数据库database,然后通过database_manager实现查询历史成交、历史委托,利用保存的成交订单与借鉴vnpy已有的回测分析生成一个实盘交易绩效分析报表,不然仅仅通过log分析成交绩效会非常繁琐,vnpy_portfoliomanager又无法对外盘或者历史实盘成交订单进行绩效分析,您的这个功能好实用好实在啊,可以在GitHub中开一个分支下载不? 或者开一个帖子详细讲讲具体怎么实现的嘛,把好东西大家一起分享,把温暖传递下去
运行no_ui时,使用sleep阻塞主线程,更重要是因为如果其中有一个CTA初始化失败报错,那么主线程就不会进入下一步,卡在while循环了,或者如果CTA策略需要从数据源实时下载数据延迟,或者CTA策略有上百个时候,还没有等全部初始话完成,就启动了也会报错,望指导。
xiaohe wrote:
ranjianlin wrote:
如图所示,30分钟周期,实盘中因网络断开原因导致CTA策略委托状态一直处于“提交中”,有办法网络恢复后,重新发送之前一直处于状态“提交中”的委托订单吗?而不必等待下一个30分钟k线推送过来后重新发送新的委托订单
这个要明确一下提交中是委托已经发到tws只是因为网络断开没收到后续委托更新还是ib_gateway发出委托,tws没有收到就断开了
经排查,发现是ib_gateway发出委托,tws没有收到就断开了,然后一直状态显示提交中
MTF wrote:
这个状态是网络丢包了,用的是CTP接口吗?
使用的是盈透api,有什么办法解决这个问题吗?
MTF wrote:
策略引擎只能维护当前进程中策略发出的委托编号映射关系,重启后关系就丢失了,因此cancel_all也无法撤单(cancel_all是指撤销策略自己发出的全部委托)
老师您好,针对这种情况,有办法通过策略来取消重启之前发出的委托吗?望指点一下,万分感激
课时8-K线的自定义合成
问题:
2.6.0版本对部分源代码进行了重构,其中就包括了该课程中的BarGenerator,所以课程具体的源代码与课程中展示的不完全一致。
解决方案:
2.6.0版本对BarGenerator进行了重构,对于update_tick函数做了一些改进,同时对于update_bar函数更新分钟数据和小时数据的逻辑分离成了两个独立的函数,分别为update_bar_minute_window函数和update_bar_hour_window函数,虽然与课程中展示的不完全一致,但是功能都是一致的。因此如果大家想要按照课程中所展示的代码自定义一个可以生成类似7分钟这种分钟数据,应该对update_bar_minute_window函数进行复制后再做修改。可以尝试修改如下:
def update_bar_minute_window(self, bar: BarData) -> None:
""""""
# If not inited, create window bar object
if not self.window_bar:
dt = bar.datetime.replace(second=0, microsecond=0)
self.window_bar = BarData(
symbol=bar.symbol,
exchange=bar.exchange,
datetime=dt,
gateway_name=bar.gateway_name,
open_price=bar.open_price,
high_price=bar.high_price,
low_price=bar.low_price
)
# Otherwise, update high/low price into window bar
else:
self.window_bar.high_price = max(
self.window_bar.high_price,
bar.high_price
)
self.window_bar.low_price = min(
self.window_bar.low_price,
bar.low_price
)
# Update close price/volume/turnover into window bar
self.window_bar.close_price = bar.close_price
self.window_bar.volume += bar.volume
self.window_bar.turnover += bar.turnover
self.window_bar.open_interest = bar.open_interest
# Check if window bar completed
if self.window_bar.datetime.minute != bar.datetime.minute:
self.interval_count += 1
if not (bar.datetime.minute + 1) % self.window:
self.on_window_bar(self.window_bar)
self.window_bar = None
self.interval_count = 0
MTF wrote:
具体是哪个海龟策略的代码啊?
vnpy3.5版本自带的海龟策略示例
MTF wrote:
底层用的接口库有所变化,看你这里的日志信息,在【本地缓存合约信息加载成功】这条输出前,就调用了加载历史数据的逻辑,可能这个是出错的原因
打开VeighNa Station,连接盈透IB接口,进入CTA策略,点击初始化,然后就会出现这个报错,每次点击初始化后,都会有这个报错,提示IB TWS连接断开,然后又自动重新连接IB TWS连接成功,之前的vnpy2.1版本不会有这种报错的,官方可以排查一下吗?万分感激
VNPY3.5版本遗传算法多进程优化,总是报错,使用的是阿里云的服务器,有什么好的解决办法吗