gpt4 book ai didi

python - 如何调整每周分析的移动平均线?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:53:10 26 4
gpt4 key购买 nike

我需要根据每周间隔绘制移动平均线,例如 3 周间隔或 21 天,但在调整错过的日期时,它现在计数为 0,因此它给出了不正确的结果。

from nsepy import get_history as gh
from datetime import date
import pandas as pd

nifty = gh(symbol="NIFTY IT",
start=date(2015,1,1),
end=date(2016,1,3),
index=True)
idx = pd.date_range('01-01-2015', '01-01-2016')
nifty.index = pd.DatetimeIndex(nifty.index)
nifty = nifty.reindex(idx, fill_value=0)
nifty["3weekMA"]=nifty["Close"].rolling(21).mean()
nifty[nifty.Open != 0]

可以做些什么来解决这个问题。

这是实际结果: ![enter image description here

想要的结果必须是这样的:

![enter image description here

这是因为收盘价的移动平均线必须在 11000 而不是 8000 的范围内。

最佳答案

想到的最简单的事情就是从数据中删除周末值:

nifty=nifty[nifty['Close']!=0]

然后进行移动平均:

nifty["3weekMA"]=nifty["Close"].rolling(15).mean()

只需使用 15 而不是 21,它就会正常工作。但是,很少有关于此的指示。滚动平均值将给出最后 15 个值的平均值,但问题是它会导致您的情况成为第 15 个值或第 21 个值,因此结果图看起来像这样:

enter image description here

因此,为了解决这个问题,我们需要做的就是将新发现的移动平均线向上移动,或者可能只是绘制前 7 个之后和最后 7 个之前的收盘价以及移动平均值,这看起来像:

plt.figure(figsize=(10,8))
plt.plot(nifty['Close'].values.tolist()[7:-7])
plt.plot(nifty['3weekMA'].values.tolist()[14:])

enter image description here

好吧,但是可视化只是为了表示目的;我希望您了解如何处理此类数据的要点。我希望这能解决您的问题,是的,移动平均值确实是 11Ks 而不是 8Ks。

示例输出:

        Date         Open       High        Low         Close       Volume      Turnover        3weekMA
-------------------------------------------------------------------------------------------------
2015-01-15 11672.30 11774.50 11575.10 11669.85 13882213 1.764560e+10 NaN
2015-01-16 11708.85 11708.85 11582.85 11659.60 12368107 1.714690e+10 NaN
2015-01-19 11732.50 11797.60 11629.05 11642.75 13696381 1.183750e+10 NaN
2015-01-20 11681.80 11721.90 11635.70 11695.00 11021415 1.234730e+10 NaN
2015-01-21 11732.45 11838.30 11659.70 11813.70 18679282 1.973070e+10 11418.113333
2015-01-22 11832.55 11884.50 11782.95 11850.85 15715515 1.655670e+10 11460.456667
2015-01-23 11877.90 11921.00 11767.40 11885.15 30034833 2.001210e+10 11494.660000
2015-01-27 11915.60 11917.25 11679.55 11693.45 17005337 1.866840e+10 11524.320000
2015-01-28 11712.55 11821.80 11693.80 11809.55 16876897 1.937590e+10 11580.963333
2015-01-29 11812.35 11861.50 11728.75 11824.15 15520902 2.160790e+10 11641.506667
2015-01-30 11998.35 12003.35 11799.35 11824.75 18559078 2.905950e+10 11695.280000
2015-02-02 11871.35 11972.60 11847.80 11943.95 17272113 2.304050e+10 11731.566667
2015-02-03 11963.75 12000.65 11849.00 11963.90 21053605 1.770590e+10 11759.583333

关于python - 如何调整每周分析的移动平均线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53619239/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com