OptionsBot Index

Directory / milgar7969/alpaca-options-framework

C

milgar7969/alpaca-options-framework

A Python framework for building live options trading bots on Alpaca Markets - asyncio, WebSocket streaming, position management, and all the API workarounds documented.

Reviewed Bot 56/100
Not financial advice. A grade measures public repo hygiene only (license, upkeep, tests, paper mode, risk limits, docs). It does not measure returns, safety or suitability. Options trading can lose more than you invest. Read the full policy.
Reviewed. Grok Bot read the code and docs and checked or adjusted each judged factor. Nothing was executed. This is not a human audit. Reviewed on 2026-10-24 against commit fd1c411, rubric v1.1.

Reviewer summary: Alpaca 0DTE framework with real config limits (daily loss, risk per trade, a time stop) and a PAPER flag. It has no license file, no tests and no true kill switch, only a daily loss stop on new entries.

Facts

Repositoryhttps://github.com/milgar7969/alpaca-options-framework
TypeBot
Strategies0DTE
BrokersAlpaca
LicenseNo license
LanguagePython
Last commit2026-07-03 (113 days before the scan)
Last scanned2026-10-24
Stars23 (shown for context, never scored)

Score breakdown

FactorPointsHow it was decided
Risk limits and kill switch 15 / 20
MAX_DAILY_LOSS and MAX_RISK_PER_TRADE are enforced in code (10). A daily loss stop of new entries behaves like a circuit breaker but is documented rather than a separate switch (5).
Reviewer confirmed the scanner result.
Scanner evidence (6, automated, can include false matches)
  • config.py:45 [max loss] MAX_DAILY_LOSS = 300.00 # hard daily loss limit - bot stops new entries
  • config.py:44 [max notional or exposure] MAX_RISK_PER_TRADE = 150.00 # dollars at risk per trade (stop loss basis)
  • config.py:46 [max orders] MAX_TRADES_PER_DAY = 999 # effectively unlimited during paper/data collection
  • config.py:45 [daily loss limit] MAX_DAILY_LOSS = 300.00 # hard daily loss limit - bot stops new entries
  • config.py:44 [risk limit] MAX_RISK_PER_TRADE = 150.00 # dollars at risk per trade (stop loss basis)
  • config.py:44 [stop loss] MAX_RISK_PER_TRADE = 150.00 # dollars at risk per trade (stop loss basis)
License 0 / 15
No license found
Reviewer confirmed the scanner result.
Last commit on default branch 8 / 15
113 days since last commit
Fact from the commit date, no judgment involved.
Scanner evidence (1, automated, can include false matches)
  • default branch HEAD 2026-07-03 (113 days ago)
Tests 0 / 15
0 test cases found in 0 test files; CI test step not found
Reviewer confirmed the scanner result.
Paper or dry-run mode 15 / 15
documented and code or config switch
Reviewer confirmed the scanner result.
Scanner evidence (2, automated, can include false matches)
  • README.md:19 Bracket legs, sell limits - all rejected for options on Alpaca paper trading. The only working exit is `close_position()`. This framework bu
  • config.py:7 [paper-mode flag] PAPER = True # set False only after paper validation passes
README quality 8 / 10
install steps, explains what it does, risk disclaimer, 13628 chars
Reviewer confirmed the scanner result.
Scanner evidence (2, automated, can include false matches)
Broker detection 10 / 10
Alpaca (deps, code, readme)
Reviewer confirmed the scanner result.
Scanner evidence (1, automated, can include false matches)
Total56 / 100Grades: A 85+, B 70+, C 55+, D 40+, F below.

Grades measure public repo hygiene on the scan date. They say nothing about profits, safety or security. We did not run this code. Full rubric and patterns.

Something wrong?

Report a correction Request removal (maintainers)

Corrections and removals are public GitHub issues. We reply within 7 days and every change is in the repo history. Sponsors get no special treatment: see our policy.

Badge for your README

Once the site has a public address, shields.io can read /badge/milgar7969--alpaca-options-framework.json from it. Badges show the grade and whether it was reviewed. Maintainers may use one without asking.