Files
v2realbot/testy/archive/alpacabacktrader/test.py
David Brazda af9e944928 first commit
2023-04-12 21:00:03 +02:00

51 lines
1.3 KiB
Python

#udajne working example for using a minute
# timeframe in backtrader with alpaca api
import alpaca_backtrader_api
import backtrader as bt
import pandas as pd
from datetime import datetime
from strategies.tos_strategy import TOS
from dotenv import load_dotenv
import os
load_dotenv()
api_key = os.getenv('API_KEY_ID')
api_secret = os.getenv('API_SECRET')
alpaca_paper = os.getenv('ALPACA_PAPER')
cerebro = bt.Cerebro()
cerebro.addstrategy(TOS)
cerebro.broker.setcash(100000)
cerebro.broker.setcommission(commission=0.0)
cerebro.addsizer(bt.sizers.PercentSizer, percents=20)
store = alpaca_backtrader_api.AlpacaStore(
key_id=api_key,
secret_key=api_secret,
paper=alpaca_paper
)
if not alpaca_paper:
broker = store.getbroker() # or just alpaca_backtrader_api.AlpacaBroker()
cerebro.setbroker(broker)
DataFactory = store.getdata # or use alpaca_backtrader_api.AlpacaData
data0 = DataFactory(
dataname='AAPL',
timeframe=bt.TimeFrame.TFrame("Minutes"),
fromdate=pd.Timestamp('2018-11-15'),
todate=pd.Timestamp('2018-11-17'),
historical=True)
cerebro.adddata(data0)
#Resampler for 15 minutes
cerebro.resampledata(data0,timeframe=bt.TimeFrame.Minutes,compression=15)
print('Starting Portfolio Value: %.2f' % cerebro.broker.getvalue())
cerebro.run()
print('Final Portfolio Value: %.2f' % cerebro.broker.getvalue())
cerebro.plot()