# ---- Telegram ------------------------------------------------------------- TELEGRAM_BOT_TOKEN=123456:ABC... # Comma separated chat ids allowed to use the bot. # Leave empty and the first chat that sends /start claims ownership. TELEGRAM_ADMIN_IDS= # ---- Pocket Option -------------------------------------------------------- # The auth frame captured from the browser. Any of these shapes works: # 42["auth",{"session":"...","isDemo":1,"uid":123,"platform":2}] # 42["auth",{"sessionToken":"...","uid":"123","lang":"en","isChart":1}] # {"sessionToken":"...","uid":"123"} # When a capture contains several frames, the one carrying "session" wins: # that is the shape the broker accepts today. # Quote the value; it contains characters your shell would otherwise eat. PO_DEMO_SSID= PO_REAL_SSID= # Only needed when the SSID above is a bare session string. PO_DEMO_UID= PO_REAL_UID= # Optional endpoint overrides, comma separated, `url` or `url|origin`. PO_DEMO_SERVERS= PO_REAL_SERVERS= # Starting guess for (broker clock - local clock) in seconds. Corrected # automatically from the live tick stream and from order acknowledgements. PO_SERVER_TIME_OFFSET=7200 # ---- Storage and logging -------------------------------------------------- # Under Docker both paths are overridden to /app/data by docker-compose.yml. DB_PATH=./data/bot.sqlite HEARTBEAT_PATH=./data/heartbeat # The bot touches HEARTBEAT_PATH every 30s; the Docker healthcheck calls the # container unhealthy once that file is older than this. HEARTBEAT_MAX_AGE_SECONDS=120 DISPLAY_TIMEZONE=Asia/Tehran # trace | debug | info | warn | error | silent LOG_LEVEL=info # ---- Order defaults and limits -------------------------------------------- DEFAULT_AMOUNT=1 DEFAULT_TIMEFRAME_SECONDS=60 DEFAULT_DURATION_SECONDS=60 MIN_AMOUNT=1 MAX_AMOUNT=20000 MIN_DURATION_SECONDS=5 MAX_DURATION_SECONDS=43200 # ---- Engine timing -------------------------------------------------------- SESSION_IDLE_TTL_SECONDS=60 ORDER_ACK_TIMEOUT_SECONDS=10 ORDER_SETTLE_GRACE_SECONDS=90 # Silence longer than this in the price stream, or any disconnection, means the # path of the price is unknown. An order that would enter on the first tick # after such a gap is cancelled instead of entering late. MAX_TICK_GAP_SECONDS=30 # ---- Docker --------------------------------------------------------------- # Where the SQLite database is kept on the host. Relative paths are resolved # from the compose file, so this stays inside the project. DATA_DIR=./data # The container writes DATA_DIR as this uid:gid, so both must match the owner # of that directory on the host: id -u and id -g. DOCKER_UID=1000 DOCKER_GID=1000