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

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 yolov8边框坐标
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂