# NOVOSKY Docs ## Docs - [Get account information](https://docs.novosky.app/api-reference/account/get-account-information.md): Returns `mt5.account_info()` fields including live balance, equity, margin, leverage, and currency. The bot uses `currency == 'USC'` to auto-detect cent accounts and adjust profit calculations. - [Get historical deals](https://docs.novosky.app/api-reference/history/get-historical-deals.md): Returns executed deals (fills) in a Unix epoch time range via `mt5.history_deals_get()`. Each position generates two deals: one on open (entry=0) and one on close (entry=1). The closing deal's `profit` field is stored raw in Supabase (USC for cent accounts — not converted to USD). - [Get historical orders](https://docs.novosky.app/api-reference/history/get-historical-orders.md): Returns closed/cancelled orders in a Unix epoch time range via `mt5.history_orders_get()`. - [Cancel a pending order](https://docs.novosky.app/api-reference/orders/cancel-a-pending-order.md) - [Get a pending order by ticket](https://docs.novosky.app/api-reference/orders/get-a-pending-order-by-ticket.md) - [List active pending orders](https://docs.novosky.app/api-reference/orders/list-active-pending-orders.md): Returns all pending (non-filled) orders, optionally filtered by symbol. - [Modify a pending order](https://docs.novosky.app/api-reference/orders/modify-a-pending-order.md): Updates price, SL, TP, and/or expiry on a pending order. - [Place a new order](https://docs.novosky.app/api-reference/orders/place-a-new-order.md): Places a market or pending order via `mt5.order_send()`. The NOVOSKY bot only places `BUY` and `SELL` market orders. Limit, stop, and stop-limit order types are available for manual use. - [MT5 REST API](https://docs.novosky.app/api-reference/overview.md): Overview of the self-hosted MetaTrader 5 REST API used by NOVOSKY. All bot-to-broker communication goes through this API. - [Close a position](https://docs.novosky.app/api-reference/positions/close-a-position.md): Closes all or part of an open position at market price. Omit the request body to close the full position. Pass `volume` to do a partial close. - [Get a position by ticket](https://docs.novosky.app/api-reference/positions/get-a-position-by-ticket.md) - [List open positions](https://docs.novosky.app/api-reference/positions/list-open-positions.md): Returns all open positions, optionally filtered by symbol. - [Modify stop loss or take profit](https://docs.novosky.app/api-reference/positions/modify-stop-loss-or-take-profit.md): Updates the SL and/or TP on an existing open position via `mt5.order_send()` with `ORDER_TYPE_SLTP`. - [Get historical ticks](https://docs.novosky.app/api-reference/symbols/get-historical-ticks.md): Returns the most recent tick-level data via `mt5.copy_ticks_from()`. Useful for spread analysis. - [Get latest tick](https://docs.novosky.app/api-reference/symbols/get-latest-tick.md): Returns the most recent bid/ask tick for a symbol via `mt5.symbol_info_tick()`. Tick `time` is broker server time (Unix epoch). - [Get OHLCV candles](https://docs.novosky.app/api-reference/symbols/get-ohlcv-candles.md): Returns historical OHLCV candles via `mt5.copy_rates_from_pos()`. Candle `time` is broker server time — the bot normalises to UTC using the detected offset from `/time`. `spread` is in raw points (e.g. 1400 pts × $0.01 = $14.00 for BTCUSDc on Exness). - [Get symbol details](https://docs.novosky.app/api-reference/symbols/get-symbol-details.md): Returns `mt5.symbol_info()` for a single symbol. Key fields used by the bot: `volume_min` (default lot size), `trade_tick_value`, `trade_tick_size` (pip_value = tick_value / tick_size), `trade_contract_size`, `digits`. - [List available symbols](https://docs.novosky.app/api-reference/symbols/list-available-symbols.md): Returns symbol names available on the broker. Optionally filter by group (e.g. `?group=*BTC*` for all Bitcoin pairs). Used by the bot's symbol auto-discovery to find the correct BTC/USD pair name. - [Broker latency and connectivity](https://docs.novosky.app/api-reference/system/broker-latency-and-connectivity.md): Measures round-trip latency to the MT5 broker and returns connection quality. `retransmission` is the TCP packet retransmission rate — 0.0 means a perfect connection. Returns 503 if the MT5 terminal is not connected. - [Health check](https://docs.novosky.app/api-reference/system/health-check.md): Returns `{"status": "ok"}` when the API is running. This is the only endpoint that skips authentication. - [Last MT5 error](https://docs.novosky.app/api-reference/system/last-mt5-error.md): Returns the most recent MT5 error code and message from `mt5.last_error()`. Useful for diagnosing failed operations. - [Get terminal info](https://docs.novosky.app/api-reference/terminal/get-terminal-info.md): Returns `mt5.terminal_info()` fields including connection state, build number, trade permissions, and latency. - [Initialize MT5 terminal connection](https://docs.novosky.app/api-reference/terminal/initialize-mt5-terminal-connection.md): Calls `mt5.initialize()`. Required before any trading operations if the terminal has been shut down. - [Restart the MT5 terminal](https://docs.novosky.app/api-reference/terminal/restart-the-mt5-terminal.md): Equivalent to calling `/terminal/shutdown` then `/terminal/init`. Useful for recovering from a hung terminal. - [Shutdown the MT5 terminal](https://docs.novosky.app/api-reference/terminal/shutdown-the-mt5-terminal.md): Calls `mt5.shutdown()`. After this call, all trading endpoints return errors until `/terminal/init` is called again. - [Broker server time vs UTC](https://docs.novosky.app/api-reference/time/broker-server-time-vs-utc.md): Returns the broker server timestamp alongside machine UTC time and the detected UTC offset (broker_time − utc_epoch, rounded to the nearest hour). The bot calls this at startup to auto-detect the broker timezone including DST changes (e.g. VT Markets shows +3 in summer, +2 in winter). Pass `?symbol=… - [Configuration](https://docs.novosky.app/configuration.md): All configuration lives in three files: .env (secrets), config.json (runtime behavior), and ml_config.json (ML pipeline). This page covers all key fields. - [Architecture](https://docs.novosky.app/developer/architecture.md): Codebase layout, the three-file rule, strict training order, lane discipline, and the invariants that keep the live bot and backtester in sync. - [Contributing](https://docs.novosky.app/developer/contributing.md): Development workflow, invariants to respect, how to use Claude Code agents, and what to check before submitting changes. - [Scripts reference](https://docs.novosky.app/developer/scripts.md): All scripts in scripts/ and their command-line options. Covers training, sweeps, optimization, and utilities. - [How it works](https://docs.novosky.app/how-it-works.md): A complete walkthrough of the NOVOSKY trading loop — from raw candles to executed order to position close. - [NOVOSKY — Market Pulse Trading Intelligence](https://docs.novosky.app/index.md): Quantitative trading automation driven by an ML ensemble. Multi-timeframe feature engineering, gradient boosting fusion, and a layered capital protection system. - [Deployment](https://docs.novosky.app/infrastructure/deployment.md): Hardware options, MT5 REST API setup, VPS configuration, and process management with PM2. - [Cloud services](https://docs.novosky.app/infrastructure/services.md): NOVOSKY integrates with three optional cloud services: Hugging Face Hub (model storage), Supabase (trade log), and Telegram (alerts). Hugging Face is required; the others are optional but strongly recommended. - [Windows VM (Docker + noVNC)](https://docs.novosky.app/infrastructure/vm-setup.md): Run the MT5 Windows environment inside Docker on a Linux host using dockurr/windows, with browser-based desktop access via noVNC and Caddy reverse proxy. - [Feature engineering](https://docs.novosky.app/ml/features.md): NOVOSKY engineers 62 features from raw BTCUSD M15 OHLCV candles. This page documents every feature group, the protected features that must never be dropped, and how labeling works. - [Models](https://docs.novosky.app/ml/models.md): NOVOSKY uses four ML models: a signal ensemble, a position model, a dynamic SL/TP regressor, and a risk multiplier. This page covers each model's design, training inputs, and outputs. - [Optimization pipeline](https://docs.novosky.app/ml/pipeline.md): The weekly optimization pipeline is a 13-phase autonomous loop that retrains all four models, sweeps config parameters, validates on OOS data, and commits or rolls back — without human input. - [Performance](https://docs.novosky.app/performance.md): Live OOS results, performance history, and methodology. Updated after each weekly optimization run. - [Roadmap](https://docs.novosky.app/project/roadmap.md): Quarterly milestones, feature pipeline, and version history for NOVOSKY. - [TODO](https://docs.novosky.app/project/todo.md): Active task list, current phase status, and in-progress work. Ordered by impact — what to build first. - [Quick start](https://docs.novosky.app/quickstart.md): Get NOVOSKY trading live in under 3 hours. Covers both the guided wizard path and the manual setup path. ## OpenAPI Specs - [openapi](https://exness-main.novosky.app/openapi.json) ## Optional - [GitHub](https://github.com/mokatific/novosky)