-
The most turn-key open-source trading framework.
-
Uses Alpaca
-
Is lite enough to run on a Raspberry Pi Zero.
-
Backtesting and live trading in the same script, just change the backtesting variable.
-
Just add your own strategy and have it return an advice column.
-
Enter your own email credentials for error reporting.
-
Enter your own API keys.
-
Pull requests welcome.
- Input your Alpaca API Key and API Secret key to lines 23 and 24.
- Add your own strategy to
get_advice()
(line 500). The strategy should return a listadvice
(["buy", "sell", "buy", "buy", "sell"]
) and a variablelast_advice
of the last string inadvice
.
- limit the amount of data downloaded during live trading, right now it downloads all data since first trade but that will slow down the script over time
- i just limited it to 100 minutes as of right now
- if order declined due to pattern day trading protections, wait till tomorrow?
- maybe if last_equity < 25k and day_trades == 3, don't allow any trades
- if past market hours and holding positions, close them
- correlation graph of bot performance backtest & profit
- add some additional statistical analysis to the backtesting (STD, # of days up/# of days down)
- backtest AMZN ext market limit order, gradually increase limit_order difference if not filled with no shorting
- might need to add something to check if this has already been run because it appends over and over if i run it multiple times
- get rid of HOLD, and just replace with previous action
- if we can't buy QUANTITY, then trade CASH / limit_price
- MAKE SURE THAT WE'RE NOT GOING SHORT EVER ok maybe not
- backtest on AMZN cuz of its high price - DONE, it performed awful
- make it so the loading bar is only called if it will take a certain amount of time
- replace orders with order function
- add margin options
- check if need to trade during extended hours
- maybe I shouldn't do extended hours, it doesn't really seem to be worth it
- additonally, backtest closing positions before market close
- backtest with 2-4x margin during market hours
- maybe stop using market orders, seem to be losing quite a bit to slippage depending on volitility
- add a test to see if we actually get filled, and if not, try again
- maybe add a debugging mode to print stuff
- add a graph using Alpaca order data and put it underneath the backtesting graph to compare
- change the wait time until next day to wait for a specific time delta instead of checking every minute
- change the closing all positions because of using too much cash to correct to the amount of shares that we want instead of closing out
- add loading bar for waiting until open
- sometimes the market closes early on holiday's, should change the close early to a variable using API close times
- check the amount of usable cash before each trade to prevent overbuying or selling
- make strategy volatility adjustable
- going from short to long makes the bot buy too much, but is corrected shortly