# Scuriolus
**Scuriolus** is a modular trading bot platform. It can apply different *strategies* to various *markets*, as described below.
## π Installation
- Clone the project.
- Copy `.env.example` as `.env` and complete it with your API (facultative, only to use the **Mexc** market)
Once that's done, you can run the tests:
```bash
cargo test --all --features mexc
```
> βΉοΈ Note for french users : Mexc.com is blocked in France. Use a VPN to access the API.
## π CLI
The command-line interface is still under development. More features will be added soon.
## π Market
Markets represent external trading platforms that the bot can interact with.
### Mexc
The **Mexc** market use the [Mexc API](https://mexcdevelop.github.io/apidocs/spot_v3_en/#introduction) for real trading.
### TestWithMexc
**TestWithMexc** uses the [Mexc API](https://mexcdevelop.github.io/apidocs/spot_v3_en/#introduction) to fetch live exchange prices but operates on a local database to emulate trades.
It's designed to simulate and test strategies in a sandboxed environment.
> β οΈ Currently, fees and volumes are not taken into account.
## π§ Strategies
**Strategies** define how the bot operates to maximize gains. Youβre encouraged to develop and contribute your own strategies.
### StrictBuy
**StrictBuy** is a simple benchmark strategy. It buys as much as possible at the start and sells everything at once to close.
## π§© Core
The **Core** is responsible for interfacing with a given market's API and tracking all orders placed by the strategies.
It uses an embedded database to persist order data and statuses, and also provides timekeeping utilities.
## π Logs
This projet uses the `tracing` crate for logging.
You can configure the log levels using the `RUST_LOG` environment variable:
```bash
RUST_LOG="debug,mexc_rs=trace,hyper=info,surrealdb=warn,rocksdb=warn" cargo run
```
## π Performance
To test a strategy's performance, refer to the example in `src/bin/perfo.rs`. Run it with:
```bash
cargo run --bin perfo
```
## π License
This project is licensed under the terms of the [Apache License 2.0](./LICENSE).