Skip to content
Back to skills

Factor Research

ASecurity

Evaluate whether a cross-sectional factor genuinely predicts returns. Trigger for "这个因子有效吗", "算一下IC", "动量因子在A股还有效吗", "帮我评估这个选股信号", "factor IC", "is this signal predictive", "compare momentum vs value factors", or whenever the user (1) proposes or computes a ranking/score across assets and asks if it works, (2) asks which factor explains recent moves, (3) wants factors screened/ranked before building a strategy, or (4) hands a signal to strategy construction. Fire even for informal phrasing ("...

  • 2 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 6, 2026
ai-agentspythonrustgorails

Security analysis

A100/100

Pro scans all 6 files and shows the line behind each finding

Scanned September 6, 2026

npx -y skills add artherahq/skills --skill factor-research --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Factor Research?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Factor Research
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/artherahq-factor-research/badge)](https://www.skillsdirectory.com/skills/artherahq-factor-research)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: factor-research
description: >-
  Evaluate whether a cross-sectional factor genuinely predicts returns.
  Trigger for "这个因子有效吗", "算一下IC", "动量因子在A股还有效吗",
  "帮我评估这个选股信号", "factor IC", "is this signal predictive",
  "compare momentum vs value factors", or whenever the user (1) proposes or
  computes a ranking/score across assets and asks if it works, (2) asks which
  factor explains recent moves, (3) wants factors screened/ranked before
  building a strategy, or (4) hands a signal to strategy construction. Fire
  even for informal phrasing ("这个指标选股靠谱吗"). Do NOT trigger for
  single-asset technical indicator questions (no cross-section) or for
  validating a finished strategy's returns (that is backtest-validation).
---

# Factor Research

A factor is a claim that an ordering of assets today predicts their returns
tomorrow. Rankings are cheap — every column of numbers orders a universe. This
skill measures whether the ordering carries information, how fast it decays,
and whether it survives its own turnover.

## Position in the pipeline

`point-in-time-research` guards the data that builds the factor panel. This
skill judges the panel. Survivors go to `backtest-validation`, where costs and
selection bias get their turn. **A factor evaluated on contaminated data has a
fictional IC — run PIT discipline first if the panel provenance is unclear.**

## What gets measured (one way, no options)

1. **Rank IC series** — per-period cross-sectional Spearman of factor(t) vs
   next-period returns. Rank, not Pearson: factors are orderings, and Pearson
   IC is one outlier away from flattery. Mean IC, IC-IR, t-stat, hit rate.
2. **Decay** — mean IC at 1/5/10/21-period horizons. Fast decay + high
   turnover = the edge pays the broker.
3. **Quantile discipline** — mean forward return per quintile and the share of
   ordered adjacent steps. A real factor orders the middle of the book, not
   just the two extreme buckets.
4. **Stability** — first-half vs second-half IC (a sign flip is fatal) and
   factor rank autocorrelation (turnover proxy).

## Workflow

1. Establish the panel: factor values as-of each date (long format
   date,symbol,value), the return matrix, the frequency, and where the factor
   values came from. If provenance is unclear, route through
   point-in-time-research before trusting any IC.
2. Run `python scripts/factor_evaluate.py --factor factor.csv --returns returns.csv --freq daily --json report.json`
   (or `--demo` to show the mechanics).
3. Report judgement first, then the evidence: IC/IR/t/hit-rate, decay curve,
   quantile spread, turnover. Interpretation thresholds live in
   `references/methodology.md`.
4. Route by verdict: `valid` / `valid_but_moderate` → hand to
   backtest-validation (the factor is a hypothesis, not yet a strategy);
   `weak` / `invalid` → the deliverable is the rejection and which check
   failed. Do not "fix" a dead factor by trying variants until one passes —
   that is selection bias, and backtest-validation's DSR will ask how many
   variants were tried.
5. When comparing multiple factors, evaluate each on the same universe and
   window, and report the count of factors examined alongside the winner.

## Guardrails

- IC below noise threshold is reported as "no signal", never rounded up to
  "slightly positive".
- No strategy construction on a `weak`/`invalid` verdict.
- Multiple factors tried = trials disclosed downstream to backtest-validation.
- Decay and turnover are always reported together — a horizon-1 edge with
  churny ranks is flagged, not celebrated.

Files in this skill

  • SKILL.md3.6 KB
  • agents/openai.yaml248 B
  • references/methodology.md2.3 KB
  • scripts/factor_evaluate.py13.5 KB
  • scripts/test_factor_evaluate.py3.9 KB
  • skill-policy.json286 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.