Metadata-Version: 2.4
Name: ehdtd-daemon
Version: 0.2.30
Summary: Daemon script for ehdtd package
Author-email: Ricardo Marcelo Alvarez <rmalvarezkai@gmail.com>
License-Expression: MIT
License-File: LICENSE
Requires-Python: <=3.14,>=3.13
Requires-Dist: ehdtd>=0.2.39
Requires-Dist: importlib>=1.0.4
Requires-Dist: logging>=0.4.9.6
Requires-Dist: psycopg2-binary>=2.9.12
Requires-Dist: pymysql>=1.1.2
Requires-Dist: pyyaml>=6.0.3
Description-Content-Type: text/markdown


# ehdtd-daemon

Daemon script for the [ehdtd](https://github.com/rmalvarezkai/ehdtd) package

## Introduction

The ehdtd-daemon is a Python script designed to collect historic and current data from exchanges and store it into a database (PostgreSQL or MySQL). It works in conjunction with the ehdtd package.

## Installation

```bash
pip install --upgrade pip setuptools # This line is only necesary in some setups
pip install ehdtd_daemon
```

## Usage

```python
python ehdtd_daemon.py [options] command
```

## Example

```python
python ehdtd_daemon.py start
sleep 900
python ehdtd_daemon.py stop
```

## Options

* `-h, --help`:                  Display this help message and exit.
* `-c, --config=CONFIG_FILE`:    Specify an alternative config file, Default is '/etc/ehdtd-daemon/ehdtd-daemon.yaml'

## Commands

* `start`:       Start the daemon
* `stop`:        Stop the daemon

## Configuration File Format

The ehdtd-daemon.yaml configuration file follows a YAML (YAML Ain't Markup Language) format. It consists of several sections and parameters, allowing customization of the daemon's behavior.

### Global Configuration

The global configuration section defines settings that apply to the entire daemon operation.

#### Global Parameters

```yaml
log_dir: The directory path for log files. Default is /var/log/ehdtd-daemon.
run_dir: The directory path for runtime files. Default is /run/ehdtd-daemon.
debug: A boolean flag indicating whether to enable debug mode. Default is false.
```

### Database Configuration

The database configuration section defines parameters for connecting to the database.

#### Database Parameters

```yaml
db_type: The type of database used by the daemon. Supported options are postgresql, pgsql and mysql.
db_name: The name of the database.
db_user: The username used to connect to the database.
db_pass: The password used to authenticate the database user.
db_host: The hostname or IP address of the database server.
db_port: The port number on which the database server is listening.
```

### Exchange Configuration

The exchange configuration section defines parameters specific to each supported exchange.

#### Exchange Parameters

```yaml
trading_type: The type of trading supported by the exchange. Currently, only SPOT trading is supported.
fetch_data: A list of dictionaries, each specifying the symbol and interval for fetching data from the exchange.
```

##### Fetch Data Parameters

```yaml
symbol: The trading pair symbol.
interval: The time interval for fetching data, such as 1m for 1 minute or 5m for 5 minutes.
```

### Example Configuration

```yaml

global:
  log_dir: /var/log/ehdtd-daemon
  run_dir: /run/ehdtd-daemon
  debug: false

db_data:
  db_type: postgresql
  db_name: 'DB_NAME'
  db_user: 'DB_USER'
  db_pass: 'DB_PASS'
  db_host: 'DB_HOST'
  db_port: 'DB_PORT'

exchanges:
  binance:
    trading_type: SPOT

    fetch_data:
      - symbol: BTC/USDT
        interval: '1m'
      - symbol: BNB/USDT
        interval: '1m'
      - symbol: ETH/USDT
        interval: '1m'
      - symbol: LTC/USDT
        interval: '1m'
      - symbol: BTC/USDT
        interval: '5m'
      - symbol: BNB/USDT
        interval: '5m'
      - symbol: ETH/USDT
        interval: '5m'
      - symbol: LTC/USDT
        interval: '5m'
```
