一键导入
dividend-manager
Track dividends, manage DRIP (reinvestment), forecast income, and optimize dividend portfolio.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Track dividends, manage DRIP (reinvestment), forecast income, and optimize dividend portfolio.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Complete market analysis for Crypto, Forex, and Stocks with RSI, MACD, trends, and trading recommendations.
Binary Options trading via BinaryFaster. Execute CALL/PUT trades, manage positions, track results.
Regulatory compliance across jurisdictions. KYC status, tax reporting, trading restrictions, and legal guidelines.
Social trading - copy the best traders automatically. Track whales, influencers, and top performers.
DeFi yield hunting across protocols. Find the best APY, auto-compound, manage LP positions, and optimize gas.
Derivatives trading - options, futures, and perpetuals. Advanced strategies for hedging and leverage.
| name | dividend-manager |
| description | Track dividends, manage DRIP (reinvestment), forecast income, and optimize dividend portfolio. |
| metadata | {"openclaw":{"emoji":"💰","requires":{"bins":["python3"],"pip":["yfinance","pandas","requests"]}}} |
Vollautomatisches Dividenden-Tracking und Reinvestment.
# ~/.kit/config/dividend-manager.json
{
"auto_pilot": {
"enabled": true,
"drip": {
"enabled": true,
"mode": "same_stock", # same_stock | diversify | accumulate_cash
"min_reinvest_eur": 25,
"require_approval": false
},
"alerts": {
"ex_dividend_reminder_days": 3,
"payment_notification": true,
"yield_change_threshold_pct": 10
},
"rebalance": {
"target_yield_pct": 4.0,
"max_single_position_pct": 10
},
"tax_optimization": {
"use_sparerpauschbetrag": true,
"freistellungsauftrag_eur": 1000
}
}
}
python3 -c "
import yfinance as yf
portfolio = [
{'symbol': 'AAPL', 'shares': 50},
{'symbol': 'MSFT', 'shares': 30},
{'symbol': 'JNJ', 'shares': 40},
{'symbol': 'KO', 'shares': 100},
{'symbol': 'O', 'shares': 75}, # Realty Income (monthly)
]
print('💰 DIVIDEND PORTFOLIO')
print('=' * 70)
print(f'{\"Symbol\":8} {\"Shares\":>8} {\"Price\":>10} {\"Div/Share\":>10} {\"Yield\":>8} {\"Annual\":>10}')
print('-' * 70)
total_value = 0
total_annual_div = 0
for p in portfolio:
try:
stock = yf.Ticker(p['symbol'])
info = stock.info
price = info.get('currentPrice', info.get('regularMarketPrice', 0))
div_rate = info.get('dividendRate', 0) or 0
div_yield = info.get('dividendYield', 0) or 0
position_value = p['shares'] * price
annual_div = p['shares'] * div_rate
total_value += position_value
total_annual_div += annual_div
print(f\"{p['symbol']:8} {p['shares']:>8} \${price:>9.2f} \${div_rate:>9.2f} {div_yield*100:>7.2f}% \${annual_div:>9.2f}\")
except Exception as e:
print(f\"{p['symbol']:8} Error: {e}\")
print('-' * 70)
portfolio_yield = (total_annual_div / total_value * 100) if total_value > 0 else 0
print(f'{\"TOTAL\":8} {\"\":>8} \${total_value:>9,.2f} {\"\":>10} {portfolio_yield:>7.2f}% \${total_annual_div:>9,.2f}')
print()
print(f'📅 Monthly Income: \${total_annual_div/12:,.2f}')
"
python3 -c "
import yfinance as yf
from datetime import datetime, timedelta
portfolio = ['AAPL', 'MSFT', 'JNJ', 'KO', 'O', 'VZ', 'PG']
print('📅 UPCOMING DIVIDENDS')
print('=' * 60)
upcoming = []
for symbol in portfolio:
try:
stock = yf.Ticker(symbol)
cal = stock.calendar
if cal is not None and not cal.empty:
ex_date = cal.get('Ex-Dividend Date')
if ex_date:
upcoming.append({
'symbol': symbol,
'ex_date': ex_date,
'dividend': stock.info.get('dividendRate', 0) / 4 # Quarterly
})
except:
pass
# Sort by date
for div in sorted(upcoming, key=lambda x: x['ex_date'] if x['ex_date'] else datetime.max):
if div['ex_date']:
date_str = div['ex_date'].strftime('%Y-%m-%d') if hasattr(div['ex_date'], 'strftime') else str(div['ex_date'])
print(f\"{div['symbol']:6} | Ex-Date: {date_str} | ~\${div['dividend']:.2f}/share\")
"
python3 -c "
import yfinance as yf
# Dividend received
dividend_payment = {
'symbol': 'AAPL',
'shares_owned': 50,
'dividend_per_share': 0.24,
'total_received': 12.00
}
stock = yf.Ticker(dividend_payment['symbol'])
current_price = stock.info.get('currentPrice', 150)
# Calculate DRIP
shares_to_buy = dividend_payment['total_received'] / current_price
fractional = shares_to_buy % 1
whole_shares = int(shares_to_buy)
leftover_cash = fractional * current_price
print('💰 DRIP CALCULATION')
print('=' * 50)
print(f\"Dividend Received: \${dividend_payment['total_received']:.2f}\")
print(f\"Current Price: \${current_price:.2f}\")
print()
print(f\"Shares to Buy: {shares_to_buy:.4f}\")
print(f\" Whole Shares: {whole_shares}\")
print(f\" Leftover Cash: \${leftover_cash:.2f}\")
print()
if whole_shares > 0:
print(f'🤖 AUTO-DRIP: Would buy {whole_shares} shares of {dividend_payment[\"symbol\"]}')
# Execute: exchange.create_market_buy_order(symbol, whole_shares)
else:
print('💵 Accumulating cash for next DRIP opportunity')
"
python3 -c "
import yfinance as yf
import pandas as pd
symbol = 'JNJ' # Dividend King
stock = yf.Ticker(symbol)
# Get historical dividends
dividends = stock.dividends
if len(dividends) > 0:
# Annual dividends
annual = dividends.resample('Y').sum()
print(f'📈 DIVIDEND GROWTH: {symbol}')
print('=' * 50)
# Last 5 years
recent = annual.tail(6)
for date, div in recent.items():
print(f'{date.year}: \${div:.2f}')
# Calculate CAGR
if len(recent) >= 2:
start_div = recent.iloc[0]
end_div = recent.iloc[-1]
years = len(recent) - 1
cagr = ((end_div / start_div) ** (1/years) - 1) * 100
print()
print(f'5-Year CAGR: {cagr:.1f}%')
# Project future
current_annual = end_div
print()
print('📊 Projected (assuming same growth):')
for y in range(1, 6):
projected = current_annual * ((1 + cagr/100) ** y)
print(f' Year {y}: \${projected:.2f}')
"
python3 -c "
from datetime import datetime, timedelta
# Portfolio with dividend schedules
portfolio = [
{'symbol': 'AAPL', 'shares': 50, 'div_quarterly': 0.24, 'months': [2, 5, 8, 11]},
{'symbol': 'MSFT', 'shares': 30, 'div_quarterly': 0.75, 'months': [3, 6, 9, 12]},
{'symbol': 'O', 'shares': 75, 'div_monthly': 0.256, 'months': list(range(1, 13))}, # Monthly
{'symbol': 'KO', 'shares': 100, 'div_quarterly': 0.46, 'months': [4, 7, 10, 1]},
]
print('📅 12-MONTH DIVIDEND FORECAST')
print('=' * 60)
monthly_income = {m: 0 for m in range(1, 13)}
for p in portfolio:
if 'div_monthly' in p:
for m in p['months']:
monthly_income[m] += p['shares'] * p['div_monthly']
elif 'div_quarterly' in p:
for m in p['months']:
monthly_income[m] += p['shares'] * p['div_quarterly']
current_month = datetime.now().month
for month in range(1, 13):
month_name = datetime(2026, month, 1).strftime('%B')
income = monthly_income[month]
bar = '█' * int(income / 10)
marker = ' ◄── Current' if month == current_month else ''
print(f'{month_name:10} €{income:>8.2f} {bar}{marker}')
total = sum(monthly_income.values())
print()
print(f'Annual Total: €{total:,.2f}')
print(f'Monthly Avg: €{total/12:,.2f}')
"
python3 -c "
import json
import os
from datetime import datetime
print('🤖 DIVIDEND MANAGER AUTO-PILOT')
print('=' * 50)
print(f'Running: {datetime.now().isoformat()}')
print()
# Auto-pilot tasks:
tasks = [
('📥 Check for new dividend payments', 'check_payments'),
('💰 Process DRIP reinvestments', 'process_drip'),
('📅 Update dividend calendar', 'update_calendar'),
('📊 Recalculate yield metrics', 'calc_metrics'),
('🔔 Send upcoming ex-date alerts', 'send_alerts'),
]
for task, func in tasks:
print(f'{task}...')
# Execute task
print(f' ✅ Done')
print()
print('Next run: Tomorrow 09:00')
"
| Mode | Description |
|---|---|
same_stock | Reinvest in same stock |
diversify | Spread across underweight positions |
accumulate_cash | Save for manual allocation |
highest_yield | Buy highest yielding stock |
Stocks with 25+ years of dividend increases: