欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 新人求助,,,,python代码!

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有2074人关注过本帖树形打印复制链接

主题:新人求助,,,,python代码!

帅哥哟,离线,有人找我吗?
tan901002
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:26 积分:0 威望:0 精华:0 注册:2021/2/23 3:05:08
新人求助,,,,python代码!  发帖心情 Post By:2021/3/16 22:59:40 [只看该作者]

close1 = history_bars_date(index_num,begin_date,end_date,'1d','close')  # 把股票代码传到这个函数中得到区间每天的收盘价
num1 = ( round(close1[-1],2) - round(close1[0],2) )/round(close1[0],2) * 100  #    大盘的涨跌幅
index_num = round(num1,2)

name_num = get_blocks('上海A股',0) #求个股股票代码
for i in name_num: #遍历自选股中的每个股的股票代码
    
    close = history_bars_date(i,begin_date,begin_date,'1d','close')  #把股票代码传到这个函数中得到区间每天的收盘价
    close1 = history_bars_date(i,end_date,end_date,'1d','close')
    num = ((round(close1[0],2) - round(close[0],2))/ round(close[0],2)) * 100#
    if num > index_num:
        print(i)
    else:
        pass


我用自选股做测试能得到结果,但是用上海A股测试就报错了~

> 开始编译 <jzt_MyPython5> ......

> 编译错误 : IndexError
>     line : 14
> 错误信息 : index -1 is out of bounds for axis 0 with size 0



是哪里出了问题呢?感谢老大帮忙~~~~


 回到顶部
帅哥哟,离线,有人找我吗?
tan901002
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:26 积分:0 威望:0 精华:0 注册:2021/2/23 3:05:08
  发帖心情 Post By:2021/3/16 23:00:18 [只看该作者]

begin_date = '20210729' #计算的时间周期
end_date = '20210826'
name_num = get_blocks('自选股',1)
index_num = 'sh000001'

#求指数涨跌幅 

#计算指数区间的涨跌幅函数
close1 = history_bars_date(index_num,begin_date,end_date,'1d','close')  # 把股票代码传到这个函数中得到区间每天的收盘价
num1 = ( round(close1[-1],2) - round(close1[0],2) )/round(close1[0],2) * 100  #    大盘的涨跌幅
index_num = round(num1,2)

name_num = get_blocks('上海A股',0) #求个股股票代码
for i in name_num: #遍历自选股中的每个股的股票代码
    
    close = history_bars_date(i,begin_date,begin_date,'1d','close')  #把股票代码传到这个函数中得到区间每天的收盘价
    close1 = history_bars_date(i,end_date,end_date,'1d','close')
    num = ((round(close1[0],2) - round(close[0],2))/ round(close[0],2)) * 100#
    if num > index_num:
        print(i)
    else:
        pass

 回到顶部
帅哥哟,离线,有人找我吗?
tan901002
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:26 积分:0 威望:0 精华:0 注册:2021/2/23 3:05:08
  发帖心情 Post By:2021/3/16 23:05:38 [只看该作者]

我补一下全部代码,求解决~~~谢谢~
错误信息 : index -1 is out of bounds for axis 0 with size 0
我主要是想问一下,怎么解决这个报错呢?

 回到顶部
帅哥哟,离线,有人找我吗?
tan901002
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:26 积分:0 威望:0 精华:0 注册:2021/2/23 3:05:08
  发帖心情 Post By:2021/3/16 23:15:41 [只看该作者]

# 该Python代码用于模块定义,供其他Python代码或VBA调用。

from PythonApi import *

begin_date = '20210729' #计算的时间周期
end_date = '20210826'
index_num = 'sh000001'
name_num = get_blocks('自选股',1)
#求指数涨跌幅 
index_close = history_bars_date(index_num,begin_date,end_date,'1d','close')  # 把股票代码传到这个函数中得到区间每天的收盘价
num1 = (round(index_close[-1],2) - round(index_close[0],2))/ round(index_close[0],2) * 100 #    大盘的涨跌幅
index_num1 = round(num1,2)
for i in name_num: #遍历自选股中的每个股的股票代码
    close_star = history_bars_date(i,begin_date,begin_date,'1d','close')  #把股票代码传到这个函数中得到区间每天的收盘价
    close_end = history_bars_date(i,end_date,end_date,'1d','close')
    num = ((round(close_end[0],2) - round(close_star[0],2))/ round(close_star[0],2)) * 100#
    if num > index_num:
        print(i)
    else:
        pass

    





    
    > 开始编译 <jzt_MyPython5> ......

> 编译错误 : IndexError
>     line : 11
> 错误信息 : index -1 is out of bounds for axis 0 with size 0



我改了错误的地方,还是报错~~~~~~

 回到顶部
帅哥哟,离线,有人找我吗?
tan901002
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:26 积分:0 威望:0 精华:0 注册:2021/2/23 3:05:08
  发帖心情 Post By:2021/3/16 23:37:13 [只看该作者]

# 该Python代码用于模块定义,供其他Python代码或VBA调用。

from PythonApi import *

begin_date = '20210129' #计算的时间周期
end_date = '20210226'
index_num = 'sh000001'
name_num = get_blocks('上海A股',0)
#求指数涨跌幅 
index_close = history_bars_date(index_num,begin_date,end_date,'1d','close')  # 把股票代码传到这个函数中得到区间每天的收盘价
num1 = (round(index_close[-1],2) - round(index_close[0],2))/ round(index_close[0],2) * 100 #    大盘的涨跌幅
index_num1 = round(num1,2)
for i in name_num: #遍历自选股中的每个股的股票代码
    close_star = history_bars_date(i,begin_date,begin_date,'1d','close')  #把股票代码传到这个函数中得到区间每天的收盘价
    close_end = history_bars_date(i,end_date,end_date,'1d','close')
    num = (round(close_end[0],2) - round(close_star[0],2))/ round(close_star[0],2) * 100#
if num > index_num1:
    print(i)
else:
    pass






我试了,还是报错~~~~


>     line : 16
> 错误信息 : index 0 is out of bounds for axis 0 with size 0



求大神帮助!!!!

 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2021/3/17 11:03:41 [只看该作者]

from PythonApi import *


begin_date = '20210129' #计算的时间周期
end_date = '20210226'
index_num = 'sh000001'
name_num = get_blocks('上海A股',0)
#求指数涨跌幅
index_close = history_bars_date(index_num,begin_date,end_date,'1d','close')  # 把股票代码传到这个函数中得到区间每天的收盘价
num1 = (round(index_close[-1],2) - round(index_close[0],2))/ round(index_close[0],2) * 100 #    大盘的涨跌幅
index_num1 = round(num1,2)
for i in name_num: #遍历自选股中的每个股的股票代码
    close_star = history_bars_date(i,begin_date,begin_date,'1d','close')  #把股票代码传到这个函数中得到区间每天的收盘价
    close_end = history_bars_date(i,end_date,end_date,'1d','close')
    print(close_star)
    num = (round(close_end[0],2) - round(close_star[0],2))/ round(close_star[0],2) * 100#
if num > index_num1:
    print(i)
else:
    pass

 

 

 

你自己在出错代码前面加print输出看数据不就清楚了吗,数据是[]你本地没有数据要补充下

建议用户一定要有一定调试能力,这种报错就是数组越界等


 回到顶部
帅哥哟,离线,有人找我吗?
tan901002
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:26 积分:0 威望:0 精华:0 注册:2021/2/23 3:05:08
  发帖心情 Post By:2021/3/17 17:10:49 [只看该作者]

好的,谢谢谢谢~我也是新手,请多包涵~~~

 回到顶部