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 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