vn.py官网
开源量化社区
Member
加入于:
帖子: 39
声望: 0

在回测环境下,请问如果挂单的话,是按照下一个 tick 的价格成交么?还是下一分钟Bar 的开盘价格?

Member
avatar
加入于:
帖子: 2708
声望: 158

可以自己结合自己的数据对照就知道了。
如果是基于tick交易就是tick,如果是基于bar交易就是bar

Member
加入于:
帖子: 39
声望: 0

charlesttt wrote:

在回测环境下,请问如果挂单的话,是按照下一个 tick 的价格成交么?还是下一分钟Bar 的开盘价格?

另外在回测过程中出现了明明我的limit price 比市场价格低很多,但依然short 指令发出去不能trade 的情况。这种情况应该检查哪里呢?

Member
avatar
加入于:
帖子: 2708
声望: 158

回测的停止单的话,可以去vnpy.app.cta_strategy.backtesting下的cross_limit_order函数中打印排查看看

Member
加入于:
帖子: 39
声望: 0

xiaohe wrote:

回测的停止单的话,可以去vnpy.app.cta_strategy.backtesting下的cross_limit_order函数中打印排查看看

如果单看下面这个code。在回测的时候,short 的的单,是在下1min 还是下5min 还是下个tick 执行呀?

def __init__(self, cta_engine, strategy_name, vt_symbol, setting):
    """"""
    super().__init__(cta_engine, strategy_name, vt_symbol, setting)

    self.bg5 = BarGenerator(self.on_bar, window = 5, on_window_bar = self.on_5min_bar, interval = Interval.MINUTE)


def on_tick(self, tick: TickData):
    """
    Callback of new tick data update.
    """
    self.bg5.update_tick(tick)

def on_bar(self, bar: BarData):
    """
    Callback of new bar data update.
    """
    self.bg5.update_bar(bar) 

def on_5min_bar(self, bar: BarData):

    am = self.am
    am.update_bar(bar)

if *** some logic ***:
    self.short(bar.close_price+10, 5)
Member
avatar
加入于:
帖子: 2708
声望: 158

5min。交易逻辑写在哪个函数下就在哪个频率下执行。

Member
加入于:
帖子: 39
声望: 0

xiaohe wrote:

5min。交易逻辑写在哪个函数下就在哪个频率下执行。

谢谢了。但是是按照下一个5min bar 的 Open Price 来执行吧?

Member
avatar
加入于:
帖子: 2708
声望: 158

是的

© 2015-2019 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号-3

沪公网安备 31011502017034号