Automated trading system for Northman Trader (Northy) tweets. The system will monitor Northy's tweets and execute trades based on the signals provided. The system will also send notifications to the user when trades are executed.
flowchart LR
subgraph "x.com"
northy["Northy"]
end
report["Report \n(cli_saxo.py)"];
cliSig["Signal Analyzer \n(cli_signals.py)"];
cliSax["Trader \n(cli_saxo.py)"];
subgraph "Windows Box"
noc["Notifications Center"];
cliNoc["Data Collector \n(cli_noc.py)"];
end
subgraph "Database"
DB["MongoDB"]
end
subgraph "saxobank.com"
bank["SaxoBank"]
end
subgraph "Customer"
phone["Phone"]
email["Email"]
end
northy --> |1. Tweets| noc
cliNoc --> |Watch for \nNotifications| noc
cliNoc --> |Parse| cliNoc
cliNoc --> |2. Insert Tweet| DB
cliSig --> |3. Watch for \nTweets| DB
cliSig --> |Parse| cliSig
cliSig --> |4. Insert Trade Signals| DB
cliSax --> |Watch| DB
cliSax --> |8. Execute Trade| bank
cliSax --> |9. Push Notification| phone
report --> |10. P&L Trade Summary| email
- Setup MongoDB Atlas (or local MongoDB)
- Setup Prowl for push notifications
- Setup SparkPost for email notifications
- Setup SaxoBank account and OpenAPI access
- Update
conf/secrets.iniandconf/saxo_config.iniwith your credentials - Encrypt the secrets file with
python cli_secrets.py --encrypt [filename]
- Run
python cli_noc.py --prod watchon Windows to watch for notifications - Run
python cli_signals.py --prod watchto start the signal analyzer - Run
python cli_saxo.py --prod watchto start the trader - Run
python cli_saxo.py --report-closed-positions --jobto generate a report
- Get to 100% code coverage
- Run tests using GitHub Actions
- Setup branch protection rules
- Wrap all background jobs into a single threaded service
- Run background services using GitHub Actions?
- US LLMs to parse alert tweets
- Support executing trades for multiple customers (profiles)
- Support other trading platforms, such as TD365