参照tick驱动,注册了 self.event_engine.register(EVENT_TIME,self.process_systime_event) # test
在仿照以下程序时,遇到问题:
def process_tick_event(self, event: Event):
""""""
tick = event.data
strategies = self.symbol_strategy_map[tick.vt_symbol]
if not strategies:
return
self.check_stop_order(tick)
for strategy in strategies:
if strategy.inited:
self.call_strategy_func(strategy, strategy.on_tick, tick)
tick驱动时,传进来的数据有vt_symbol,可据此判断所有strategies中执行。 但时间事件中,无合约,怎么让它在所有策略中执行呢
def process_systime_event(self, event: Event):
""""""
systime = event.data
strategies = self.symbol_strategy_map[tick.vt_symbol] ?????
if not strategies:
return
for strategy in strategies:
if strategy.inited:
self.call_strategy_func(strategy, strategy.on_time, tick)
在网站上下载安装的vnstudio-2.1.9,使用上期模拟账户进行测试:
参照策略模本写了个简单策略,交易股指期货IF
策略的基本逻辑是 收到第一个tick数据后判断交易
股指期货的第一个tick数据应该是在9:29分收到,9点29分到9点30分之间模拟系统不允许下单
所以我改成了行情时间9点30分之后下单: self.buy(self.last_price + 1.0, self.fixed_size) 按照最新成交价加1的价格买入1张。策略的判断逻辑没有问题,但“委托单状态”为“提交中”,该委托单没有下到模拟系统中。
请问,是vnpy的cta策略中限制了下单时间(如9点31分之前不能下单),还是我这样使用buy语句错误?
如果盘中设置某tick值超过某阀值后下单,几乎没有遇到过这种问题。
求高手指教,谢谢!
想尝试一个简单的股指期货交易策略,要求在开盘前下单。
现有模板中,只有行情驱动(k线周期驱动也一样)。
想参照on tick的范式定义一个on time函数,请问除了在stratege中写on time函数外,还需要在其它哪些地方修改呀,谢谢!
求大神指点
按照课程,选用了阿里云,课程中推荐的2核4G -windows 2012server版本。
下载好vn station(2.1.9),安装后启动时提示: this windows version(6.3.9600) does not support the required Bluetooth API.consider updating to a more recent windows(10.0.10586)
windows 自动更新后也不行,求大神指点,谢谢!
vnpy社区新人,一个弱弱的问题。
课程和demo中展示的,很多都是tick或bar生成时驱动交易信号的判断和触发。请问直接用系统时间驱动,是否可行?
简单使用时间驱动,如在某个特定时点(有可能是在开盘前,所以没有quotes中的时间戳,不能用tick驱动)提前下单,等待成交。
这样虽然在后向测试中可能会出问题,但实盘交易时可以更方便。
为了减少尝试成本,请了解的大神告知,谢谢!