Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
trade-term:start [09.11.2026 08:46] – external edit 127.0.0.1trade-term:start [09.11.2026 08:52] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====== Trading terminal ====== ====== Trading terminal ======
  
-Trading terminal (''trade-term'') is a commercial tool for trading on crypto exchanges, with a web interface: live charts with indicators, a paper (simulated) account, backtesting, and **Pulse** — its own scripting language for writing indicators and strategies.+Trading terminal (''trade-term'') is a commercial tool for trading on crypto exchanges, with a web interface: live charts with indicators, a paper (simulated) account, backtesting, and **Pulse** — its own scripting language for writing indicators and strategies. Part of the [[stratum:start|Stratum]] project.
  
 <note important> <note important>
Line 33: Line 33:
   * ''trade-term-handbook'' — the user guide and the Pulse language reference, shown as a //Handbook// tab inside the web interface (optional).   * ''trade-term-handbook'' — the user guide and the Pulse language reference, shown as a //Handbook// tab inside the web interface (optional).
  
-===== Handbook and design =====+===== How it is built =====
  
-The handbook (package ''trade-term-handbook'') covers the web interface and the Pulse language, with a complete function reference and worked examples. See also the [[trade-term:design|design notes]].+A single self-contained Go service with an embedded Vue.js web interface, on its own HTTPS port with users, roles and two-factor sign-in — in the same spirit as [[vm-reactor:start|VM Reactor]]. 
 + 
 +^ Layer | Choice | 
 +^ Backend | Go — one self-contained service, embedded web assets, own HTTPS port, systemd, users/roles + 2FA | 
 +^ Frontend | Vue.js | 
 +^ Charts | TradingView Lightweight Charts (Apache-2.0) with an own indicator layer | 
 +^ Exchanges | CCXT, run as a sidecar (Node), for public market data and order routing | 
 +^ Scripting | Pulse — an own Pine-like language, interpreted in Go | 
 +^ Licensing | stratum-license, feature ''trade-term'' (subscription) | 
 + 
 +  * **Go backend** — orchestrates market data, indicators, the Pulse engine, trading sessions, the licence check and the web API and UI. One binary. 
 +  * **CCXT sidecar (Node)** — exchange connectivity: public market data, and order routing for live trading. It runs unprivileged, and credentials are handed to it only through the environment, never the command line. 
 +  * **Indicators** — computed in the backend (EMA, RSI, MACD, Bollinger, …) and drawn with Lightweight Charts. The same calculation serves charting, backtesting and live sessions. 
 +  * **Pulse engine** — the Go interpreter for user indicators and strategies; one engine checks a script, runs it on a chart, backtests it and drives live sessions. 
 +  * **Trading sessions** — a session manager: each session pairs a strategy with a market and runs supervised (running or stopped), with its own position and the live-trading safeguards. Paper by default; live is a separate, deliberate switch. 
 + 
 +===== Security ===== 
 + 
 +  * Exchange API keys can move funds, so they are the most sensitive part: encrypted at rest, meant for trade-only keys (no withdrawal), with per-order and daily limits and a kill-switch. 
 +  * Live trading is off by default and stays blocked until limits are set; paper trading needs no private keys at all. 
 +  * The licence is checked at start and periodically. 
 + 
 +===== Risk and compliance ===== 
 + 
 +Automated trading with real funds carries financial risk, and nothing here is financial advice. Strategies must comply with the exchanges' terms of service and with the law (no market manipulation). Start with paper trading, tight limits and a small scale. 
 + 
 +===== Handbook ===== 
 + 
 +The handbook (package ''trade-term-handbook'') covers the web interface and the Pulse language, with a complete function reference and worked examples.
  
 ===== Licence ===== ===== Licence =====