Methodology

    How Nepse Signal computes its signals.

    An end-to-end walkthrough — data sources, factor scoring, walk-forward backtests, calibration, AI advisor, and the tradeoffs we explicitly accept. Plain language, no hand-waving.

    Local-first data

    Walk-forward backtests

    Isotonic calibration

    Multi-agent AI

    1. Data sources

    Every chart, signal, and table on Nepse Signal traces back to publicly-available sources. We never invent prices and we don't paywall the underlying numbers. Specifically:

    • Live prices & indices — synced from the Nepal Stock Exchange (NEPSE) official api.
    • Daily floorsheet — every executed contract (~30,000–80,000 rows per session) ingested from the Nepal Stock Exchange (NEPSE) official api, indexed by business_date + buyer_member_id + seller_member_id.
    • Fundamentals — EPS, P/E, P/B, ROE, BVPS, market cap, paid-up capital, dividends are calculated in realtime in system using formula from the Nepal Stock Exchange (NEPSE) official website and stored as time-stamped snapshots so historical analysis uses the data that was available at the time, not the retrospectively-revised version.
    • News — Nepali financial reports are synced from trusted sources in realtime
    • Corporate actions — dividends, bonus issues, rights, splits captured from official NEPSE filings; used to compute adjusted price histories.

    2. Local-first architecture

    All analytics run against our own PostgreSQL store, not against live API calls. This matters for two reasons: consistency (we can reproduce yesterday's signals on demand) and resilience (third-party outages don't take our site down).

    The same architecture lets us serve broker analysis, hot stocks, and per-symbol leaderboards from SQL aggregations instead of scraping on every request — typical p95 latency on these endpoints is under 200 milliseconds.

    3. Factor scoring (T / F / M / S / R)

    Our deterministic quant score combines five factor families into a single 0–1 number per stock:

    • T — Technical — moving-average alignment, RSI, MACD divergence, volume-confirmed breakouts. Weighted 40% by default because Nepali retail flow is momentum-heavy.
    • F — Fundamental — P/E and P/B relative to sector median, ROE trend, EPS growth. Weighted 20%.
    • M — Momentum — risk-adjusted return over 1/3/6 months. Weighted 15%.
    • S — Sentiment — FinBERT-tuned sentiment score over recent news mentioning the symbol. .
    • R — Risk — realised volatility, drawdown depth, beta to NEPSE.

    The blended score maps to a five-bucket recommendation: Strong Sell (≤0.2), Sell (≤0.4), Hold (≤0.6), Buy (≤0.8), Strong Buy (>0.8). Weights and thresholds are documented in code; they are not opaque magic numbers.

    4. Walk-forward backtesting

    Static backtests are the easiest way to fool yourself. We use purged walk-forward cross-validation instead: the model trains on data up to day T-1, predicts for day T, then rolls forward one day. Predictions never see data that wasn't available at the time. The purge window between train and test prevents short-term leakage from autocorrelation.

    Reported metrics are always out-of-sample: Sharpe ratio, hit rate, maximum drawdown, and average return per signal type. Where a strategy has a positive in-sample Sharpe but negative OOS, we publish that — quietly killing the strategy rather than dressing it up.

    5. Probability calibration

    A raw classifier might report "70% probability of upside" but actually only be right 55% of the time at that confidence — overconfident. We apply isotonic regression calibration on a held-out validation set so the published probabilities track empirical hit rates. A 70% probability in our system should be right roughly 70% of the time over a meaningful sample.

    6. Multi-agent AI advisor

    For any stock you ask about, four specialist agents run in parallel via asyncio.gather: a technical analyst, a fundamental analyst, a sentiment analyst, and a risk analyst. Each agent reads from the local data store, forms an opinion, and returns a structured recommendation with rationale. An orchestrator agent then weighs the four opinions and produces a final consensus.

    The reasoning of each agent is visible to you — not buried. Disagreement among agents is itself a signal: a stock where the technical agent is bullish but the fundamental agent is bearish demands a closer look, not an automated trade.

    7. Broker-flow analytics

    For every trading day we compute, per broker: total buy and sell amount, contract count, market share, and per-symbol concentration. The "leaderboard" page is two GROUP BY queries; the "popular stocks" panel is a window function over broker-symbol pairs. Tier-clustered broker labels (institutional vs retail-dominant) are derived weekly from a K-means clustering on historical trade size distributions.

    8. What we don't claim

    • We are not a SEBON-registered investment adviser. None of our output is personalised investment advice.
    • Backtested performance is not a guarantee of future results. Markets evolve; models decay.
    • Our data is best-effort but sourced from third parties. Always cross-check time-sensitive decisions against your broker's terminal.
    • The AI agents are deliberately conservative on microcaps and illiquid names where their training distribution is thin.

    9. Update cadence

    Intraday

    Prices, indices, top-movers: every 60 s during trading hours.

    Daily

    Floorsheet, broker analysis, news: end-of-session at 3:00 PM NPT.

    Quarterly

    Fundamentals, model retraining, factor weights review.

    Continuous

    Methodology page itself is reviewed and updated when anything material changes.

    10. Editorial process

    Long-form research articles (the pieces under /research) are drafted by one analyst, reviewed by a second for factual claims, and signed off by the founder before publication. Numbers cited in any article tie back to a primary disclosure (NEPSE filing, NRB directive, audited quarterly) — we don't paraphrase commentary as fact.

    Honest about what works, honest about what doesn't.

    If you spot a methodological error, please reach out — we'll review, correct, and credit you on the change-log section above.

    Research

    Long-form NEPSE guides →

    About

    Why Nepse Signal exists →

    Disclaimer · Nepse Signal provides market data and analysis for informational purposes only — not investment advice. Trading securities involves risk, including loss of principal. Always make your own decisions and consult a licensed professional before acting. Read our full Terms of Use.