DOCUMENTATION · 10 MINUTES

From zero to first paper trade.

Everything below works with the files in this package. No hidden steps.

01 · QUICK START

The 10-minute path

  1. Request access at signup.html, verify your email, get approved in admin.html.
  2. Run the backend: cd backend → npm install → npm start (SQLite-free JSON store, zero native builds).
  3. Point the site at it: uncomment the SOODCHIN_API_URL line atop the auth pages.
  4. Open the dashboard → My Bot, submit your channel, watch training go live.
  5. Spend your 30 test tries, then log paper trades in the journal.
02 · REQUIREMENTS

What you need

  • Windows VPS + MetaTrader 5 with Algo Trading enabled (for live execution; paper mode needs nothing).
  • Node.js 18+ for this backend; Python 3.8+ for the trading bot itself.
  • 500–2,000 past messages from your signal channel for training.
  • SMTP credentials (optional) — without them, Ethereal test mailboxes are used automatically.
03 · CONFIG REFERENCE

The knobs that matter

KeyWhereWhat it does
JWT_SECRET / ADMIN_KEYbackend/.envSession signing + admin console unlock. Set long random strings.
SIMULATE_TRAININGbackend/.envtrue = demo pipeline auto-runs. false = your Python bot drives states via /api/admin/job-advance.
TP_MANAGEMENT_MODEconfig.pysplit_tickets (one ticket per TP) or live_polling (1-sec trailing loop).
ALLOW_SAME_SYMBOL_STACKINGconfig.pyAnti-pyramiding toggle. Keep off unless you know why.
AUTO_EXECUTE_ON_TELEGRAM_FAILUREconfig.pyFire the trade anyway if the proposal message can't deliver.
tp_rules.jsondatabase/Per-TP close % and SL action (TP1 50% → breakeven, TP2 → TP1…).
04 · CHANNEL TRAINING

Why the model needs your channel first

Every provider formats differently. The DistilBERT two-head model (Head 1: signal/spam/command · Head 2: action, symbol, levels) fine-tunes on your history on Colab T4, then deploys quantized (~38ms, offline). Generic parsing runs without it — trained parsing is what you actually want to trade on. Training improves accuracy; it never guarantees profit.

05 · TROUBLESHOOTING
  • Login loops back? Check the account is email-verified and admin-approved (access.html shows the exact state).
  • Bot check won't pass? The Turnstile widget issues single-use tokens — complete it fresh on each submit, and check TURNSTILE_SECRET + TURNSTILE_HOSTNAMES in the backend .env.
  • No email arrived? With no SMTP configured, open the backend console: Ethereal preview URLs are logged per email.
  • Job stuck in QUEUED? The simulator ticks every 3s; with SIMULATE_TRAINING=false, jobs wait for your Python webhook.
  • MT5 order rejected? Check spread vs MAX_SPREAD, Algo Trading enabled, and symbol suffix mapping (e.g. XAUUSD.pro).
06 · SUPPORT