Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/eddmpython/dartlab/quantnpx skills add eddmpython/dartlab --skill quantgit clone --depth 1 https://github.com/eddmpython/dartlabWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00000 | $0.11704 |
| Opus 5 | $0.00000 | $0.05852 |
| Sonnet 5 | $0.00000 | $0.02341 |
| Haiku 4.5 | $0.00000 | $0.01170 |
Grade A, and why
quant scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 785 lines — stays where its author put it; the contents beside it link to each section on GitHub.
엔진 역할
quant는 가격/거래량/수급/팩터/공시 텍스트/포트폴리오/전략을 정량적으로 계산하는 L2 엔진이다. 재무제표의 회계적 인과 해석은 analysis, 시장 레벨 매크로 해석은 macro, 후보 유니버스 발굴은 scan이 담당한다.
공개 호출 방식
import dartlab
guide = dartlab.quant()
tech = dartlab.quant("지표", "005930")
verdict = dartlab.quant("판단", "005930")
beta = dartlab.quant("베타", "005930", benchmarkMode="sector")
ranking = dartlab.quant("순위")
portfolio = dartlab.quant("리스크패리티", ["005930", "000660"])
bt = dartlab.quant("backtest", "005930", style="trendFollow")
c = dartlab.Company("005930")
company_quant = c.quant("모멘텀")
divergence = c.quant("괴리")
괴리는 Quant 대표 제품이다. 공시 이익 변화, 시장 횡단면 이익 서프라이즈 프록시,
가격 반응을 비교한다. 실제 애널리스트 컨센서스가 없으면 이를 기대치로 가장하지 않고
product.gaps에 quant.analystConsensus로 남긴다.
classification: underReaction | confirmation | overOptimism | deteriorationPriced | inconclusive
fundamental, expectation, price,
product{conclusion, confidence, evidence, gaps, scenarios, falsifiers, payload}
강행 호출 룰 (agent 답변 품질 회귀 차단)
46 axis 질문 (베타·모멘텀·변동성·factor·forecast·backtest 등) 에서 다음 4 룰 강행 - 위반 시 refs=0 회귀.
- 1 차 도구는 EngineCall 강제.
EngineCall(apiRef="quant", args={"axis": "베타", "stockCode": "005930"})양식. RunPython 직접 numpy/polars 계산은 engine 결과 부재 시에만 fallback - 처음부터 raw 계산 금지. - 본문 안 숫자에 inline ref 표기 필수 -
[tableRef:...]또는[valueRef:...]형식. ref 없는 quant 결과는 답변 보류. - backtest 결과는
executionRef명시 - 백테스트 일자 / 룰 / 파라미터 ref 박지 않으면 hindsight 환각. - forecast/walkforward 같은 가정 강한 축은
[conf:30]기본 - 가정 (lookahead window · trend assumption) 본문에 명시.
호출 동작
무인자 dartlab.quant()는 46개 축 가이드 DataFrame을 반환한다. axis와 종목을 주면 가격/거래량/재무/공시 snapshot을 읽어 축별 결과를 계산한다.
축은 단일 종목 축, 종목 불필요 횡단면 축, 종목 리스트 포트폴리오 축, rule/style 기반 전략 축으로 나뉜다. 필요한 입력이 없으면 가이드 또는 오류/제한을 반환하고 값을 만들지 않는다.
전체 축/메서드 목록
| axis | label | group | 대표 호출 |
|---|---|---|---|
| indicators | 지표 | 기술적 | dartlab.quant("지표", "005930") |
| signals | 신호 | 기술적 | dartlab.quant("신호", "005930") |
| verdict | 판단 | 기술적 | dartlab.quant("판단", "005930") |
| momentum | 모멘텀 | 기술적 | dartlab.quant("모멘텀", "005930") |
| volatility | 변동성 | 기술적 | dartlab.quant("변동성", "005930") |
| forecast | 예측 | 기술적 | dartlab.quant("예측", "005930", horizon=5) |
| marketContext | 시장맥락 | 리스크 | dartlab.quant("시장맥락", "005930") |
| regime | 레짐 | 기술적 | dartlab.quant("레짐", "005930") |
| pattern | 패턴 | 기술적 | dartlab.quant("패턴", "005930") |
| chartPatterns | 차트패턴 | 기술적 | dartlab.quant("차트패턴", "005930") |
| beta | 베타 | 리스크 | dartlab.quant("베타", "005930") |
| benchmark | 벤치마크 | 리스크 | dartlab.quant("벤치마크", "005930") |
| factor | 팩터 | 리스크 | dartlab.quant("팩터", "005930") |
| tailrisk | 꼬리위험 | 리스크 | dartlab.quant("꼬리위험", "005930") |
| residual | 잔여수익 | 리스크 | dartlab.quant("잔여수익", "005930") |
| liquidity | 유동성 | 미시구조 | dartlab.quant("유동성", "005930") |
| flow | 수급 | 미시구조 | dartlab.quant("수급", "005930") |
| volume | 거래량 | 미시구조 | dartlab.quant("거래량", "005930") |
| divergence | 괴리 | 펀더멘털 | dartlab.quant("괴리", "005930") |
| quality | 퀄리티 | 펀더멘털 | dartlab.quant("퀄리티", "005930") |
| value | 가치 | 펀더멘털 | dartlab.quant("가치", "005930") |
| earnings | 이익모멘텀 | 펀더멘털 | dartlab.quant("이익모멘텀", "005930") |
| sentiment | 공시심리 | 텍스트/공시 | dartlab.quant("공시심리", "005930") |
| toneChange | 톤변화 | 텍스트/공시 | dartlab.quant("톤변화", "005930") |
| eventSignal | 이벤트신호 | 텍스트/공시 | dartlab.quant("이벤트신호", "005930") |
| riskText | 리스크텍스트 | 텍스트/공시 | dartlab.quant("리스크텍스트", "005930") |
| governanceQuant | 거버넌스퀀트 | 텍스트/공시 | dartlab.quant("거버넌스퀀트", "005930") |
| ranking | 순위 | 횡단면 | dartlab.quant("순위") |
| pairs | 페어 | 횡단면 | dartlab.quant("페어") |
| screen | 스크린 | 횡단면 | dartlab.quant("스크린") |
| altman | Altman Z/Z'' + 적용성 원장 | 펀더멘털 | dartlab.quant("altman") |
| piotroski | Piotroski F | 펀더멘털 | dartlab.quant("piotroski") |
| beneish | Beneish M 비발행 계약 | 펀더멘털 | dartlab.quant("beneish") |
| accruals | Sloan Accrual | 펀더멘털 | dartlab.quant("accruals") |
| qfactor | q-factor | 펀더멘털 | dartlab.quant("qfactor") |
| qmj | QMJ | 펀더멘털 | dartlab.quant("qmj") |
| bab | BAB 저베타 | 리스크 | dartlab.quant("bab") |
| surprise | 이익서프라이즈 | 펀더멘털 | dartlab.quant("surprise") |
| fundmom | 펀더-가격 모멘텀 | 펀더멘털 | dartlab.quant("fundmom") |
| meanvar | 평균분산 | 포트폴리오 | dartlab.quant("평균분산", ["005930", "000660"]) |
| riskparity | 리스크패리티 | 포트폴리오 | dartlab.quant("리스크패리티", ["005930", "000660"]) |
| allocation | 자산배분 | 포트폴리오 | dartlab.quant("자산배분", ["005930", "000660"]) |
| strategy | 전략 | 전략 DSL | dartlab.quant("strategy", "005930", rule=myRule) |
| backtest | 백테스트 | 전략 DSL | dartlab.quant("backtest", "005930", style="trendFollow") |
| style | 스타일 | 전략 DSL | dartlab.quant("style", "005930", name="all") |
| entry | 진입진단 | 전략 DSL | dartlab.quant("entry", "005930", style="all") |
| walkforward | 워크포워드 | 전략 DSL | dartlab.quant("walkforward", "005930", style="meanReversion") |
| multi | 멀티자산 | 전략 DSL | dartlab.quant("multi", ["005930", "000660"], style="trendFollow") |
What ships with it
4 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday First seen · 785 lines · 0 tokens per session scan A 22f309f4a114
quant is a skill published in the GitHub repository eddmpython/dartlab (209 stars, last pushed 10d ago), licensed Apache-2.0. It costs nothing until one of its globs matches a file; then it loads 11,704 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
build_workspace_app
This guide covers the full lifecycle of building, running, and serving a custom OpenBB Workspace application from an extension project scaffolded by openbb-cookiecutter. It assumes the project shell already exists (see the developextension skill for scaffolding instructions).
configure_mcp_server
This guide covers installation, configuration, authentication, tool discovery, prompt management, and client integration for openbb-mcp-server.
develop_extension
This is a complete guide for creating a new OpenBB Platform extension from scratch. Follow every phase in order. When the user says "build me an application that does X", use this guide to scaffold, implement, install, and verify the extension.
work_with_server
This guide explains how to call tools, interpret responses, discover capabilities, use prompts, and handle errors when interacting with an OpenBB MCP server.
fin-data-acquisition
根据REFINEDDESIGN.md中的变量定义,自动获取所需数据并生成可执行的回归分析脚本(Python/Stata)。.
alphasift
自动选股 Skill。Use when: 用户要按策略筛选 A 股、列出可用策略、运行双低/放量突破/均衡多因子/资金热度等选股,或保存运行并做 T+N 后验评估。通过 alphasift CLI 或 Python 接口输出候选股票列表。.