金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 479|回复: 3

请教:history_bars为什么取不到指定数量的bars

[复制链接]

4

主题

12

帖子

12

积分

Rank: 1

等级: 新手上路

注册:
2024-5-6
曾用名:
发表于 2024-5-31 15:31 | 显示全部楼层 |阅读模式
下面的代码取85根2h的K线,测试时间指定20240501~20240530,1号出来的bar的数量第一天只有7根,往后每天能多取到2根2h(多一天),请问这是为什么?
[Python] 复制代码
    
bars = history_bars(stock, 85, context.frequency, ['open','high','low','close','datetime'], True, True) # skip_paused=true, include_now=true
print("%s Bars: ask %d (got %d)" % (stock,85,len(bars)))
print("Time               open    high    low    close") 
for i in range(len(bars)):
    print("%s : %.2f  %.2f  %.2f  %.2f" % (str(int(bars[i,4])),bars[i,0],bars[i,1],bars[i,2],bars[i,3]))


15:10:45 > 300308 Bars: ask 85 (got 7)
15:10:45 > Time                          open    high    low     close
15:10:45 > 20240429113000 : 187.96  189.99  185.59  188.16
15:10:45 > 20240429150000 : 188.17  188.90  185.90  187.70
15:10:45 > 20240430113000 : 187.50  192.70  186.56  187.74
15:10:45 > 20240430150000 : 187.85  188.49  186.13  186.31
15:10:45 > 20240506113000 : 191.00  192.53  184.15  186.82
15:10:45 > 20240506150000 : 187.00  187.00  182.85  183.22
15:10:45 > 20240507113000 : 187.78  188.65  172.50  173.16



补充内容 (2024-5-31 15:32):
15:10:45 > 300308 Bars: ask 85 (got 9)
15:10:45 > Time               open    high    low     close
15:10:45 > 20240429113000 : 187.96  189.99  185.59  188.16
15:10:45 > 20240429150000 : 188.17  1...
回复

使用道具 举报

4

主题

12

帖子

12

积分

Rank: 1

等级: 新手上路

注册:
2024-5-6
曾用名:
 楼主| 发表于 2024-5-31 16:05 | 显示全部楼层
如果我从5月30号开始回测两小时数据,history_bars只能得到15个K
16:03:51 > 2024-05-30 11:30:00 >> 300308 Bars: ask 85 (got 15)
16:03:51 > Time               open    high    low    close
16:03:51 > 20240521113000 : 176.66  180.22  176.66  177.17
16:03:51 > 20240521150000 : 176.99  177.76  175.77  177.43
16:03:51 > 20240522113000 : 176.00  176.84  172.76  174.24
16:03:51 > 20240522150000 : 174.28  174.60  172.84  173.17
16:03:51 > 20240523113000 : 178.00  178.96  168.89  175.90
16:03:51 > 20240523150000 : 175.83  176.00  172.75  173.79
16:03:51 > 20240524113000 : 172.00  179.65  171.34  173.35
16:03:51 > 20240524150000 : 173.05  173.05  164.98  165.39
16:03:51 > 20240527113000 : 166.11  170.60  165.00  167.00
16:03:51 > 20240527150000 : 167.00  168.58  166.01  168.39
16:03:51 > 20240528113000 : 167.00  167.37  161.21  161.21
16:03:51 > 20240528150000 : 161.08  162.14  160.11  161.01
16:03:51 > 20240529113000 : 165.00  165.66  160.58  161.90
16:03:51 > 20240529150000 : 161.99  162.58  160.48  161.00
16:03:51 > 20240530113000 : 161.10  162.90  158.89  161.15
回复

使用道具 举报

4

主题

12

帖子

12

积分

Rank: 1

等级: 新手上路

注册:
2024-5-6
曾用名:
 楼主| 发表于 2024-6-1 11:09 | 显示全部楼层
换成日线可以获得85根K,日线以下比如2h就得不到想要数量的K线,不是数据不全,已经补足了5分钟数据,有人知道是为什么嘛?
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-6-3 09:26 | 显示全部楼层
这个是目前回测里取数据的机制。

在回测设置得开始时间位置附近是可能无法取到完整的数据的。

这是因为那个回测机制是先按照你设置的时间区间,去切分数据,但是在时间起点位置 稍微多切了部分历史数据,所以你一开始取数据是有,但是不全。随着位置的推移,你进入数据区间越来越深,能取到的就多起来了。  所以本质问题是回测是先取数据,然后再用这段数据区间进行回测的。  
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2024-12-28 13:21 , Processed in 0.175631 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表