Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共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]


Powered By Dvbbs Version 8.3.0
Processed in .04688 s, 2 queries.