A system to create, test, optimize, and deploy algorithmic trading strategies.
For a fully functional platform, check out NexusTrade. NexusTrade is a AI-Powered automated trading and investment platform that allows users to create, test, optimize, and deploy algorithmic trading strategies. It's faster and more configurable than NextTrade and easier to use.
- Combine conditions to form compound conditions. Combine compound conditions and create trading strategies.
- For example:
- Condition A: QQQ stock is 1 SD below its 5-day mean price
- Condition B: Buying power is above $8,000.
- Condition C: Condition A and condition B
- Strategy: If condition C, buy $3000 of SPY
- For example:
- Create unlimited portfolios with different combinations of strategies
- Backtest those strategies using historical data.
- Only stocks are currently supported, but cryptocurrency and options support is baked into the architecture
- Optimize the strategy's parameters using a genetic algorithm
- Choose hyperparameters like mutation rate, training period, validation period, and population size
- Choose to optimize percent gain, sortino ratio, sharpe ratio, or max drawdown
- Deploy the strategies live and see how it performs in real-time
Some architectural artifacts can be found at this link: https://drive.google.com/drive/folders/1TgZNGPd7TBWi47dWh0TI2nZ_9WUhv_P_?usp=sharing
- Mac, Linux or WSL2 preferred
- Tradier Account (with at least a free sandbox token; additional brokers TBD)
- Clone the repository.
- Install MongoDB community edition and enable it.
- Install the dependencies:
npm run install-all - Make sure all tests pass:
cd app && npm t && cd .. - Add your Tradier token to the
./app/envfile and rename the file to .env
- If needed, install Node.js. NVM Option:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash- Exit and restart the terminal session.
nvm install --lts
- Install MongoDB community edition and enable. For Ubuntu 20.04:
curl -fsSL https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.listsudo apt updatesudo apt install mongodb-org- Linux/Ubuntu specific:
sudo systemctl status mongod(verify it's running)sudo systemctl enable mongod(to auto-start at boot)
- WSL2 specific:
sudo mkdir -p /data/dbsudo chown -R `id -un` /data/dbwget -O mongod.sh https://raw.githubusercontent.com/mongodb/mongo/master/debian/init.dsudo mv ./mongod.sh /etc/init.d/mongodsudo chmod +x /etc/init.d/mongodsudo service mongod startsudo service mongod status(verify it's running)
mongo --eval 'db.runCommand({ connectionStatus: 1 })'(verify it's working)
- Clone the NextTrade repository:
cd ~ && git clone https://github.com/austin-starks/NextTrade && cd NextTrade - Install the dependencies:
npm run install-all - Copy the sample config file to .env
cp ./app/env ./app/.env - Add your Tradier token to the
./app/.envfile - Make sure all tests pass:
cd app && npm t; cd ..
- Open two terminal windows.
- In a terminal instance, turn on the client:
cd client; npm start - In another terminal instance, turn on the server:
cd app; npm start - Once started, load the app: http://localhost:3000
npm install pm2@latest -gcd ~/NextTrade/client && pm2 start npm --name "NextTrade-Client" -- startcd ~/NextTrade/app && pm2 start npm --name "NextTrade-App" -- startpm2 save
- To start the client+app:
pm2 start all - To stop the client+app:
pm2 stop all - Other Useful commands:
pm2 status,pm2 logs,pm2 monitSee PM2 Quickstart for more.