money/docker-compose.example

75 lines
2.9 KiB
Plaintext

version: "3.9"
services:
eth-btc-swap-daemon:
# Se hai un Dockerfile locale
build:
context: .
dockerfile: Dockerfile
# In alternativa, usa un'immagine pre-build:
# image: ghcr.io/tuorg/eth-btc-swap:latest
container_name: eth-btc-swap
restart: unless-stopped
environment:
# ====== Generali / Runtime ======
TZ: "Europe/Berlin" # timezone usata per stampare le scadenze. necessaria per non arrivare tardi
THORNODE_URL: "https://thornode.ninerealms.com" # endpoint THORNode per quote (facoltativo, ha default nel codice)
# ====== Dati locali ======
DATA_DIR: "data" # directory per dataset CSV
STATE_DIR: "state" # directory per stato (locks/balances)
# ====== Coppia/sorgente dati ======
BINANCE_SYMBOL: "ETHUSDT" # simbolo Binance (klines)
# ====== Asset THORChain ======
# Esempio: USDT ERC-20 su Ethereum (from) <-> ETH nativo (to)
THOR_FROM: "ETH.USDT-0xdAC17F958D2ee523a2206206994597C13D831ec7"
THOR_TO: "ETH.ETH"
FROM_UNIT_POW: "8" # unità per quote (THOR di solito 8)
TO_UNIT_POW: "8"
# ====== Dataset / training LSTM ======
LOOKBACK: "30"
LR: "0.03" # learning rate
BATCH: "32"
VAL_SPLIT: "0.2"
MAX_EPOCHS: "20" # ad es. 20 per run giornaliero veloce
EARLY_STOP_PCT: "0.5" # stop se avgLoss <= firstLoss * pct
VAL_CONF_Z: "0.90" # soglia confidenza (MAE val sui log-return standardizzati)
# ====== Decisione ======
SAFETY_BPS: "10.0" # margine di sicurezza in bps
MIN_MOVE_BPS: "5.0" # soglia minima movimento previsto
# ====== Quantità di riferimento ======
REF_FROM: "50.0" # es. 100 USDT (o asset "from") --> gioca 50$ alla volta per testare
REF_TO: "0.1" # es. 0.1 ETH/BTC (asset "to") --> ma swappera' da USDT, quindi e' come dire "zero".
# ====== Matrix (login con username/password, stanza via ID/alias/permalink) ======
MATRIX_HS: "https://pluto.com" # URL homeserver
MATRIX_USER: "@pippo!pluto.com" # username o MXID
MATRIX_PASS: "" # password
MATRIX_DEVICE_NAME: "bot-demone" # facoltativo (nome dispositivo)
MATRIX_ROOM: "whatever" # ID (!...), alias (#...) o permalink matrix.to
volumes:
- ./data:/app/data
- ./state:/app/state
# Facoltativo: limiti/log
# logging:
# driver: "json-file"
# options:
# max-size: "10m"
# max-file: "3"
# healthcheck facoltativo (semplice ping del processo)
# healthcheck:
# test: ["CMD", "bash", "-c", "ps aux | grep -v grep | grep -q 'eth-btc-swap'"]
# interval: 30s
# timeout: 5s
# retries: 3
# start_period: 30s