用matplotlib写backtrader的图表
时间: 2024-03-21 22:13:49 浏览: 18
backtrader是一个Python的开源框架,用于开发和回测交易策略。它可以生成交易策略的结果和图表,但是它的图表功能比较有限。如果你想用更好的图表展示你的回测结果,你可以使用matplotlib。
下面是一个使用matplotlib绘制backtrader图表的示例代码:
```python
import matplotlib.pyplot as plt
from backtrader.plot import plot
from backtrader import Cerebro, TimeFrame, Analyzer
import backtrader.indicators as btind
from datetime import datetime
class MyStrategy(bt.Strategy):
def __init__(self):
self.sma = btind.SimpleMovingAverage(self.data)
def next(self):
if self.data.close[0] > self.sma[0]:
self.buy()
if self.data.close[0] < self.sma[0]:
self.sell()
cerebro = Cerebro()
data = bt.feeds.YahooFinanceData(dataname='AAPL', fromdate=datetime(2017, 1, 1), todate=datetime(2018, 12, 31))
cerebro.adddata(data)
cerebro.addstrategy(MyStrategy)
cerebro.run()
# 使用backtrader内置的plot函数
cerebro.plot()
# 使用matplotlib绘制图表
fig, ax = plt.subplots()
plt.plot(data.datetime.date(), data.close)
plt.plot(data.datetime.date(), cerebro.runstrats[0][0].sma)
plt.show()
```
使用backtrader内置的plot函数可以方便地绘制图表,但是它的样式比较固定。如果你想要更加自由地控制图表的样式,你可以使用matplotlib。在这个例子中,我们使用matplotlib绘制了收盘价和移动平均线的图表。