vn.py量化社区
By Traders, For Traders.
Member
avatar
加入于:
帖子: 5
声望: 0

在从CtaTemplate中派生出来的发现pos值不变,直接在on_bar()中进行如下打印,也发现值为0,在jupyter notebook中用CTA回测

def on_bar(self, bar:BarData):
    '''
    通过该函数收到新的1分钟K线推送
    '''     
    am = self.am        

    # 更新K线到时间序列容器中   
    am.update_bar(bar)

    # 若缓存的K线数量尚不够计算技术指标,则直接返回
    if not am.inited:
        return

    print(str(sys._getframe().f_lineno)+" self.pos:", self.pos," bar.price",bar.close_price)
    if(self.pos == 0):
        # 开仓分析        
        # test
        self.buy(bar.close_price,1)
        #self.kai_cang_analyse(bar)
    else:
        # 平仓分析
        self.sell(bar.close_price,1)
        #self.ping_cang_analyse(bar)


在notebook 中输出:
2019-09-17 16:08:06.886030 开始加载历史数据
2019-09-17 16:08:07.303884 加载进度:## [25%]
2019-09-17 16:08:07.522071 加载进度:##### [50%]
2019-09-17 16:08:07.814280 加载进度:####### [76%]
2019-09-17 16:08:08.182468 加载进度:########## [100%]
2019-09-17 16:08:08.182468 历史数据加载完成,数据量:18720
121 self.pos: 0 bar.price 2965.4
121 self.pos: 0 bar.price 2965.2
121 self.pos: 0 bar.price 2964.8
121 self.pos: 0 bar.price 2966.6
121 self.pos: 0 bar.price 2972.2
121 self.pos: 0 bar.price 2969.8
121 self.pos: 0 bar.price 2968.2
121 self.pos: 0 bar.price 2968.8
.....

121 self.pos: 0 bar.price 3914.8
2019-09-17 16:08:12.885021 策略初始化完成
2019-09-17 16:08:12.885021 开始回放历史数据
121 self.pos: 0 bar.price 3914.8
2019-09-17 16:08:12.885021 历史数据回放结束
2019-09-17 16:08:12.885021 开始计算逐日盯市盈亏
2019-09-17 16:08:12.885995 成交记录为空,无法计算
2019-09-17 16:08:12.885995 开始计算策略统计指标
2019-09-17 16:08:12.885995 ------------------------------
2019-09-17 16:08:12.885995 首个交易日:
2019-09-17 16:08:12.885995 最后交易日:
2019-09-17 16:08:12.885995 总交易日: 0
2019-09-17 16:08:12.885995 盈利交易日: 0
2019-09-17 16:08:12.885995 亏损交易日: 0
2019-09-17 16:08:12.885995 起始资金: 1,000,000.00
2019-09-17 16:08:12.885995 结束资金: 0.00
2019-09-17 16:08:12.885995 总收益率: 0.00%
2019-09-17 16:08:12.885995 年化收益: 0.00%

Member
avatar
加入于:
帖子: 15
声望: 1

楼主可以在建仓的代码前面设置断点,调试下,看程序有没有走到建仓的代码。

Member
avatar
加入于:
帖子: 35
声望: 2

我碰到过类似问题。
我问题的发生原因是回测日期内没有数据。
或者数据日期是1m,回测日期写的是d。
检查下数据。

Administrator
avatar
加入于:
帖子: 4033
声望: 222

历史数据加载完成,数据量:18720

数据量太少了,应该不够你策略初始化的,所以始终没有正式开始交易

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