第一个for 循环,运行到000980,就停止了,之后的值都没有运行,应该是目前代码写的有问题?
1,可以跳过000980(以及类似的),然后继续运行吗,运行完所有的值?
2、或者可以运行完所有的xuangu,输出类似于000980的值
3、如果有时间,麻烦帮我看下,怎么改进好,
def handlebar(ContextInfo):
try:
xuangu=[['000498.SZ', 7.56, 5.53],
['000528.SZ', 10.540000000000001, 7.13],
['000938.SZ', 31.15, 23.0],
['000975.SZ', 10.4, 8.36],
['000980.SZ', 9.31, 8.18],
['000995.SZ', 37.67, 20.52],
['001896.SZ', 11.3, 6.1],
['002007.SZ', 31.98, 27.68],
['002025.SZ', 84.5, 74.37],
['002050.SZ', 27.37, 22.2],
['002123.SZ', 25.2, 16.79],
['002125.SZ', 15.19, 10.65],
['002135.SZ', 13.91, 8.78],
['002140.SZ', 16.69, 10.61],
['002189.SZ', 22.77, 20.12]]
for s in range(len(xuangu)):
kaishishijian='20190101093000'
jieshushijian='20211203135959'
df60 = ContextInfo.get_market_data(
fields = ['high', 'low'],
stock_code = [xuangu[s][0]],
start_time = kaishishijian,
end_time = jieshushijian,
period = '1h',
dividend_type = 'front')
df2 = df60[["high","low"]]
data = df2.values.tolist()
data.reverse()
data
#print(xuangu[s][0],len(data))
#lh=['000498.SZ',7.56,5.53]
huizong = []
shifangzuididian = xuangu[s][1]-(xuangu[s][1]-xuangu[s][2])/0.585
#print(shifangzuididian)
for i1 in range(len(data)):
for i2 in range(len(data)):
if data[i2][1] <= shifangzuididian:
l=data[:i2+1]
l.reverse()
#print(l)
break
l=l
weizhi = 0
high = l[0][0]
low = l[0][1]
num = 0
for i3 in range(len(data)):
for i in range(len(l)):
if l[i+weizhi][0] >= high and l[i+weizhi][1] > low:
if num >=3:
high = l[i+weizhi][0]
low= low
num1 = num
#print(high,low,i+weizhi,num,1,num1)
break
num = 0
high = l[i+weizhi][0]
low= low
if l[i+weizhi][0] >= high and l[i+weizhi][1] <= low:
if num >=3:
high = l[i+weizhi][0]
low= l[i+weizhi][1]
#print(high,low,i+weizhi,2)
break
num = 0
high = l[i+weizhi][0]
low= l[i+weizhi][1]
if l[i+weizhi][0] < high and l[i+weizhi][1] >= low:
high = high
low= low
num = num+1
#print(high,low,i+weizhi,3)
#仅输出了最后一个
if l[i+weizhi][0] <= high and l[i+weizhi][1] <= low:
if num >=3:
high = l[i+weizhi][0]
low= l[i+weizhi][1]
#print(high,low,i+weizhi,4)
break
num = 0
high = l[i+weizhi][0]
low= l[i+weizhi][1]
weizhi =weizhi+i
high = high
low = low
num = 0
jileiqujianzuidizhi = min([l[w+weizhi-num1][1] for w in range(num1+1)])
xuhuicheweizhi = l[weizhi-num1-1][0]-(l[weizhi-num1-1][0]-jileiqujianzuidizhi)/0.585
if xuhuicheweizhi > low:
kk="符合要求"
#print(kk)
#huizong1.append([kk])
if xuhuicheweizhi <= low:
kk="不符合要求"
jileiqujianqiangao = max([l[w][0] for w in range(weizhi)])
jileiqujianzuidizhi = jileiqujianzuidizhi
shifangzuididian = jileiqujianqiangao-(jileiqujianqiangao-jileiqujianzuidizhi)/0.585
#print(kk,jileiqujianqiangao,jileiqujianzuidizhi,shifangzuididian,high,low)
#huizong.append([kk,jileiqujianqiangao,jileiqujianzuidizhi,shifangzuididian,high,low,len(l),num1])
huizong.append(kk)
break
shifangzuididian=shifangzuididian
#break
#huizong = huizong
#print(huizong1)
#print(len(huizong))
#print(huizong)
if len(huizong) > 0 :
print(xuangu[s][0],"不符合要求")
except:
str="不符合"