BOT LOADING

Market Pulse
Trading Intelligence

ML ensemble of RF + XGBoost + LightGBM trading BTCUSD M15 live on MetaTrader 5 with autonomous risk management.

WIN RATE (OOS)
PROFIT FACTOR
SHARPE RATIO
MAX DRAWDOWN
ML FEATURES
RECOVERY FACTOR
BACKTEST RESULTS

Proven Performance

Latest out-of-sample snapshot from weekly optimization windows

Win Rate
71.7%
Profit Factor
5.43
Sharpe Ratio
59.33
Max Drawdown
4.5%
Return
+194.6%
Trades
99
4-LAYER ML ENSEMBLE
1. Feature Engineering
Extracts 62 real-time features including MTF momentum, session data, and news impact.
2. Signal Ensemble
Three distinct algorithms (RF, XGB, LGB) vote on market direction. Trade executes only on high-confidence consensus.
3. Dynamic SL/TP & Risk Sizing
LightGBM models adapt stop-losses to current volatility and dynamically scale position sizes based on equity state.
4. Active Position Management
Continuous re-evaluation during open trades to lock in profits early or cut losses before hitting hard stops.
LIVE BOT STATUS

Real-Time Dashboard

Waiting for bot data...

BOT STATUS
OFFLINE

Bot offline — no live data available.

Start the bot with python trading.py

ACCOUNT PERFORMANCE

Equity Curve

Real account equity from live snapshots and trade history

EQUITY CURVE
No equity data yet — run the bot to start collecting account history.
The dashboard will use available snapshots and MT5 history automatically.
TRADE HISTORY

Recent Trades

TRADE HISTORY
0 trades
No trades recorded yet
Trade history appears here as the bot executes.
ML ENSEMBLE ARCHITECTURE

How the Models Work

Three ensemble models vote on each signal; SL/TP and Risk models then size and bracket each trade before execution.

INPUT
BTCUSD M15
250 bars
ENGINEER
62
features
RF
41.8%
acc
XGB
43.0%
acc
LGB
42.4%
acc
VOTE
Majority
42.6%
BUY
SELL
HOLD
SL/TP
2× LGB
ATR brackets
RISK
LGB
size mult
EXECUTE
Trade
MT5 order
INPUT
BTCUSD M15
250 bars
ENGINEER
62
features
ENSEMBLE
RF 41.8%
XGB 43.0%
LGB 42.4%
VOTE
Majority
42.6%
EXECUTE
Trade
MT5 order
RISK
LGB
size mult
SL/TP
2× LGB
ATR brackets
SIGNAL
BUY
SELL
HOLD
62 ENGINEERED FEATURES
Price Action
8
Candle body ratio, wicks, OHLC derivatives
Momentum
12
RSI, MACD, Stochastic, CMF, MFI
MTF Ladder
10
H1 / H4 / D1 trend alignment
Volatility
8
ATR, Bollinger Bands, price deviation
News & Session
9
FF calendar, London / NY / Asian sessions
Market Structure
9
EMA stack, ADX, volume analysis
Protected features — near-zero at training, live values injected each cycle: is_news_near, is_london_session, is_ny_session, is_asian_session, is_news_risk_window
SL/TP PREDICTION MODEL — ENTRY BRACKETING
Overview

Two independent LightGBM regressors predict optimal stop-loss and take-profit distances in ATR multiples for each trade entry. Fires immediately after the ensemble signal — before the order is placed.

200 estimators  ·  depth 6  ·  lr=0.05
SL output
Stop-loss distance from entry
0.5× – 2.0× ATR
TP output
Take-profit distance from entry
0.5× – 3.0× ATR
RISK SIZING MODEL — POSITION SIZE MULTIPLIER
Overview

A LightGBM model reads 7 live account health metrics each cycle to output a multiplier applied to the base risk%. Scales down aggressively during drawdown and up modestly during strong runs.

300 estimators  ·  depth 5  ·  lr=0.05  ·  range 0.1× – 1.25×
equity_ratio
drawdown_from_peak
rolling_wr_10 / rolling_wr_20
rolling_pf_10
consecutive_losses
atr_norm
POSITION MANAGEMENT MODEL — PHASE 8.1
Overview

A secondary 3-class classifier monitors every open trade each cycle using 66 features (62 market + 4 position-state). Can exit early before SL hit if conditions deteriorate.

Ensemble accuracy: 77.16%  ·  EXIT precision/recall: 85% / 82%
HOLD
Keep position open
EXIT
Close early — signal degraded
p>0.55
ADD
Logged only, no auto-add
p>0.65
TRADING LOOP

How It Works

A fully automated pipeline from raw candle data to live trade execution in under 60 seconds.

01
FETCH
Fetch 250 M15 Candles

Fetch 250 BTC/USD M15 bars from the self-hosted MetaTrader 5 REST API on a cloud VM via HTTP.

every 60s
02
ENGINEER
Compute 62 Features

Raw OHLCV data is transformed into 62 engineered features. Live ForexFactory news data injected each cycle.

~0.3s
03
PREDICT
RF + XGBoost + LightGBM Vote

Three independently tuned models each produce a probability vector. Majority vote determines the signal.

~0.1s
04
FILTER
Multi-Filter Validation

Signal passes through ATR floor, news block, EMA trend alignment, session window, and circuit breaker.

6 filters
05
SIZE
Dynamic ATR-Based Sizing

Stop-loss = ATR x 0.8, Take-profit = ATR x 1.5. Lot size via 2.5% risk per trade with account balance.

ATR x 0.8 / 1.5
06
EXECUTE
POST /orders to MT5 REST API

Order placed via REST API. Position model monitors open trades and can trigger early exit on adverse signals.

<100ms
SYSTEM SPECS
Pair BTC/USD
Timeframe M15
Broker RoboForex
Leverage 1:500
Risk/Trade 2.5%
Candles 250
TECH STACK

Under the Hood

TRADING ENGINE
$ python trading.py
> Language: Python 3.13
> ML: scikit-learn, XGBoost 2.x, LightGBM 4.x
> Features: 62 engineered features
> Data: MetaTrader 5 REST API (Docker VM)
> Storage: HuggingFace Hub (models), Supabase (logs)
> Infra: Azure ML (training), PM2 (process mgmt)
> OS: Ubuntu 24.04 on cloud VM
> Timeframe: BTCUSD M15, 250 candles/cycle
> Cycle: 60s polling loop
$
DASHBOARD
$ yarn dev
> Framework: SvelteKit 2 + Svelte 5 (Runes)
> Language: TypeScript 6
> Styling: Tailwind CSS 4
> Charts: Custom Canvas 2D
> Database: Supabase (PostgreSQL)
> Auth: None (public read-only)
> Deploy: Vercel (Edge Network)
> Analytics: Vercel Analytics + Speed Insights
> Node: 24.x LTS
$
62
Features Engineered
224d
OOS Tested
3
Models in Ensemble
SYSTEM INTERNALS

Under the Hood // v20260424

For the engineers and quants — the stack, the models, and the infrastructure that never sleeps.

0
Features
engineered signals
0s
Cycle time
polling interval
0
Candles/cycle
M15 lookback
0ms
Inference
avg prediction
novosky@vm ~/trading $ python trading.py

OOS PERFORMANCE
71.7%
Win Rate
5.43
Profit Factor
4.5%
Max DD
Trained Apr 2026 · 62 features
Demo mode
=== About This Computer ===
   _____
  |     |
  |  N  |
  |_____|
  /=====\
  /       \
System: NOVOSKY v20260510
ML Phase: Phase 16 — M15 BTCUSD
Features: 62 signals
ML Brain: Triple Ensemble
Cycle: 60s polling loop
Win Rate (OOS): 71.7%
Profit Factor: 5.43
Max Drawdown: 4.5%
Models stored: HuggingFace Hub
RF Random Forest
n_estimators 350
max_depth 10
n_jobs -1
class_weight balanced
min_samples_leaf 4
XGB XGBoost
n_estimators 300
learning_rate 0.147
max_depth 8
subsample 0.8
colsample_bytree 0.8
LGB LightGBM
n_estimators 350
learning_rate 0.077
num_leaves 108
colsample_bytree 0.8
min_child_samples 20
ENS Ensemble Config
vote_strategy majority (2/3)
scaler StandardScaler.pkl
labeling atr_aware
tp / sl mult 1.5 / 0.8
lookahead 48 bars (12h)
INFRASTRUCTURE
B
Broker API
RoboForex MT5
D
Docker
Ubuntu 24.04 VM
A
Azure ML
Training cluster
H
HuggingFace
Model storage
S
Supabase
Trade DB + sync
P
PM2
60s polling loop
V
Vercel
Dashboard CDN
LIVE
SYSTEM STATUS
Ensemble signal model LOADED
Position model (3-class) LOADED
StandardScaler (62-dim) LOADED
Model compat manifest VERIFIED
ForexFactory calendar SYNCED
Session filters LDN/NY ACTIVE
News block (60min) ACTIVE
Circuit breaker (7 loss) ARMED
PM2 watchdog RUNNING
MT5 REST API DEMO
API_REFERENCE.md — NOVOSKY MT5 REST
🔒 Base: http://<VM_IP>:6542  ·  Auth: Bearer <TOKEN>  ·  Self-hosted Docker on cloud VM
GET /ping Health check
GET /account Account info
GET /symbols/{sym}/rates ?timeframe=M15&count=250
GET /positions Open positions
POST /orders Place order
PUT /positions/{ticket} Modify position
DELETE /positions/{ticket} Close position
GET /history/deals Trade history
All responses use SimpleNamespace in bot.py  ·  MT5 spread in raw points (1695 pts = $14.59)  ·  AbortSignal.timeout(5000) on all calls
FREQUENTLY ASKED QUESTIONS

FAQ

FAQ
CONNECT

Get in Touch

Interested in NOVOSKY or want to discuss trading systems, ML, or collaboration? Reach out on Telegram.

Message on Telegram
@novosky_ai on Telegram

This is not financial advice. Trading involves substantial risk of loss. Past performance does not guarantee future results.