Get the FREE Ultimate OpenClaw Setup Guide →

ib-portfolio-action-report

Scanned
npx machina-cli add skill staskh/trading_skills/ib-portfolio-action-report --openclaw
Files (1)
SKILL.md
3.1 KB

IB Portfolio Action Report

Generate a comprehensive portfolio action report that analyzes all positions across Interactive Brokers accounts, fetches earnings dates, and provides traffic-light risk indicators (🔴🟡🟢) for each position.

Prerequisites

User must have TWS or IB Gateway running locally with API enabled:

  • Paper trading: port 7497
  • Live trading: port 7496

Instructions

Step 1: Gather Data

Note: If uv is not installed or pyproject.toml is not found, replace uv run python with python in all commands below.

uv run python scripts/report.py [--port PORT] [--account ACCOUNT]

The script returns JSON to stdout with analyzed portfolio data including risk levels, earnings dates, technical indicators, and spread groupings.

Step 2: Format Report

Read templates/markdown-template.md for formatting instructions. Generate a markdown report from the JSON data and save to sandbox/.

Filename: ib_portfolio_action_report_{ACCOUNT}_{YYYY-MM-DD}_{HHmm}.md

Step 3: Report Results

Present critical findings to the user: red/yellow items requiring attention, top priority actions, and the saved report path.

Arguments

  • --port - IB port (default: 7496 for live trading)
  • --account - Specific account ID to analyze (optional, defaults to all accounts)

JSON Output

The script returns structured JSON with:

  • generated - Timestamp
  • accounts - List of account IDs
  • summary - Red/yellow/green counts
  • spreads - All positions grouped into spreads with risk level, urgency, and recommendations
  • technicals - Technical indicators per symbol (RSI, trend, SMAs, MACD, ADX)
  • earnings - Earnings dates per symbol
  • prices - Current prices per symbol
  • earnings_calendar - Upcoming earnings with account/position info
  • account_summary - Position and risk counts per account

Report Sections

  1. Critical Summary: Count of positions by risk level (🔴/🟡/🟢)
  2. Immediate Action Required: Positions expiring within 2 days
  3. Urgent - Expiring Within 1 Week: Short-term positions needing attention
  4. Critical Earnings Alert: Positions with earnings this week
  5. Earnings Next Week: Upcoming earnings exposure
  6. Expiring in 2 Weeks: Medium-term expirations
  7. Longer-Dated Positions: Core holdings with spread analysis
  8. Top Priority Actions: Numbered action items by urgency
  9. Position Size Summary: Account-level breakdown
  10. Earnings Calendar: Next 30 days of earnings dates
  11. Technical Analysis Summary: RSI, trend, SMAs, MACD, ADX for each underlying

Example Usage

# All accounts on live trading port
uv run python scripts/report.py --port 7496

# Specific account
uv run python scripts/report.py --port 7496 --account U790497

Dependencies

  • ib-async
  • pandas-ta
  • yfinance

Source

git clone https://github.com/staskh/trading_skills/blob/main/.claude/skills/ib-portfolio-action-report/SKILL.mdView on GitHub

Overview

Generates a comprehensive analysis of all Interactive Brokers positions, pulling earnings dates and assigning traffic-light risk indicators for each position. It supports portfolio reviews, action items, earnings risk assessment, and cross-account position management via a locally running TWS or IB Gateway.

How This Skill Works

It runs against your local IB API session to gather data via scripts/report.py, returning a JSON payload with risk levels, earnings dates, technical indicators, and spreads. The results are then formatted into a Markdown report using templates/markdown-template.md and saved under sandbox/ with a timestamped filename.

When to Use It

  • When performing a portfolio review across IB accounts
  • When identifying action items or urgent adjustments
  • When assessing earnings risk and upcoming earnings dates per symbol
  • When managing positions and spreads across accounts
  • When preparing a report to share findings with stakeholders

Quick Start

  1. Step 1: Start TWS or IB Gateway with API access enabled (Paper: port 7497, Live: port 7496)
  2. Step 2: Run uv run python scripts/report.py --port PORT [--account ACCOUNT]
  3. Step 3: Open the generated Markdown report in sandbox/ and review red/yellow items and actions

Best Practices

  • Ensure TWS or IB Gateway is running with API access before starting
  • Use port 7496 for live trading or 7497 for paper trading, and specify --account if needed
  • Run after market close for fresh data and review earnings dates
  • Validate the JSON output before formatting the Markdown report
  • Review the earnings_calendar and spreads sections to prioritize actions

Example Use Cases

  • Review all accounts before an earnings week and focus on red items needing action
  • Generate a report for a specific account to isolate action items and risk
  • Save the Markdown report to sandbox/ with a timestamped filename for record keeping
  • Use the earnings_calendar to anticipate risk exposure across symbols
  • Combine with technical indicators (RSI, SMA, MACD) to adjust risk posture

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers