Add project README
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
63
README.md
Normal file
63
README.md
Normal file
@@ -0,0 +1,63 @@
|
||||
# fit
|
||||
|
||||
A TypeScript trading bot built on the Alpaca paper trading API. It runs pluggable strategies that use indicators to generate buy/sell signals.
|
||||
|
||||
## How it works
|
||||
|
||||
1. The **Bot** waits for market open via the Alpaca clock API
|
||||
2. It runs all registered **Strategies** concurrently, each with its own capital allocation
|
||||
3. Each strategy uses **Indicators** to evaluate market conditions and returns buy/sell **Signals**
|
||||
4. The **Executor** processes the signals
|
||||
5. The bot loops hourly, waiting for the next market open
|
||||
|
||||
## Setup
|
||||
|
||||
Requires an [Alpaca](https://alpaca.markets/) paper trading account. Create a `.env` file in the project root:
|
||||
|
||||
```
|
||||
ALPACA_KEY_ID=your_key_id
|
||||
ALPACA_SECRET_KEY=your_secret_key
|
||||
```
|
||||
|
||||
Install dependencies:
|
||||
|
||||
```
|
||||
npm install
|
||||
```
|
||||
|
||||
## Running
|
||||
|
||||
```sh
|
||||
# Build and run
|
||||
npm run build
|
||||
npm start
|
||||
|
||||
# Development (auto-reload)
|
||||
npm run dev
|
||||
|
||||
# Docker
|
||||
docker build -t fit .
|
||||
docker run --env-file .env fit
|
||||
```
|
||||
|
||||
## Testing and linting
|
||||
|
||||
```sh
|
||||
npm test
|
||||
npm run lint
|
||||
```
|
||||
|
||||
## Project structure
|
||||
|
||||
```
|
||||
src/
|
||||
index.ts # Entry point, main loop
|
||||
alpaca.ts # Alpaca API client wrapper
|
||||
bot.ts # Orchestrator, runs strategies each day
|
||||
executor.ts # Executes signals from strategies
|
||||
indicator.ts # Indicator interface
|
||||
strategy.ts # Strategy/Signal interfaces
|
||||
trading.ts # Utilities (wait, market open, etc.)
|
||||
momentum-indicator.ts # Samples QQQ direction after open
|
||||
momentum-strategy.ts # Trades TQQQ/SQQQ based on momentum
|
||||
```
|
||||
Reference in New Issue
Block a user