本文主要是介绍ptrade排坑日记——交易策略报错: ‘NoneType‘ object is not subscriptable 。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言
今天要和大家分享的一个问题是交易策略报错,希望大家在使用ptrade过程中遇见这个问题能够快速解决!
一、问题描述
交易策略报错:
File "/home/fly/sim_backtest/result/412974e0-a014-11ee-8735-d4f5ef8c353c/user_strategy.py", line 354, in ocall_BSpx_change_rate_2500 = all_snap_25[code]['px_change_rate']
TypeError: 'NoneType' object is not subscriptable
File /home/fly/sim_backtest/result/412974e0-a014-11ee-8735-d4f5ef8c353c/user_strategy.py, line 354 in ocall_BSpx_change_rate_2500 = all_snap_25[code]['px_change_rate']--> up = 22.5--> down = 11.27--> zdj = 20.199999999999999--> all_snap_25 = None--> balance = 2043--> circulation = 320035800--> px_change_rate_2457 = 3.24--> context = <StrategyContext {'initialized': True, 'commission': <Commission {'cost': 0.0003, 'tax': 0.001, 'min_trade_cost': 5.0}>, 'blotter': <Blotter {'current_dt': date ...--> modulus = 0.09984025559105425--> tj2 = True--> spj = 20.449999999999999--> history = <class 'pandas.core.panel.Panel'>
二、解决方案
1、首先根据报错提示,可以看出此报错是因为all_snap_25数据为空,去空数据字典导致报错!
2、经过和客户的沟通,all_snap_25=get_snapshot(get_Ashares0),快照获取为空!
3、检查监控和定时任务,在报错时间行情快照没有报错警告!
4、当get_snapshot(Ⅱ)获取时,获取的应答数据为空,怀疑get_Ashares0,获取为空。
5、get_Ashares函数当时每个都是请求行情服务器的,后面在日初落地缓存请求直接从缓存取数据,避免由于在线请求过多导致get_Ashares返回数据偶发为空的问题!
结语
ptrade的渠道可以通过《ptrade开通详则》来获取,感谢看到这里,如果有更多疑问欢迎在评论区提出!
这篇关于ptrade排坑日记——交易策略报错: ‘NoneType‘ object is not subscriptable 。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!