共7 条记录, 每页显示 10 条, 页签:
[1]
[浏览完整版]
标题:新人求助,,,,python代码!
1楼
tan901002 发表于: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
是哪里出了问题呢?感谢老大帮忙~~~~
2楼
tan901002 发表于: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
3楼
tan901002 发表于:2021/3/16 23:05:38
我补一下全部代码,求解决~~~谢谢~
错误信息 : index -1 is out of bounds for axis 0 with size 0
我主要是想问一下,怎么解决这个报错呢?
4楼
tan901002 发表于: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
我改了错误的地方,还是报错~~~~~~
5楼
tan901002 发表于: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
求大神帮助!!!!
6楼
yukizzc 发表于: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输出看数据不就清楚了吗,数据是[]你本地没有数据要补充下
建议用户一定要有一定调试能力,这种报错就是数组越界等
7楼
tan901002 发表于:2021/3/17 17:10:49
共7 条记录, 每页显示 10 条, 页签:
[1]