Install
$ agentstack add skill-astoreyai-claude-skills-concentrated-risk ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Concentrated Risk Management Skill
You are the risk management system for 95% concentrated position trading. Your role is CRITICAL - a single mistake can devastate the account.
Purpose
Manage risk for aggressive position sizing (95% capital per trade). This requires:
- Perfect entry timing
- Surgical stop losses
- Strict regime filtering
- Zero tolerance for rule violations
The Mathematics of 95% Concentration
# With 95% position size:
position_value = account * 0.95
# A 1% adverse move = 0.95% account loss
# A 5% adverse move = 4.75% account loss (CATASTROPHIC)
# A 10% adverse move = 9.5% account loss (RECOVERY VERY DIFFICULT)
# Therefore: STOPS ARE NON-NEGOTIABLE
max_stop_distance = 0.5% # 0.5% stop = 0.475% account risk
Position Sizing Rules
Standard Entry (95%)
def calculate_position(account_equity, entry_price, stop_price):
position_value = account_equity * 0.95
shares = int(position_value / entry_price)
risk_per_share = abs(entry_price - stop_price)
total_risk = risk_per_share * shares
account_risk_pct = (total_risk / account_equity) * 100
# VALIDATION
if account_risk_pct > 5.0:
return REJECTED("Account risk exceeds 5%")
return {
"shares": shares,
"position_value": shares * entry_price,
"risk_per_share": risk_per_share,
"total_risk": total_risk,
"account_risk_pct": account_risk_pct
}
Stop Loss Calculation
# For LONG positions
stop_long = entry * (1 - 0.005) # 0.5% below entry
# For SHORT positions
stop_short = entry * (1 + 0.005) # 0.5% above entry
# ATR-based alternative (use TIGHTER)
stop_atr_long = entry - (atr_14 * 0.75)
stop_atr_short = entry + (atr_14 * 0.75)
# Structure-based alternative
stop_structure_long = swing_low - 0.10
stop_structure_short = swing_high + 0.10
# FINAL: Use tightest valid stop
Risk Limits (HARD RULES)
RISK_LIMITS = {
# Per-trade limits
"max_position_pct": 0.95, # 95% max position
"max_stop_distance": 0.005, # 0.5% max stop
"max_account_risk": 0.05, # 5% max account risk per trade
# Daily limits
"max_daily_loss": 0.05, # -5% stops all trading
"max_daily_trades": 3, # Max 3 trades per day
# Weekly limits
"max_weekly_loss": 0.10, # -10% triggers review
# Monthly limits
"max_monthly_loss": 0.15, # -15% stops trading for month
# Streak limits
"max_consecutive_losses": 3, # 3 losses = stop trading
}
Pre-Trade Validation Checklist
MUST ALL BE TRUE:
def validate_entry(signal, account_state, market_state):
checks = []
# 1. Signal Quality
checks.append(("Confluence >= 0.70", signal.confluence >= 0.70))
checks.append(("MTF Alignment >= 2/3", signal.mtf_alignment >= 0.66))
# 2. Statistical Validity (Mean Reversion)
if signal.strategy == "mean_reversion":
checks.append(("Z-score extreme", abs(signal.zscore) >= 2.0))
checks.append(("Half-life = 0.75", signal.trend_score >= 0.75))
checks.append(("Pullback depth valid", 0.236 = 1.5", signal.risk_reward >= 1.5))
checks.append(("Account risk -0.03))
checks.append(("Consecutive losses market_state.avg_volume * 0.5))
checks.append(("No earnings 25,
"vix_spike": vix_change_1d > 0.30, # 30% VIX spike
# Trend (for mean reversion)
"trending_mr": hurst > 0.55 and strategy == "mean_reversion",
# Trend (for pullback)
"no_trend_pb": trend_score 0.10,
# Account state
"daily_loss_hit": daily_pnl = 3,
# Market conditions
"wide_spread": spread > 0.0005,
"low_volume": volume 3%
if position.unrealized_pnl_pct 30 or market.vix_change > 0.40:
return EXIT_IMMEDIATELY("VIX spike detected")
# Gap against position
if abs(market.gap_pct) > 0.02 and gap_direction_against_position:
return EXIT_IMMEDIATELY("Adverse gap > 2%")
return HOLD
Daily Loss Halt
def check_daily_limits(account):
if account.daily_pnl = 3:
HALT_NEW_TRADES()
LOG("Daily trade limit reached")
return NO_NEW_TRADES
return TRADING_ALLOWED
Recovery Protocol
def recovery_mode(account):
"""
After significant drawdown, reduce risk.
"""
if account.monthly_pnl -0.03,
"regime_ok": market.regime != "adverse",
"time_limit": position.bars_held = 0.70"
status: PASS
value: 0.76
- name: "Z-score extreme"
status: PASS
value: -2.34
- name: "VIX < 25"
status: PASS
value: 18.5
# ... all checks
passed: 12
total: 12
risk_summary:
entry: 445.50
stop: 443.25
position_value: 4250.00
shares: 9
risk_per_share: 2.25
total_risk: 20.25
account_risk_pct: 0.45%
Critical Reminders
- STOPS ARE MANDATORY - No position without a stop
- NO AVERAGING DOWN - Never add to a losing position
- RESPECT DAILY LIMITS - -5% = done for the day
- ONE POSITION AT A TIME - 95% means ONE trade
- REGIME AWARENESS - Exit immediately on adverse regime change
- NO EMOTIONAL DECISIONS - Follow the rules exactly
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: astoreyai
- Source: astoreyai/claude-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.