我是python和pandas的初学者。我很难调整波动率调整移动平均线,所以我需要你的帮助。
波动率调整后的均线是一种均线,其中均线时段不是静态的,而是根据波动率动态调整。
我想要编码的是
我已尝试过此代码,但只是失败了。我不知道问题是什么。如果您知道问题或任何更好的代码建议,请告诉我。
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import pandas_datareader.data as web
def price(stock, start):
price = web.DataReader(name=stock, data_source='yahoo', start=start)['Adj Close']
price = price / price[0]
a = price.resample('M').last().to_frame()
a.columns = ['price']
return a
a = price('SPY','2000-01-01')
a['volperiod'] = round(a.rolling(12).std()*100)*2
for i in range(len(a.index)):
k = a['price'].rolling(int(a['volperiod'][i])).mean()
a['ma'][i] = k[i]
print(a)
答案 0 :(得分:1)
首先:您需要计算pct_change
上的price
来计算volatility
的{{1}}
我的解决方案
returns