Welcome back, Linh
Hôm nay là Thứ Sáu, 15/05/2026 · Phase 1 đang ở Month 5/6
Live MTD return
+4.27%
▲ 1.12% vs benchmark VNI
Production signals
42
+3 mới tuần này · 12 staging
Backtest runs (7d)
128
▲ 23% so với tuần trước
Data QC pass rate
99.2%
▼ 0.6% · 2 outlier alerts
Portfolio equity curve
Live vs backtested expectation · 12M rolling
Backtest
Live
Alerts & flags
Cần chú ý hôm nay
ALERT · Bulk signal download phát hiện ở user tnguyen@ (T1)
FLAG · Source disagreement · VHM close 14/05
FLAG · Outlier · BTC funding rate Bybit
INFO · Off-hours signal read · hduc@
Team activity
Real-time feed · last 4 hours
CN
Cuong Nguyen ran backtest vn30_momentum_carry → Sharpe 1.84
HD
Huy Duc registered signal crypto_funding_skew@v1
EH
Eric Ho completed interview · model VNI Trend Follower
TM
Thao Mai published dataset version vn_equity_daily@2026-05-15
LP
Linh Pham exported tear sheet · vn30_momentum_v4.pdf
Phase 1 milestone tracker
P1 → P2 → P3 + P2.5 backfill
P1 · Unified Data LayerDone
Acceptance criteria: ✓ point-in-time · ✓ 2+ crypto exchanges · ✓ QC dashboard · ✓ no ad-hoc CSV
P2 · Canonical BacktesterDone
Migrated strategy ✓ within Sharpe ±0.1 · byte-identical re-runs verified
P3 · Signal LibraryIn progress
42/57 live signals registered · T1/T2 boundary verified · wiki migration 60%
P2.5 · DocumentationIn progress
Live: 14/14 · Paused: 8/10 · Retired: 6/9 (memory faded)
P1 · Unified Data Layer
Single source of truth · point-in-time integrity · 2 markets, 5 sources
Datasets
23
VN: 14 · Crypto: 7 · Cross: 2
Storage
1.84 TB
+12 GB hôm nay
Queries (24h)
3,841
▲ 18% · 12 users active
QC failures (7d)
4
2 outlier · 1 schema · 1 missing
QC dashboard · 7 days
healthy
Datasets catalog
Truy cập read-only qua Python client · viết qua pipeline service accounts
| Dataset | Market | Source | Last update | Version | Status |
|---|---|---|---|---|---|
| vn_equity_daily | VN | VND, Bloomberg | 2026-05-15 06:12 | v3 | healthy |
| vn30_membership | VN | HOSE | 2026-05-15 06:14 | v2 | healthy |
| vn_corp_actions | VN | VSD, FiinPro | 2026-05-15 06:18 | v4 | healthy |
| vn_foreign_room | VN | HOSE | 2026-05-15 06:20 | v1 | healthy |
| crypto_spot_1m | Crypto | Binance, OKX, Bybit | 2026-05-15 14:25 | v2 | healthy |
| crypto_funding_8h | Crypto | Binance, OKX, Bybit | 2026-05-15 14:00 | v1 | 1 outlier |
| vn_fundamentals_q | VN | FiinPro | 2026-05-13 06:30 | v2 | healthy |
| ref_calendar | Cross | Internal | 2026-05-15 00:00 | v5 | healthy |
quant_data · Python client preview
v1.4.2
# Single Python client — no file paths, no CSV downloads
from quant_data import Client
# Identity injected from SSO session; queries logged with user.
client = Client(env="prod")
# Point-in-time query — VN30 universe as it was known on 2024-03-15.
# No survivorship bias, no look-ahead bias.
universe = client.vn30_membership(
as_of="2024-03-15",
include_corp_actions=True,
)
bars = client.equity_bars(
symbols=universe,
start="2020-01-01",
end="2024-03-15",
fields=["open", "high", "low", "close", "volume", "foreign_room"],
adjust="split_div", # corporate actions applied automatically
snapshot_id="snap_2024Q1_v3", # pinned snapshot — reproducible
)
# Crypto — same client, market-specific schema
btc = client.crypto_bars(
symbol="BTC-USDT-PERP",
venues=["binance", "okx", "bybit"],
interval="1m",
include_funding=True,
)
# run_id of any downstream computation embeds: code SHA + snapshot_id
# → byte-identical results on re-run, today or 6 months from now.
Source reconciliation log
Today · 14 divergences resolved · 1 pending review
| Symbol | Field | Source A | Source B | Canonical | Rule |
|---|---|---|---|---|---|
| VHM | close | 81,200 | 81,400 | pending | manual |
| FPT | close | 142,500 | 142,500 | 142,500 | match |
| VCB | volume | 1.24M | 1.26M | 1.24M | prefer A |
| MSB | foreign_room | 23.4% | — | 23.4% | A only |
| BTC | funding_8h | 0.012% | 0.013% | 0.0125% | avg |
| VIC | open | 93,800 | 93,900 | 93,800 | prefer A |
| SAB | div | 3,500 | 3,500 | 3,500 | match |
| ETH | close | 2841.2 | 2841.5 | 2841.35 | avg |
P2 · Canonical Backtester
One trusted engine · same code path VN + crypto · standardized tear sheets
vn30_momentum_carry.spec.yaml
schema v2
name: vn30_momentum_carry
version: v4.2
market: vn_equity
universe:
filter: vn30_constituents
as_of_rule: point_in_time # anti-survivorship
min_adv_20d: 5_000_000_000 # VND, capacity floor
signals:
- ref: mom_12_1@v3 # from signal library, pinned
weight: 0.6
- ref: carry_div_yld@v2
weight: 0.4
entry:
rule: composite_rank_top_decile
rebalance: monthly_first_session
exit:
rule: rank_drop_below_3rd_decile
stop_loss: -0.08
sizing:
method: equal_weight
max_positions: 15
respect_foreign_room: true
cost_model:
brokerage_bps: 15
tax_sell_bps: 10
slippage_bps: 8
respect_ceiling_floor: true
capital: 50_000_000_000 # 50B VND target AUM
data_snapshot: snap_2026Q2_v1
Recent runs
Mỗi run_id resolve về code SHA + spec + snapshot
| Run ID | Strategy | Sharpe | MaxDD | Status |
|---|---|---|---|---|
| btr_8a3f9e | vn30_momentum_carry@v4.2 | 1.84 | -12.3% | done |
| btr_8a2d11 | crypto_funding_arb@v2 | 2.12 | -8.1% | done |
| btr_8a1c87 | vni_trend_follow@v5 | 1.41 | -15.7% | done |
| btr_8a0f44 | vn30_lowvol@v1 | 0.92 | -9.4% | capacity warn |
| btr_8a0a2c | btc_eth_pairs@v3 | 1.67 | -11.2% | done |
| btr_89f8e1 | vn30_momentum_carry@v4.1 | 1.79 | -13.0% | done |
Cost drag breakdown
vn30_momentum_carry@v4.2
Standardized tear sheet · vn30_momentum_carry@v4.2
run_id btr_8a3f9e · snapshot snap_2026Q2_v1 · code a3f9e2b
watermarked: linh.pham@
Sharpe
1.84
vs original 1.82 ✓
Sortino
2.41
vs original 2.38
CAGR
22.4%
vs original 22.1% ✓
Max DD
-12.3%
2 events > 8%
DD duration
87 days
2022 bear regime
Hit rate
58.3%
412/707 trades
Profit factor
1.92
winners 1.7× losers
Volatility
14.8%
annualized
Backtest equity curve
2020-01 → 2026-05Drawdown
Factor exposures
Regime decomposition
Tail risk
VaR 95%
-2.1%
daily
CVaR 95%
-3.4%
expected shortfall
Skew
-0.42
left-tail bias
Kurtosis
5.8
fat tails
Walk-forward (4 folds)
Parameter sensitivity
Sharpe heatmap
lookback →← top-decile threshold
Operational
Annualized turnover
312%
3.1× portfolio / năm
Avg holding period
38 days
Capacity estimate
~ ₫180B
5% ADV constraint
Total cost drag
-2.4%/yr
P3 · Signal Library
IP vault · versioned · same code path backtest ↔ live · tiered access
market: all ▾
family: all ▾
status: production ▾
author: all ▾
Signal catalog
42 production · 12 staging · 8 retired · viewer tier T2
| Signal | Family | Author | Decay | Version | Status |
|---|---|---|---|---|---|
| mom_12_1 | momentum | L. Pham | 9w | v3 | production |
| carry_div_yld | carry | C. Tran | 26w | v2 | production |
| lowvol_60d | vol | H. Duc | 14w | v1 | production |
| xs_reversion_5d | reversion | L. Pham | 3w | v4 | production |
| crypto_funding_skew | carry | H. Duc | 2w | v1 | staging |
| vni_trend_ma | trend | E. Ho | 8w | v5 | production |
| foreign_net_buy | flow | T. Mai | 6w | v2 | production |
| btc_eth_rs | pairs | C. Tran | 4w | v3 | production |
| pead_surprise | fundamental | L. Pham | 11w | v2 | production |
| quality_roe | quality | — | — | v3 | retired |
Tier visibility preview
Cùng signal, 2 góc nhìn
As T1 (Junior)
name + high-level only
mom_12_1
Cross-sectional momentum signal. Used in 3 production strategies you have access to.
🔒 Source code, formula, full library enumeration restricted to T2+
As T2 (Senior — you)
full source visible
mom_12_1@v3
productionAuthor: L. Pham · Created 2024-08-12 · Decay 9w
def mom_12_1(prices, as_of):
r12 = prices.window(252).return_()
r1 = prices.window(21).return_()
return r12 - r1 # skip last month
deps: equity_bars
used by: 3 prod
Signal correlation matrix
Pearson · 1Y rolling · production signals only
Lineage · mom_12_1@v3
Where is this signal consumed?
📊 mom_12_1@v3 (this signal)
├── 🟢 vn30_momentum_carry@v4.2 · production · ₫50B AUM
│ └── 📡 Telegram: VNI Trading Bot
├── 🟢 vn30_quad_factor@v2 · production · ₫30B AUM
│ └── 📡 Telegram: VN30 Futures Bot
├── 🟡 vn30_momentum_v5 · staging · pending peer review
├── 🔬 research/L.Pham/notebook_2026Q1
└── 🔬 research/H.Duc/notebook_decay_study
⚠ Same code path guarantee: tín hiệu fire trong Telegram là cùng một function chạy lúc backtest. Đây là property kiến trúc quan trọng nhất của library.
P2.5 · Models Wiki
Documentation backfill · interview-driven · scaffolding for signal library
Live models
14/14
100% complete
Paused models
8/10
2 đang phỏng vấn
Retired models
6/9
memory faded
Interview queue
Next 5 sessions
Crypto Funding Arb
retired · todayC. Tran ↔ Eric Ho · 60 min · 14:00
VN Quality Factor
paused · tomorrowL. Pham ↔ C. (Head of Research) · 90 min
VNI Vol Surface
paused · MonH. Duc ↔ Eric Ho · 60 min
VN Pairs Arb 2023
retired · TueT. Mai ↔ C. · 90 min · memory difficult
BTC Trend MA
live · WedE. Ho ↔ Eric Ho · update interview · 45 min
Documentation pages
Notion-style · tier T1 chỉ thấy tên + description, T2+ thấy đầy đủ
Model
Author
Status
Completion
Updated
📄 VN30 Momentum Carry
L. Pham
live
2d ago
📄 VNI Trend Follower
E. Ho
live
1h ago
📄 Foreign Net Buy
T. Mai
live
5d ago
📄 BTC-ETH Pairs
C. Tran
live
3d ago
📄 PEAD Surprise Drift
L. Pham
live
1w ago
📄 Crypto Funding Skew
H. Duc
staging
today
📄 VN Quality Factor
L. Pham
paused
tomorrow
📄 VNI Vol Surface
H. Duc
paused
Mon
📄 Crypto Funding Arb
C. Tran
retired
today
📄 VN Pairs Arb 2023
T. Mai
retired
Tue
Live Signals · VNI Trading Bot
Telegram feed re-rendered with full provenance · P4 (planned Phase 2)
📡
Provenance-tagged signals
Mỗi signal kèm strategy_id, signal version, data snapshot, run_id — có thể trace ngược về backtest tương ứng.
Mô hình VN30 FUTURES Nắm giữ (LONG)
Tỷ lệ thắng: 60.87% · cập nhật 2026-05-11 15:00
Vào lệnh: 2026-05-06 @ 2053.4
Đóng cửa: 2026-05-11 @ 2039.0
P&L: 💰 -0.7%
Đóng cửa: 2026-05-11 @ 2039.0
P&L: 💰 -0.7%
strategyvn30_futures_long@v4.2
signalmom_12_1@v3
snapshotsnap_2026Q2_v1
runbtr_8a3f9e
DANH MỤC VN100 NẮM GIỮ
10 positions · rebalance monthly · cập nhật 2026-05-15 09:00
MSB 18% · +8.43%
VJC 18% · -5.85%
VIC 18% · +15.19%
VPI 18% · -3.99%
VHM 18% · +30.30%
STB 18% · +5.62%
HPG 10.5% · -5.43%
LPB 10.5% · +11.51%
HDB 10.5% · +1.13%
HCM 10.5% · +0.92%
Tổng P&L: 💰 +4.3%
strategyvn100_quad_factor@v2.1
signalcomposite(mom_12_1,carry_div_yld,lowvol_60d)
snapshotsnap_2026Q2_v1
runbtr_8a2d11
VNINDEX LONG CLOSED
Tỷ lệ thắng: 78.57% · slow trend follower
Long từ 2026-04-09 @ 1763.85 → 2026-05-13 @ 1898.37
Holding: 34 ngày · ROI: +7.63%
Holding: 34 ngày · ROI: +7.63%
strategyvni_trend_follow@v5.1
signalvni_trend_ma@v5
snapshotsnap_2026Q2_v1
runbtr_8a1c87
DANH MỤC VN30 NẮM GIỮ
4 positions · concentrated basket
SAB 37.5% · -1.48%
STB 37.5% · +11.03%
TCB 37.5% · +0.45%
VJC 37.5% · -3.30%
Tổng P&L: 💰 +5.8%
strategyvn30_concentrated@v3
signalcomposite(mom_12_1,foreign_net_buy)
snapshotsnap_2026Q2_v1
runbtr_8a0a2c
Access Tiers
T0 → T3 · enforced from day one · the T1→T2 boundary protects most IP downside
Tier capability matrix
Single sign-on · platform API only · all reads logged · watermarked exports
| Capability | T0 · Investors | T1 · Junior | T2 · Senior | T3 · Principal |
|---|---|---|---|---|
| View aggregate performance & risk metrics | ✓ | ✓ | ✓ | ✓ |
| View process integrity reports | ✓ | ✓ | ✓ | ✓ |
| Query data layer (Python client) | — | ✓ | ✓ | ✓ |
| Run assigned backtests | — | ✓ | ✓ | ✓ |
| Author research in sandboxed branch | — | ✓ | ✓ | ✓ |
| See full signal library source | — | — | ✓ | ✓ |
| Enumerate signal library | — | name only · assigned | ✓ | ✓ |
| Propose strategies for production | — | — | ✓ | ✓ |
| View specific positions / deal-level financials | — | — | — | ✓ |
| Approve production deployment | — | — | — | ✓ |
| Modify infrastructure | — | — | — | ✓ |
| Grant / revoke T2 access | — | — | — | ✓ |
Enforcement points
●
SSO via Okta/Auth0/Keycloak
Mọi action carry user identity. Không cấp database credentials trực tiếp cho user.
●
Platform API gateway
Tất cả data + signal queries route qua API. Một code path, một identity, một log.
●
Tear sheet watermarking
Mỗi PDF export embed identity người xem. Export logged.
●
Signal source restricted T2+
T1 chỉ thấy tên cho assigned projects. Không enumerate được full library.
●
Immutable audit log
Mọi access & change ghi log; bulk download / off-hours pattern alert.
●
Disabled copy/paste in T1 notebooks
Where feasible — raises cost meaningfully.
Active users by tier
14 total| User | Tier | Last access | Status |
|---|---|---|---|
EH Eric Ho | T3 | 14:45 | active |
CT C. Tran (Head of R) | T3 | 14:32 | active |
LP Linh Pham (you) | T2 | 14:51 | active |
CN Cuong Nguyen | T2 | 14:48 | active |
HD Huy Duc | T2 | 14:18 | active |
TM Thao Mai | T2 | 11:20 | active |
TN Thai Nguyen | T1 | 14:23 | flagged |
QA Quynh Anh | T1 | 10:45 | active |
QC Q. Capital LP | T0 | yesterday | idle |
Audit Log
Immutable · all data & signal access · alerts on bulk download / off-hours / tier-violation
severity: all ▾
user: all ▾
range: today ▾
Time
Severity
Event
User
Tier
14:23:18 today
ALERT
signal.bulk_read · 47 reads in 8m · pattern lệch chuẩn
tnguyen@
T1
14:18:02 today
FLAG
data.source_disagreement · VHM close · VND ₫81,200 vs BBG ₫81,400
system
—
14:08:51 today
info
backtest.run · vn30_momentum_carry@v4.2 · Sharpe 1.84 · run btr_8a3f9e
cnguyen@
T2
13:57:30 today
info
tearsheet.export_pdf · vn30_momentum_v4.pdf · watermark embedded
linh.pham@
T2
13:42:11 today
FLAG
data.outlier · BTC funding 8h Bybit · +0.18% > 3σ
system
—
13:21:44 today
info
signal.register · crypto_funding_skew@v1 · status=staging
hduc@
T2
12:48:09 today
info
data.query · vn_equity_daily · 252 rows · symbols=[VCB,VHM,FPT,...] · 1.2s
linh.pham@
T2
12:14:32 today
info
wiki.publish · VNI Trend Follower · documentation 100% complete
eric.ho@
T3
11:42:18 today
info
data.publish · vn_equity_daily@2026-05-15 · 2.3M rows · checksum verified
tmai@
T2
02:14:22 today
INFO
signal.read · mom_12_1@v3 · off-hours access
hduc@
T2
17:32:09 yesterday
ALERT
signal.tier_violation · T1 attempted source read on lowvol_60d · BLOCKED
qanh@
T1
16:45:11 yesterday
info
access.grant · T2 granted to cnguyen@ by eric.ho@ · effective immediately
eric.ho@
T3
15:12:08 yesterday
info
backtest.rerun · btr_891f22 (Nov 2025 spec) · result identical · point-in-time verified ✓
linh.pham@
T2