u010493679 2021-12-03 23:16 采纳率: 95.7%
浏览 76
已结题

for 循环,运行到某一个 参数,就停止了,可以跳过吗?

第一个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="不符合"



img

  • 写回答

2条回答 默认 最新

  • CSDN专家-文盲老顾 2021-12-03 23:25
    关注

    笑哭。。。。还在这里和循环较劲呢啊,你先描述下你的需求,给出原始数据,和期望的结果,那样比较简单

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月3日
  • 已采纳回答 12月3日
  • 修改了问题 12月3日
  • 修改了问题 12月3日
  • 展开全部

悬赏问题

  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥30 vmware exsi重置后登不上
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题