Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor · · Updated 2026-08-08

AI ఏజెంట్ల కోసం స్థానిక A-Share డేటా లేక్

ashare-lake మీ డిస్క్‌లో 39 datasetsతో స్థానిక A-share data lakeను నిర్మిస్తుంది. Delisting రికార్డులు, point-in-time queries, ఏజెంట్ల కోసం MCP server ఇందులో ఉన్నాయి.

స్థానిక A-share data lake అంటే చైనా మెయిన్‌ల్యాండ్ ఈక్విటీ మార్కెట్‌కు సంబంధించిన చరిత్రను మీ స్వంత డిస్క్‌లో columnar Parquet ఫైళ్లుగా నిల్వ చేయడం. వీటిని DuckDB లేదా Polarsతో చదవచ్చు. దీనికి భిన్నంగా vendor endpointను ప్రతిసారీ ఒక్కో పేజీగా పిలవాల్సిన అవసరం ఉండదు. ashare-lake అనేది ఇలాంటి data lakeను నిర్మించే open-source ప్రాజెక్ట్. దాన్ని తాజాగా ఉంచే రోజువారీ jobను, అలాగే AI agentకు దానిపై queryలు పంపేలా చేసే Model Context Protocol serverను కూడా ఇది అందిస్తుంది. ఈ ప్రాజెక్ట్‌లోని రెండు డిజైన్ ఎంపికలు ప్రత్యేకంగా ప్రస్తావించదగినవి. Delisted పేర్లను కూడా నిల్వ ఉంచుతుంది. Fundamentalsను గతంలోని నిర్దిష్ట తేదీ నాటికి చదవచ్చు.

AI agentకు స్థానిక A-share డేటా లేక్ ఎందుకు అవసరం

స్థానిక కాపీ లేకుండా చైనా ఈక్విటీలను పరిశోధించే agentకు రెండు మార్గాలు ఉంటాయి. అది finance pages నుంచి డేటాను scrape చేసి, తన context windowను HTMLపై ఖర్చు చేయవచ్చు. అలా ఉత్పత్తి చేసిన సంఖ్యలను వచ్చే నెలలో ఎవరూ పునరుత్పత్తి చేయలేరు. లేదా registration అవసరమైన vendorను పిలవవచ్చు. అప్పుడు rows సంఖ్యకు పరిమితి ఉంటుంది, ప్రతి ఫలితం ఒక accountకు ముడిపడి ఉంటుంది.

పరిమాణం ఎంత ముఖ్యమో తరచుగా తక్కువగా అంచనా వేస్తారు. మా స్వంత warehouseలో US tapeను minute resolutionతో నిల్వ చేస్తాం. దానిలోని ఒక సాధారణ వారం ఇలా ఉంటుంది:

క్వెరీUS నిమిషాల టేప్‌లో ఒక వారం: ప్రతి సెషన్‌కు సింబళ్లు మరియు బార్లు, జూలై 20–24, 2026
ప్రతి సంఖ్య వెనుక ఉన్న ఖచ్చితమైన SQL
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session,
       formatDateTime(toDate(toTimeZone(window_start, 'America/New_York')), '%b %e') AS session_label,
       uniqExact(ticker) AS tickers_count,
       round(count() / 1000000, 2) AS minute_bars_millions
FROM global_markets.delayed_stocks_minute_aggs
WHERE toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-07-20')
  AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-07-24')
GROUP BY session, session_label
ORDER BY session
Run this yourself

Jul 201.79 million minute barsను 11737 symbolsపై tape నమోదు చేసింది. Panelలోని మిగిలిన నాలుగు sessionsలోనూ ఇదే పునరావృతమవుతుంది. ఒక జాతీయ మార్కెట్, ఒక వారం, ఒకే resolution. మరో మార్కెట్‌కు సంబంధించిన పదేళ్ల daily bars, fundamentals, index membership, money-flow records కూడా ఇదే పరిమాణాన్ని కలిగి ఉంటాయి. వాటిని HTTP ద్వారా pageలుగా తెప్పించడం agent runను వృథా చేస్తుంది.

స్థానిక data lake ఒకేసారి రెండు మార్పులు తెస్తుంది. Reads quotaపై ఆధారపడకుండా file scanగా మారతాయి. ఈ రోజు రాసిన query ఆరు నెలల తర్వాత కూడా అదే rowsను తిరిగి ఇస్తుంది. Backtestను తనిఖీ చేయగలగాలంటే ఇదే అవసరం. US data విషయంలో కూడా మా AI agents కోసం market data నైపుణ్యాలు మరియు market dataపై SQL API నోట్స్ ఇదే విషయాన్ని వివరిస్తాయి.

ఒక వెర్షన్‌కు పిన్ చేసి ఇన్‌స్టాల్ చేయండి

Python 3.10 లేదా ఆ తరువాతి వెర్షన్‌ను ఉపయోగించండి. వెర్షన్‌ను పిన్ చేయండి: 2026 జూలై 27 నుంచి ఆగస్టు 2 మధ్య ఆరు releases వచ్చాయి. Agent setup scriptలో version pin చేయకుండా ఇన్‌స్టాల్ చేస్తే, ప్రతి సారి మారే వెర్షన్‌పై ఆధారపడాల్సి వస్తుంది. కోడ్ rootSunc/ashare-lakeలో Apache 2.0 లైసెన్స్ కింద ఉంది.

  • pip install ashare-lake==0.5.0 ఆగస్టు 2026 ప్రారంభానికి అందుబాటులో ఉన్న ప్రస్తుత releaseను ఇన్‌స్టాల్ చేస్తుంది.
  • asl --version ఇన్‌స్టాల్ చేసిన buildను చూపిస్తుంది.
  • asl config init --data-root /path/to/ashare-lake డేటా root నింపిన packaged example TOMLను repository checkout అవసరం లేకుండా రాస్తుంది. --config output pathను సెట్ చేస్తుంది; --force ఇప్పటికే ఉన్న ఫైల్‌ను overwrite చేస్తుంది.
  • asl doctor డేటా తరలించే ముందు checksను offlineగా నిర్వహిస్తుంది.
  • asl servers test upstream quote hostsను పరిశీలిస్తుంది. asl sources ప్రతి sourceను పరిశీలిస్తుంది; --vantage విలువ cn, overseas లేదా localలో ఒకటి అవుతుంది.

ఇక్కడే ఆపండి. తదుపరి command backfillను ప్రారంభిస్తుంది. చదువుతూనే దాన్ని అమలు చేయకండి.

బ్యాక్‌ఫిల్ చేసే పని

asl init డైరెక్టరీ నిర్మాణాన్ని సృష్టించి, చారిత్రక డేటాతో నింపుతుంది. ప్రాజెక్ట్ డాక్యుమెంటేషన్ ప్రకారం, పూర్తి రన్‌కు గడిచే సమయం గంటల్లో ఉంటుంది, డిస్క్‌లో అనేక GB స్థలం అవసరం అవుతుంది. దీనికి upstream Tongdaxin quote hostతో ప్రత్యక్ష కనెక్షన్ కూడా అవసరం. ఆ కనెక్షన్‌ను asl servers test ధృవీకరిస్తుంది. asl init --profile quick దాని బదులుగా ఇటీవలి మూడు సంవత్సరాల డేటాను కొన్ని నిమిషాల్లో సేకరిస్తుంది. ఆ కాలంలో ట్రేడ్ అయిన ప్రతి పేరును ఇది ఉంచుతుంది. ఆ తర్వాత మార్కెట్ నుంచి తొలగించబడిన పేర్లు కూడా ఇందులో ఉంటాయి. asl run daily ఆ తర్వాతి incremental job. asl status --datasets ప్రతి datasetకు coverage మరియు freshnessను నివేదిస్తుంది. asl serve 127.0.0.1:8787లో read-only dashboardను అందిస్తుంది.

Repositoryలో డేటా ఏదీ ముందుగా ఉండదు. ప్రతి Parquet ఫైల్ మీ మెషీన్‌పైనే రూపొందుతుంది. ప్రతి వరుసలో row-level lineage ఉంటుంది. ఆ వరుసకు ఏ source కారణమైందో, దాన్ని ఎప్పుడు fetch చేశారో అది నమోదు చేస్తుంది.

39 డేటాసెట్లు ఏమిటి?

ఇవి reference data నుంచి బయటికి విస్తరించే పొరలుగా అమర్చబడ్డాయి: 36 curated tables, 3 derived tables.

  • Reference: instruments, 2016 నుంచి 2027 వరకు ఉన్న trading calendar, trading status.
  • Market data: daily bars, index bars, 1-minute మరియు 5-minute bars, trade ticks, commodity bars, adjustment factors, delisting events.
  • Corporate events: corporate actions, announcement index, earnings disclosure schedule.
  • Fundamentals and valuation: financial statement items, valuation metrics, analyst consensus.
  • Capital flow: fund flow, margin trading, northbound flows and holdings, large-order disclosuresకు సంబంధించిన dragon-tiger board, block trades, institutional holdings.
  • Structure and industry: sector members, index constituents, industry members, industry index.
  • Macro: macro indicators, market breadth, economic calendar.
  • Sentiment and rotation: sentiment scores, hot rank, sector bars, sector fund flow, news headlines, flash news wire.
  • Risk and compliance: share unlock schedule, regulatory events.

ఒక డేటాసెట్ ఎక్కడ ఉంచబడిందో చూస్తే, రచయిత దేనికి ప్రాధాన్యం ఇస్తున్నారో తెలుస్తుంది. Adjustment factors, delisting eventsలను daily bars పక్కనే market-data layerలో ఉంచారు. వాటిని appendixలో పెట్టలేదు. చరిత్ర ఆధారంగా ఆలోచనలను పరీక్షించే ఎవరికైనా, ప్రాజెక్ట్‌లో అత్యంత విలువైన సగం ఇదే.

స్థానిక మార్కెట్ survivorship biasను ఎలా నిర్వహిస్తుంది

Survivorship bias అంటే ఒక అధ్యయనం కోసం ఎంచుకున్న విశ్వం ప్రస్తుతం లిస్టయి ఉన్న పేర్లతోనే రూపొందినప్పుడు ఏర్పడే పక్షపాతం. విలీనం అయిన, ప్రైవేట్‌గా మారిన లేదా డీలిస్ట్ అయిన ప్రతి కంపెనీ అందులో కనిపించకుండా పోతుంది. అదృశ్యమైన పేర్లు సాధారణంగా విజేతలు కావు.

అమెరికా మార్కెట్‌లో ఈ లోటును మా warehouse పరిమాణాత్మకంగా అంచనా వేయగలదు. అక్షరాలు వేరైనా లెక్కింపు అదే. ప్రతి సంవత్సరానికి, మార్చి రెండో వారంలో కనీసం ఒక minute bar నమోదైన ప్రతి symbolను తీసుకుని, వాటిలో 2026 జూలై చివరి రెండు వారాల్లో ఇంకా ట్రేడవుతున్నవి ఏవో పరిశీలించాలి:

క్వెరీకొనసాగిన ఉనికి కొలత: 2026 జూలై చివర్లోనూ ట్రేడవుతున్న US సింబళ్ల మార్చి కోహోర్టులు
ప్రతి సంఖ్య వెనుక ఉన్న ఖచ్చితమైన SQL
WITH on_tape_now AS (
    SELECT ticker
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-07-20')
      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-07-31')
    GROUP BY ticker
),
cohort AS (
    SELECT toYear(toTimeZone(window_start, 'America/New_York')) AS cohort_year,
           ticker
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE toYear(toTimeZone(window_start, 'America/New_York')) BETWEEN 2016 AND 2025
      AND toMonth(toTimeZone(window_start, 'America/New_York')) = 3
      AND toDayOfMonth(toTimeZone(window_start, 'America/New_York')) BETWEEN 10 AND 14
    GROUP BY cohort_year, ticker
)
SELECT c.cohort_year AS year,
       count() AS names_on_tape_count,
       countIf(n.ticker != '') AS still_trading_count,
       count() - countIf(n.ticker != '') AS gone_count,
       round(100 * countIf(n.ticker != '') / count(), 1) AS still_trading_pct
FROM cohort AS c
LEFT JOIN on_tape_now AS n ON c.ticker = n.ticker
GROUP BY year
ORDER BY year
Run this yourself

2016లో ఆ వారంలో ట్రేడైన 8101 symbolsలో, 2026 జూలై చివర్లో 50.1% symbols ఇంకా tapeపై ఉన్నాయి. 4040 symbols మాత్రం లేవు. 2025 cohort ఫలితం 86.7%గా ఉంది. నేటి listings ఆధారంగా రూపొందించిన screenను గతంలోని 10 సంవత్సరాలపై అమలు చేస్తే, మార్కెట్‌లో పెరుగుతున్న భాగం క్రమంగా మినహాయించబడుతుంది.

మిగిలిపోయిన పేర్లన్నీ penny stocksేనని అనుకోవడం సౌకర్యంగా ఉంటుంది. కానీ మార్చి 2021 cohortను ఆ నెలలోని సగటు రోజువారీ dollar volume ఆధారంగా tiersగా విభజిస్తే వాస్తవం వేరుగా కనిపిస్తుంది:

క్వెరీటేప్‌ను ఎవరు విడిచారు: రోజువారీ డాలర్ వాల్యూమ్‌ ఆధారంగా మార్చి 2021 సింబళ్లు, 2026 జూలై చివరతో సరిపోల్చి
ప్రతి సంఖ్య వెనుక ఉన్న ఖచ్చితమైన SQL
WITH on_tape_now AS (
    SELECT ticker
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-07-20')
      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-07-31')
    GROUP BY ticker
),
march_2021 AS (
    SELECT ticker,
           sum(toFloat64(close) * toFloat64(volume))
             / uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS avg_daily_dollar_volume
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2021-03-01')
      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2021-03-31')
    GROUP BY ticker
)
SELECT multiIf(d.avg_daily_dollar_volume >= 1000000000, '$1B or more',
               d.avg_daily_dollar_volume >= 100000000, '$100M to $1B',
               d.avg_daily_dollar_volume >= 10000000, '$10M to $100M',
               d.avg_daily_dollar_volume >= 1000000, '$1M to $10M',
               'under $1M') AS liquidity_bucket,
       count() AS names_count,
       countIf(n.ticker = '') AS gone_count,
       round(100 * countIf(n.ticker = '') / count(), 1) AS gone_pct
FROM march_2021 AS d
LEFT JOIN on_tape_now AS n ON d.ticker = n.ticker
GROUP BY liquidity_bucket
ORDER BY min(d.avg_daily_dollar_volume)
Run this yourself

under $1M tierలోనే అత్యధిక భాగం కోల్పోయింది: 3968 పేర్లలో 57.5%. అత్యంత చురుకైన tier కూడా దీనికి మినహాయింపు కాదు. మార్చి 2021లో రోజుకు $1B or more ట్రేడింగ్ చేసిన 89 symbolsలో 3.4%, 2026 జూలై చివరికి మార్కెట్ నుంచి వెళ్లిపోయాయి. విలీనాలు, take-private లావాదేవీలు, దివాలాలు, ఇండెక్స్ నుంచి తొలగింపులు—ఇవన్నీ price tableలో ఒకే ఫలితాన్ని ఇస్తాయి: ఆ వరుసలు ఆగిపోతాయి.

ashare-lake దీనిని ప్రాథమిక సమస్యగా పరిగణిస్తుంది. instruments dataset డీలిస్ట్ అయిన symbolsను కొనసాగిస్తుంది; వాటిని live symbolsకు మాత్రమే పరిమితం చేయదు. delisting_events table ప్రతి పేరు మార్కెట్ నుంచి ఎలా వెళ్లిపోయిందో నమోదు చేస్తుంది. Python APIలోని universe="all_a" వాటిని కలిగి ఉన్న historical snapshotను అందిస్తుంది. 2016 నుంచి 2021 వరకు survivor-only backtestకు, delisting-inclusive backtestకు మధ్య సుమారు two-fold తేడా ఉందని ప్రాజెక్ట్ స్వంత docs చెబుతున్నాయి. ఇది మా backtestingలో look-ahead bias నోట్స్‌లోని ప్రమాదానికి ప్రతిబింబం: భవిష్యత్తు సమాచారాన్ని నిశ్శబ్దంగా తెలిసిన universe.

సమయానుకూల డేటా పఠనాలు

load("financial_statement_items", as_of="2018-04-30") ఆ తేదీకి ముందు లేదా అదే తేదీన ప్రకటించిన ప్రతి line item యొక్క తాజా వెర్షన్‌ను అందిస్తుంది. తరువాత చేసిన restatementలోని సంఖ్యను ఇది ఉపయోగించదు. Barsలో adjust argument ఉంటుంది: backward adjustment కోసం hfq, query windowలో normalization కోసం qfq, లేదా raw prices. మార్కెట్ ఇంకా ప్రచురించని సంఖ్యలపై రూపొందించిన factor ఏదీ కొలవదు. ఏ LLM రూపొందించిన alpha factor pipelineలోనైనా మొదట పరిశీలించాల్సిన విషయం ఇదే.

MCP సర్వర్‌గా నమోదు చేయడం

ఏజెంట్ సాధనాలను పొందే విధానం Model Context Protocol. asl mcp దీన్ని stdio ద్వారా అమలు చేస్తుంది. క్లయింట్ ఈ ప్రాసెస్‌ను ప్రారంభిస్తుంది:

  • claude mcp add ashare-lake -- asl mcp --config /abs/path/to/ashare-lake.toml
  • ఇతర MCP క్లయింట్లు కూడా ఇదే రెండు అంశాలను తీసుకుంటాయి: కమాండ్‌గా asl, ఆర్గ్యుమెంట్లుగా mcp --configతో పాటు ఒక absolute path. ఈ path తప్పనిసరిగా absoluteగా ఉండాలి. ఎందుకంటే క్లయింట్ ప్రాసెస్‌ను ఏ డైరెక్టరీ నుంచైనా ప్రారంభించవచ్చు.

ఆరు సాధనాలు అందుబాటులోకి వస్తాయి. అవి dataset ఆధారంగా కాకుండా ప్రశ్నల ఆధారంగా అమర్చబడ్డాయి: ఏమి అందుబాటులో ఉందో, దాన్ని ఎలా చదవాలో తెలుసుకోవడానికి describe_lake; పేరును codeగా మార్చడానికి resolve_symbol — delisted పేర్లు కూడా ఇందులో ఉంటాయి; query_bars; as_of argumentతో query_fundamentals; మిగతా అన్ని అవసరాల కోసం query_dataset; datasets అంతటా ఒక read-only DuckDB SELECTను అమలు చేయడానికి run_sql. --live flagను ఉపయోగిస్తే, lakeలో రాయకుండానే server upstream నుంచి symbol lookups మరియు unadjusted daily barsకు సమాధానం ఇవ్వగలదు.

ముందుగా తెలుసుకోవాల్సిన పరిమితులు

  • A-shares మాత్రమే. Hong Kong, US listings లేదా mainland China వెలుపల ఉన్న ఏ మార్కెట్లూ ఇందులో లేవు.
  • ఇది వ్యక్తిగత ప్రాజెక్ట్. Issues, pull requestsకు సాధ్యమైనంత మేర స్పందిస్తారు. అయితే అందుబాటు హామీ లేదని డాక్యుమెంటేషన్ స్పష్టంగా చెబుతోంది. upstream sites మారవచ్చు, IP బ్లాక్ కావచ్చు. అలా జరిగితే ఎవరైనా code సరిచేసే వరకు డేటా సేకరణ ఆగిపోతుంది.
  • Apache 2.0 లైసెన్స్ codeకు మాత్రమే వర్తిస్తుంది; డేటాకు కాదు. ప్రతి upstream sourceకు దాని స్వంత నిబంధనలు ఉంటాయి. మీరు రూపొందించే Parquet filesను redistrib­ute చేయడానికి లేదా resell చేయడానికి maintainer ఎలాంటి హక్కు ఇవ్వరు. వాణిజ్య ఉపయోగానికి ముందు source terms చదవండి.
  • ఇది చదివే sourcesకు account లేదా token అవసరం లేదు. ఇదే దీని ఆకర్షణ, అలాగే దీని బలహీనత కూడా.
  • 0.3.0లో Windows support వచ్చింది. 0.3.1లో Python కనీస అవసరమైన version 3.10కి పెరిగింది.
ఈ ప్రాజెక్ట్ వివరాలకు ఆధారాలు

Version 0.5.0, ఆరు release dates, అలాగే Python కనీస versionను August 4, 2026న పరిశీలించిన ప్రాజెక్ట్ PyPI release history, CHANGELOG నుంచి తీసుకున్నాం. Dataset catalog, delisting మరియు point-in-time behaviour, CLI flags, MCP tool list, licensing మరియు support wording repository docs నుంచి తీసుకున్నాం: docs/datasets/catalog.md, docs/reference/cli.md, docs/reference/mcp.md, మరియు docs/legal-and-data-sources.md. Posts కంటే software వేగంగా మారుతుంది. అందువల్ల మీరు install చేసే versionకు సంబంధించిన docsను పరిశీలించండి. రెండు survivorship panelsలో మా స్వంత warehouseలోని US symbolsను కొలిచాం; Chinese listingsను కాదు. అవి A-share మార్కెట్ కొలతగా కాకుండా, ఈ విధానం ఎలా పనిచేస్తుందో చూపించే ఉదాహరణగా మాత్రమే ఉద్దేశించబడ్డాయి.

తరచుగా అడిగే ప్రశ్నలు

స్థానిక A-share data lake నిర్మించడానికి API key అవసరమా?

ఈ data lakeకు అవసరం లేదు. ఇది చదివే upstream sourcesకు registration లేదా token అవసరం లేదు. Data lake మీ కంప్యూటర్‌లోనే ఉంటుంది. ప్రతి sourceకు స్వంత terms of use ఉంటాయి. ఏదైనా వాణిజ్యపరమైన పని ప్రారంభించే ముందు వాటిని పరిశీలించాలి.

ashare-lake backfillకు ఎంత సమయం పడుతుంది?

డాక్యుమెంటేషన్ ప్రకారం, పూర్తి చరిత్ర backfillకు కొన్ని గంటల wall time మరియు అనేక GB డిస్క్ స్థలం అవసరం కావచ్చు. ఈ ప్రక్రియ మొత్తం సమయంలో upstream quote hostతో పని చేసే connection ఉండాలి. asl init --profile quick ఇటీవలి మూడు సంవత్సరాల డేటాను కొన్ని నిమిషాల్లో కవర్ చేస్తుంది. ఆ కాలంలో delist అయిన పేర్లు కూడా ఇందులో ఉంటాయి.

స్థానిక A-share data lakeలో delisted stocks ఉంటాయా?

ఉంటాయి. Delisted symbols instruments datasetలోనే ఉంటాయి. ప్రతి పేరు ఎలా ముగిసిందో delisting_events table నమోదు చేస్తుంది. universe="all_a" వాటిని కలిగి ఉన్న historical snapshotను రూపొందిస్తుంది. పై మా US కొలత survivor-only universe వదిలివేసే డేటా పరిమాణాన్ని చూపిస్తుంది.

AI agent ashare-lakeను నేరుగా query చేయగలదా?

అవును. asl mcp Model Context Protocol ద్వారా ఆరు toolsను అందిస్తుంది. వాటిలో ఒకటి read-only SQL tool. అందువల్ల agent scraping చేయకుండా స్థానిక Parquetను query చేస్తుంది. దీన్ని claude mcp add ashare-lake -- asl mcp --config /abs/path/to/ashare-lake.tomlతో register చేయండి.

ashare-lake, AkShare లేదా Baostockకు ప్రత్యామ్నాయమా?

కాదు. ఇది వాటి పైన పనిచేస్తుంది. ఆ libraries upstream sources నుంచి డేటాను fetch చేస్తాయి. ఈ project fetch చేసిన డేటాను curated Parquetలో నిల్వ చేసి, versions నిర్వహించి, reconcile చేస్తుంది. ప్రతి rowకు lineage, ప్రతి datasetకు ఒక contract ఉంటాయి.


పైన ఉన్న ప్రతి figure నిజమైన market dataపై అమలు చేసిన stored, versioned query నుంచి వచ్చింది. ఏదైనా panelను విస్తరించి SQLను చదవండి. లేదా Strasmore terminalలో మీ స్వంత universeపై అదే survivorship checkను అమలు చేయండి.

#market-data#mcp#a-shares#open-source#ai-agents