S7.5: Portfolio construction and costs

Open
#143 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
45/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
python
Domain
data

Research direction

Start by reading the roadmap entry for S7.5 and the dependent story S7.3 (#30), then inspect the engine entry points and existing tests in the repository. Implement filters, ranking, weighting, trading costs, and turnover reporting; add hand-checked tests for the acceptance criteria. The story is done when those behaviors are implemented and the tests verify them.

Written by the indexing model from the issue text.

Description

area: engine blocked priority: P0 story

Roadmap story S7.5 · Project · Roadmap

Parent epic: E7 #14

Dependencies: S7.3 #30

Priority: P0 · Size: M · Sprint: 4 · Milestone: M4 · Area: engine · Depends on: S7.3 · Reqs: FR-B5 · Status: Backlog

Story: As a researcher, I want to turn signals into portfolios in standard ways, so that I can test "stocks with X outperform" ideas.

Acceptance criteria

  • Filters (for example, signal > 0), quantile ranking, and equal-weight long-only portfolios.
  • Value weights and long-short are optional settings.
  • Costs are charged in basis points on traded value, and turnover is reported.

Tasks

  • Implement filters and ranking
  • Implement the weighting schemes
  • Implement the cost model and turnover
  • Write hand-checked tests

Progress evidence (2026-11-08): No implementation or completion evidence for these acceptance criteria is present in the audited commit. This remains planned work.

Audited against committed main at 0c32c57. Local, staged, and untracked work is excluded.

Dominant language
Python
Stars
0
Forks
0
Avg merge
3h 33m
Merged PRs (30d)
50

Getting set up

  • No Dockerfile or Docker Compose file
  • Has a pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from nfiasco/Quant-Time-Machine

All issues in nfiasco/Quant-Time-Machine

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.