參考網址 :
https://github.com/backtrader/backtrader
找尋了很多以python為主的股票回測套件, 最後決定用backtrader
原因是因為.....代碼貼上直接就可以用了~
這是GiHub原本的代碼, 直接當然不能用
這次歷史資料用的是中鋼~
import datetime
import pandas as pd
import backtrader as bt
class SmaCross(bt.SignalStrategy):
def __init__(self):
sma1, sma2 = bt.ind.SMA(period=10), bt.ind.SMA(period=30)
crossover = bt.ind.CrossOver(sma1, sma2)
self.signal_add(bt.SIGNAL_LONG, crossover)
cerebro = bt.Cerebro()
cerebro.addstrategy(SmaCross)
dataframe = pd.read_csv('c://2002.tw.csv', index_col=0, parse_dates=True)
dataframe['openinterest'] = 0
data0 = bt.feeds.PandasData(dataname=dataframe,
fromdate = datetime.datetime(2011, 1, 1),
todate = datetime.datetime(2012, 12, 31)
)
cerebro.adddata(data0)
cerebro.run()
cerebro.plot()
結果跑出來是這樣
真的非常精美, 有空大家可以上他的網站研究一下~