我有一个非常奇怪的问题,我能够快速而肮脏地解决这个问题,但我想了解背后的原因。
我接下来的教程:https://www.datacamp.com/community/tutorials/finance-python-trading#backtesting
他们给出了这段代码:
# Import `pyplot` module as `plt`
import matplotlib.pyplot as plt
# Initialize the plot figure
fig = plt.figure()
# Add a subplot and label for y-axis
ax1 = fig.add_subplot(111, ylabel='Price in $')
# Plot the closing price
aapl['Close'].plot(ax=ax1, color='r', lw=2.)
# Plot the short and long moving averages
signals[['short_mavg', 'long_mavg']].plot(ax=ax1, lw=2.)
# Plot the buy signals
ax1.plot(signals.loc[signals.positions == 1.0].index,
signals.short_mavg[signals.positions == 1.0],
'^', markersize=10, color='m')
# Plot the sell signals
ax1.plot(signals.loc[signals.positions == -1.0].index,
signals.short_mavg[signals.positions == -1.0],
'v', markersize=10, color='k')
# Show the plot
plt.show()
生成此图表: Tutorials's plot
我完全复制了代码并遵循了教程,只是输入了一些不同的数据(另一个库存)。
但是我得到了这张图:
现在,如果我采用代码绘制买入和卖出信号并将其向上移动到ax1 =后的点... 一切都按照应有的方式进行。我试图更改参数,也只是获取轴的整个数据并用1填充系列,只是为了得到一条线。它产生了几乎相同的图形。
有谁知道为什么会这样,如果有的话怎么避免呢?
我认为它与matplotlib的某种更新有关,因为它适用于数据广播环境。
非常感谢任何帮助。非常感谢!