python
pip install zipline
python
[exchange]
root_symbol = AAPL
[account]
capital_base = 1000000
start_date = 2010-01-01
end_date = 2020-12-31
[environ]
data_frequency = 1d
[performance]
enable_analytic_snapshot = True
[benchmark]
symbol = ^GSPC
python
from zipline.api import order, record, symbol
def initialize(context):
context.asset = symbol('AAPL')
def handle_data(context, data):
ma1 = data.history(context.asset, 'close', 50, '1d').mean()
ma2 = data.history(context.asset, 'close', 200, '1d').mean()
if ma1 > ma2:
order(context.asset, 1)
elif ma1 < ma2:
order(context.asset, -1)
record(ma1=ma1, ma2=ma2)
python
zipline run -f my_strategy.py --start 2010-01-01 --end 2020-12-31 -o result.pickle
python
import pandas as pd
results = pd.read_pickle("result.pickle")
print(results.head(10))