前言
今天要和大家分享的一个问题是交易策略报错,希望大家在使用ptrade过程中遇见这个问题能够快速解决!
一、问题描述
交易策略报错:
File "/home/fly/sim_backtest/result/412974e0-a014-11ee-8735-d4f5ef8c353c/user_strategy.py", line 354, in ocall_BS
px_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_BS
px_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开通详则》来获取,感谢看到这里,如果有更多疑问欢迎在评论区提出!
标签:25,get,--,object,报错,为空,snap,subscriptable From: https://blog.csdn.net/vv_LCJL319/article/details/141600537