熊猫绘制金融数据绝对奇怪的长短信号行为

时间:2017-12-15 18:18:10

标签: python pandas matplotlib plot finance

我有一个非常奇怪的问题,我能够快速而肮脏地解决这个问题,但我想了解背后的原因。

我接下来的教程: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

我完全复制了代码并遵循了教程,只是输入了一些不同的数据(另一个库存)。

但是我得到了这张图:

My Plot

现在,如果我采用代码绘制买入和卖出信号并将其向上移动到ax1 =后的点... 一切都按照应有的方式进行。我试图更改参数,也只是获取轴的整个数据并用1填充系列,只是为了得到一条线。它产生了几乎相同的图形。

有谁知道为什么会这样,如果有的话怎么避免呢?

我认为它与matplotlib的某种更新有关,因为它适用于数据广播环境。

非常感谢任何帮助。非常感谢!

0 个答案:

没有答案