金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 144|回复: 9

其他品种没问题,新品种报错

[复制链接]

221

主题

857

帖子

857

积分

等级: 免费版

注册:
2022-4-2
曾用名:
发表于 2024-11-15 10:33 | 显示全部楼层 |阅读模式
老师好,策略加载在其他品种都没有问题,在新品种出现这个报错提示怎么办
截图202411151033132997.png
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-11-15 11:21 | 显示全部楼层
本帖最后由 技术009 于 2024-11-15 11:22 编辑

这个报错 说明你在迭代一个不可迭代的对象。大概率是你迭代了一个None对象了。

这个你要查 你为什么会获取到一个None对象了。如果是新品种,你看看是不是查询的时间区段 这个品种就没上市呢。


金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

221

主题

857

帖子

857

积分

等级: 免费版

注册:
2022-4-2
曾用名:
 楼主| 发表于 2024-11-15 16:39 | 显示全部楼层
技术009 发表于 2024-11-15 11:21
这个报错 说明你在迭代一个不可迭代的对象。大概率是你迭代了一个None对象了。

这个你要查 你为什么会获 ...

那不对呀,前面的问题解答是,如果获取的数据量超过了品种上市日期以来的数据,会自动获取上市以来的数据不是吗
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-11-15 17:08 | 显示全部楼层
你直接贴你的代码,报错位置的代码。我也不清楚你怎么获取了一个None对象的。

还有系统不会自动给你补数据,前面的说法是你本地首先有数据。你超出的日期,撑死了也只能获取你本地下过的数据,没下过的不会自动给你补下来的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

2

主题

598

帖子

639

积分

Rank: 9Rank: 9Rank: 9

等级: 管理员

注册:
2021-5-10
曾用名:
发表于 2024-11-15 17:10 | 显示全部楼层
胖虎爱吃鱼 发表于 2024-11-15 16:39
那不对呀,前面的问题解答是,如果获取的数据量超过了品种上市日期以来的数据,会自动获取上市以来的数据 ...

这种一定是你得到了一个空对象,你要自己查一下造成空对象的原因。2楼只是给你一个造成空对象的常见方向。这种执行时的错误只能基于自己的环境调试后才能定位问题
回复

使用道具 举报

221

主题

857

帖子

857

积分

等级: 免费版

注册:
2022-4-2
曾用名:
 楼主| 发表于 2024-11-18 14:40 | 显示全部楼层
技术009 发表于 2024-11-15 17:08
你直接贴你的代码,报错位置的代码。我也不清楚你怎么获取了一个None对象的。

还有系统不会自动给你补数 ...

        if code in context.blocks["多策略"]:
            indicators['短线1m'] = safe_get_indicator(code, '短箭1m', 'cc0', "10,2,4,20", '1m', 300000)
            indicators['短线3m'] = safe_get_indicator(code, '短箭', 'cc0', "10,2,5,20", '3m', 100000)
            indicators['中线5m'] = safe_get_indicator(code, '中箭', 'cc0', "9,8,3,20", '5m', 60000)
            indicators['长线10m'] = safe_get_indicator(code, '长箭', 'cc0', "7,13,6,20", '10m', 30000)
        else:
            indicators['短线1m'] = 0
            indicators['短线3m'] = 0      
            indicators['中线5m'] = 0
            indicators['长线10m'] = 0
回复

使用道具 举报

221

主题

857

帖子

857

积分

等级: 免费版

注册:
2022-4-2
曾用名:
 楼主| 发表于 2024-11-18 14:42 | 显示全部楼层
技术009 发表于 2024-11-15 17:08
你直接贴你的代码,报错位置的代码。我也不清楚你怎么获取了一个None对象的。

还有系统不会自动给你补数 ...

错了,是这一行代码split_date = get_split(code,2)[-1].ex_dividend_date #获取合约换月日期
我知道了,是不是新合约没有换月,所以出现这个报错
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-11-18 14:42 | 显示全部楼层
是的。 新品种还没来得及换月。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

221

主题

857

帖子

857

积分

等级: 免费版

注册:
2022-4-2
曾用名:
 楼主| 发表于 2024-11-18 16:21 | 显示全部楼层
技术009 发表于 2024-11-18 14:42
是的。 新品种还没来得及换月。

有什么解决方案吗,可以跳过这个;try-except?
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2024-11-18 16:22 | 显示全部楼层
对。只能这样了。

或者你先判断get_split 获取的结果 再做后续的处理即可。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-27 22:25 , Processed in 0.237109 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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