m0_58296881 2022-06-07 17:01 采纳率: 100%
浏览 653
已结题

Python报错:name ’get_price’ is not defined ,请问要怎么解决呀,前面已经对get_price定义了呀

我进行月份效应的检验,输入代码如下:

月份效应

获取数据

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
#正常显示画图时出现的中文和负号
from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']
mpl.rcParams['axes.unicode_minus']=False

def get_daily_ret(security,start_date,end_date):
df=get_price(security, start_date,end_date, frequency='daily', fields=['open','close','high','low','volume','money'])
df.index=pd.to_datetime(df.index)

计算收益率

daily_ret=df['close'].pct_change()

删除缺失值

daily_ret=daily_ret.dropna()
return daily_ret

月度收益情况

def plot_monthly_ret(security,title):
daily_ret=get_daily_ret(security,start_date,end_date)
monthly_ret=daily_ret.resample('M').apply(lambda x:((1+x).prod()-1))
plt.rcParams['figure.figsize']=[20,5]
monthly_ret.plot()
start=monthly_ret.index[0]
end=monthly_ret.index[-1]

#显示月收益率大于3/4分位数的点
dates=monthly_ret[monthly_ret>monthly_ret.quantile(0.75)].index
for i in range(0,len(dates)):
plt.scatter(dates[i], monthly_ret[dates[i]],color='r')
labs = mpatches.Patch(color='red',alpha=.5, label="月收益率高于3/4分位")
plt.title(title+'月度收益率',size=15)
plt.legend(handles=[labs])
plt.xlabel('时间')
plt.ylabel('收益率')
plt.show()

security='000300.XSHG'
start_date='2012-01-01'
end_date='2022-04-01'
plot_monthly_ret(security,'沪深300指数')
最后Python报错:name ’get_price’ is not defined
,请问要怎么解决呀,前面已经对get_price定义了呀

  • 写回答

4条回答 默认 最新

  • 请叫我问哥 Python领域新星创作者 2022-06-07 17:23
    关注

    你的代码里 df = get_price()并不是对get_price进行定义了,恰恰相反,这句代码是要使用它,但是它之前没有被定义,所以报错了。
    你检查一下是不是在代码的其他地方有类似于 def get_price() 这样的定义方法,或者是复制黏贴时漏掉了

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

报告相同问题?

问题事件

  • 系统已结题 6月15日
  • 已采纳回答 6月7日
  • 创建了问题 6月7日

悬赏问题

  • ¥15 双目摄像头标定后的校准文件
  • ¥15 从键盘输入不管多少字符或者数组 输出的时候先提示输出再显示结果 输出的时候字符间间隔一个空格符
  • ¥30 频率分析法分析绘制奈奎斯特图、波特图
  • ¥15 弹出来一万个系统找不到指定的文件框框,怎么解决
  • ¥15 ADS生成的微带线为什么是蓝色空心的
  • ¥15 求一下解题思路,完全不懂
  • ¥15 tensorflow
  • ¥15 densenet网络结构中,特征以cat方式复用后是怎么进行误差回传的
  • ¥15 STM32G471芯片spi设置了8位,总是发送16位
  • ¥15 R语言并行计算beta-NTI中tree文件的类型