bald-eagle-strategy
BALD EAGLE v5.0 — XYZ Contrarian Fader (senpi_runtime_helpers). Counter- trades SM consensus on 6 high-liquidity XYZ macro assets (CL, BRENTOIL, GOLD, SILVER, SP500, XYZ100) when SM concentration is high AND the 4h move is exhausting. Plumbing-only migration from v4.1: producer pushes signals via SenpiClient.push_signal, runtime owns execution + daily caps + cooldowns + drawdown halt + DSL exits. Thesis preserved verbatim.
What this skill does
# BALD EAGLE v5.0.0 — XYZ Contrarian Fader
## v5.0.0 (2026-05-12) — plumbing-only migration
NO thesis change. v4.1 scoring, 6-asset universe, conviction-scaled
leverage (5x/7x), XYZ-tuned wide DSL, contrarian flip, spread gate,
600s stale-order auto-purge — all preserved verbatim. Migration:
mcporter → SenpiClient, scanner-side `create_position` → producer
`push_signal()` with LLM-gated runtime action, Python state files
for daily cap → `runtime.yaml risk.guard_rails`, MARKET exits →
FEE_OPTIMIZED_LIMIT, openclaw cron → `producer_daemon` (5min).
Bald Eagle is the only Senpi agent trading commodities, indices, and
equities on Hyperliquid. It fades retail/SM consensus on macro assets
when the move is exhausting — when oil is up 2%+ over 4h and SM is
piled in long, Bald Eagle shorts the exhaustion.
## Thesis
XYZ macro assets (oil, brent, gold, silver, SP500, XYZ100) on
Hyperliquid attract directional momentum traders who load up after a
clean 1-3% intraday move. By the time SM concentration crosses 10-20%
on a 4h-extended move, the trade is almost always exhausted —
mean reversion is the positive-edge play.
Bald Eagle scans the 6 deepest XYZ markets every 5 minutes. When SM
is concentrated (≥3%, ≥5 traders), and the 4h move is in the SM
direction, and contribution velocity confirms SM is still piling in,
Bald Eagle pushes a signal in the OPPOSITE direction. Wide DSL
(360-480min hard timeout, 12% retrace) gives commodities time to
mean-revert.
## Tracked assets
| Token | Surface | Why |
|---|---|---|
| CL | xyz | Crude oil — deepest SM signal (181 traders) |
| BRENTOIL | xyz | Brent crude — 166 traders |
| GOLD | xyz | 26 traders, slow but real |
| SILVER | xyz | 42 traders |
| SP500 | xyz | S&P 500 — 35 traders |
| XYZ100 | xyz | Nasdaq-100 — 50 traders |
XYZ macro assets trade 24/7 on Hyperliquid (no market-hours gating).
Oil is especially active during geopolitical risk windows.
## Pipeline
```
1. fetch SM data from leaderboard_get_markets (xyz dex only)
2. for each token in TRACKED_XYZ:
- skip if held / on cooldown
- score using all contributors (SM concentration, trader depth,
contribution velocity 1h/4h, 4h price alignment, 4h move
exhaustion, 1h momentum, 4h trend structure, volume trend,
funding alignment)
- if score >= 8, check spread (hard gate, <0.1%)
- if pass: flip direction (contrarian)
3. push best candidate via SenpiClient.push_signal
4. runtime LLM gate (EAGLE_DECISION_MODEL) honors signal, opens
FEE_OPTIMIZED_LIMIT MAKER position with conviction-tiered leverage
5. DSL manages exit (RatchetStop tiers + Phase 1 retrace 12%)
```
## Scoring (v4.1 preserved verbatim)
| Signal | Points |
|---|---|
| SM concentration ≥20% | +4 |
| SM concentration ≥10% | +3 |
| SM concentration ≥5% | +2 |
| SM concentration ≥3% | +1 |
| Trader depth ≥100 | +2 |
| Trader depth ≥30 | +1 |
| Contribution surge 1h (>5%) | +2 |
| Contribution rising 1h (>2%) | +1 |
| Contribution sustained 4h | +1 |
| 4H price aligned (≥0.5% SM direction) | +2 |
| 4H price positive in SM direction | +1 |
| 4H price opposing | -1 |
| DEEP_EXHAUSTION (4h ≥2% in SM direction) | +2 |
| EXHAUSTION (4h ≥1% in SM direction) | +1 |
| 4H trend structure aligned | +2 |
| 4H trend opposing | -1 |
| 1H momentum aligned | +1 |
| Volume rising | +1 |
| Funding aligned | +1 |
**MIN_SCORE 8.** Max plausible ~20. The spread gate (<0.1%) remains
the only hard gate — it's an execution-quality filter, not thesis.
## Leverage (conviction-scaled, XYZ caps)
| Score | Leverage |
|---|---|
| 8-9 | 5x |
| 10+ | 7x |
XYZ caps lower than crypto (no 10x). Macro reversals need room to
develop — high leverage punishes the wait.
## DSL — XYZ-tuned wide timings (preserved from v4.1)
| Setting | Value |
|---|---|
| `hard_timeout` | 480 min (8h) |
| `weak_peak_cut` | 240 min (4h), min 3.0% |
| `dead_weight_cut` | 120 min (2h) |
| `phase1.max_loss_pct` | 25% |
| `phase1.retrace_threshold` | 12% |
| `phase1.consecutive_breaches_required` | 1 (v2 single-breach) |
### Phase 2 RatchetStop ladder
| Trigger | Lock |
|---|---|
| +5% ROE | 0% |
| +10% | 20% |
| +20% | 35% |
| +30% | 50% |
| +50% | 70% |
| +75% | 85% |
Exits use FEE_OPTIMIZED_LIMIT with `ensure_execution_as_taker: true`
(60s) — exits must fill. Entries use MAKER (contrarian fades can wait).
## Key parameters
| Parameter | Value |
|---|---|
| Universe | 6 XYZ macro assets |
| Slots | 2 |
| Margin per slot | $250 |
| Margin per trade | 40% of equity |
| MIN_SCORE | 8 |
| Leverage | 5x / 7x (conviction-scaled) |
| Spread gate | <0.1% |
| Max entries/day | 4 |
| Daily loss limit | 10% |
| Per-asset cooldown | 360 min (6h) |
| Drawdown halt | 25% |
| Tick interval | 5 min |
| Entry order type | FEE_OPTIMIZED_LIMIT (MAKER) |
| Exit order type | FEE_OPTIMIZED_LIMIT (taker, 60s) |
## v4.1 hardening preserved
- `has_resting_orders()` with 600s stale-cancel auto-purge on both
default + xyz dex (reduce-only orders skipped; those are DSL legs)
- `dex="xyz"` propagated through every market_get_asset_data call
- XYZ-prefixed asset names ("xyz:CL") in coin field
## Files
| File | Purpose |
|---|---|
| `scripts/eagle-producer.py` | v5.0 helpers-native producer (5min daemon) |
| `scripts/eagle_config.py` | SenpiClient wrapper + state helpers |
| `config/bald-eagle-config.json` | Wallet, strategyId, chatId |
| `runtime.yaml` | Plugin runtime (position tracker + eagle_signals + eagle_entry + DSL exit) |
## Critical agent rules
1. **Install path** is `/data/workspace/skills/bald-eagle-strategy/`
2. **The producer DOES NOT enter positions** — it pushes signals;
runtime owns execution
3. **The producer DOES NOT exit positions** — DSL handles every exit
4. **Thesis is FADING, not following** — Bald Eagle trades OPPOSITE
to SM consensus by design
5. **Spread gate (<0.1%) is the only producer-side hard gate**
6. **6-asset universe is fixed** — adding tokens without verifying
SM depth (≥5 traders) is a thesis change
7. **Verify runtime on every session start**
## Changelog
### v5.0.0 (2026-05-12) — helpers-native migration
- Producer replaces scanner; `producer_daemon` replaces openclaw cron
- `SenpiClient.push_signal()` replaces inline `create_position`
- Runtime owns daily cap, drawdown halt, cooldowns (`risk.guard_rails`)
- Exits flipped MARKET → FEE_OPTIMIZED_LIMIT (taker, 60s)
- v2 DSL single-breach (`consecutive_breaches_required: 1`)
- fcntl reentrancy guard dropped (producer_daemon owns lock)
- Thesis, scoring, 6-asset universe, leverage tiers, DSL timings,
spread gate, has_resting_orders: PRESERVED VERBATIM
### v4.1 (2026-05-05)
- Added `has_resting_orders()` 600s stale-cancel guard
### v4.0 (2026-04-10)
- CONTRARIAN FLIP — fade SM consensus on XYZ macro assets
- Move-exhaustion bonus tuned for XYZ (1-2% bands)
- MIN_SCORE 8, leverage capped 7x
### v3.0 (2026-04-06)
- Focused 6-asset universe, conviction-scaled leverage, wide DSL
---
## Skill Attribution
When creating a strategy, include `skill_name` and `skill_version` in
the call. See `references/skill-attribution.md` for details.
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.