Financial Trading in Python
Chelsea Yang
Data Science Instructor
Can be constructed using:
Commonly used in algorithmic trading
bt.algos.SelectWhere()
bt.algos.WeighTarget()
# Get price data by the stock ticker
price_data = bt.get('aapl', start='2019-11-1', end='2020-12-1')
# Calculate SMA
sma = price_data.rolling(20).mean()
Alternatively, use talib
to calculate the indicator:
# Calculate SMA
import talib
sma = talib.SMA(price_data['Close'], timeperiod=20)
# Define the signal-based strategy
bt_strategy = bt.Strategy('AboveEMA',
[bt.algos.SelectWhere(price_data > sma),
bt.algos.WeighEqually(),
bt.algos.Rebalance()])
# Create the backtest and run it
bt_backtest = bt.Backtest(bt_strategy, price_data)
bt_result = bt.run(bt_backtest)
# Plot the backtest result
bt_result.plot(title='Backtest result')
Financial Trading in Python