https://github.com/wojciechpolak/cbot
A pet project that evolved from crypto trading bots into a Python-based task execution server with CLI and Web UI clients for managing jobs.
https://github.com/wojciechpolak/cbot
angular python typescript
Last synced: 2 months ago
JSON representation
A pet project that evolved from crypto trading bots into a Python-based task execution server with CLI and Web UI clients for managing jobs.
- Host: GitHub
- URL: https://github.com/wojciechpolak/cbot
- Owner: wojciechpolak
- License: gpl-3.0
- Created: 2024-10-03T15:11:12.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-12-21T11:39:18.000Z (6 months ago)
- Last Synced: 2025-12-22T20:47:20.292Z (6 months ago)
- Topics: angular, python, typescript
- Language: Python
- Homepage:
- Size: 781 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: COPYING
Awesome Lists containing this project
README
# CBot
This project began as a playground for developing crypto trading bots
and has since evolved into a more general-purpose task execution
server, written in Python. It supports creating and managing running
jobs via both a CLI client and a Web UI.
⚠️ Note: This is a personal project and is not intended for general
use, nor is it likely to be polished for broader distribution.
## Running
### Running with Docker (out of the box)
```shell
docker run -it -p 8080:80 -p 2269:2269 --name cbot ghcr.io/wojciechpolak/cbot
```
### Running with Docker Compose
```shell
curl https://raw.githubusercontent.com/wojciechpolak/cbot/master/docker-compose.yml | docker compose -f - up
```
### Building Docker image from source
```shell
./scripts/build-docker.sh
APP_IMAGE=wap/cbot docker compose up
```
### Running from the source code
1. Clone the repository
```shell
git clone https://github.com/wojciechpolak/cbot.git
cd cbot
```
2. Install dependencies
Install Python dependencies using
[Poetry](https://python-poetry.org/) or PIP.
```shell
$ poetry install
# or
$ pip install -r requirements.txt
```
Install Web UI dependencies.
```shell
(cd cbot/client_web && npm ci)
```
3. Prepare the configuration file
Start by copying the sample configuration file located at
`conf/etc/cbot/cbot.conf`.
Save the copied file in one of the following locations (based on
your preference):
- `/etc/cbot/cbot.conf`
- `~/.cbot.conf`
- `./cbot.conf`
4. Run the Server
```shell
./bin/cbot-server.sh
```
5. Run the CLI client
```shell
./bin/cbot-client.sh
```
6. Run the Web UI client
```shell
./bin/cbot-web-serve.sh
```
7. Open in Browser
Visit http://localhost:4200 to access the Web UI.
## Client Commands
* clean
* cmc_latest
- num=25
- sortby=
* cron
- rm=1
- pause=1
- modify=1 cron="* * * * *"
* crypto_stats
- exchange=binance
- symbol=BTC/USDT
- timeframe=1h
* crypto_ticker
- exchange=binance
- symbol=pair1,pair2
* crypto_tsl (Trailing Stop Loss)
- aboveInitialPrice
- algo=std1/std2
- buy
- exchange=binance
- initialPrice=
- interval=60
- quantity=100
- quoteOrderQty=100
- simulate/dry
- stopLoss
- stopOffsetPrice=500
- stopOffsetPricePct=5
- symbol=pair
* get
- 1 25
* ifttt
- rm=1
- pause=1
* info
- 1
* kill
- 1 all
* ls
* memstore
- keys
- raw
- get=key_name
* modify
- 1
- key=val
* pause
- 1
* ping
- 25
- interval=5
* ps
* reload
- job_name
* quit
* savegame
* sendmail
* stats
* status
## Server Jobs
### crypto-tsl output
`#1; SS;EOS/USDT;QTY 1.84;H 7.5021;CUR 7.5021 (13.8268) (PD:+0.9556/+14.60%);STOP 7.2770 (GAP:0.2251/+1.00%);GR%:0.00/80.0;LIMIT 7.2770`
* S - Simulation
* SS - Simulation / Start
* QTY - Quantity
* H - The highest price (during this task run)
* CUR - Last price
* PD - Price difference (currentPrice - initialPrice)
* STOP - Stop price
* GAP - stopPriceChange (currentPrice - stopPrice)
* GR% - offsetPctRaisedBy / reduceStopOffsetPriceByMax
* LIMIT - Limit price
With each iteration, but only when currentPrice > lastHigh:
* stopOffsetPrice = stopOffsetPricePct / 100 * price
* stopPrice = lastHigh - stopOffsetPrice
* limitPrice = stopPrice - limitOffsetPrice
## License
This project is licensed under the GNU General Public License v3.0.
See the [COPYING](COPYING) file for details.
### Icon Attribution
The icons used in this project are from the
[Twitter Twemoji](https://github.com/twitter/twemoji)
project and are licensed under the
[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) license.