技能详情(站内镜像,无评论)
许可证:MIT-0
MIT-0 ·免费使用、修改和重新分发。无需归因。
版本:v1.0.0
统计:⭐ 0 · 29 · 1 current installs · 1 all-time installs
⭐ 0
安装量(当前) 1
🛡 VirusTotal :可疑 · OpenClaw :可疑
Package:adisinghstudent/trump-code-market-signals
安全扫描(ClawHub)
- VirusTotal :可疑
- OpenClaw :可疑
OpenClaw 评估
The skill's instructions broadly match its stated purpose (analyzing posts and producing trading signals) but contain inconsistencies and a few risky requests—notably undeclared API keys and directions to modify other agent/tool config—which warrant caution before installation.
目的
The skill claims to analyze Trump's social posts to produce market signals; the SKILL.md shows exactly that workflow (data files, brute-force search, CLI commands, REST API). However the package metadata declares no required environment variables while the SKILL.md requires GEMINI_KEYS (and optionally ANTHROPIC_API_KEY, POLYMARKET_API_KEY). The mismatch between declared requirements and the actual runtime instructions is an incoherence.
说明范围
Instructions tell the user/agent to git-clone the repo, run Python scripts that read many local data files (data/*.json), poll social media every 5 minutes, call an external REST API (trumpcode.washinmura.jp) and expose a local chatbot on port 8888. Crucially, the SKILL.md also instructs adding an MCP server entry to ~/.claude/settings.json (modifying another tool's config). These steps go beyond a self-contained read-only skill and could alte…
安装机制
There is no formal install spec in the registry (instruction-only). The SKILL.md instructs cloning a GitHub repository (https://github.com/sstklen/trump-code.git) and pip installing requirements.txt. Using a public GitHub repo is a common install method, but because the registry scan has no install details, the actual code content was not reviewable by the scanner—this increases risk until the repo is inspected.
证书
The runtime docs require GEMINI_KEYS (comma-separated API keys) and optionally ANTHROPIC_API_KEY and POLYMARKET_API_KEY. Those credentials are plausible for AI briefing and market integration, but the registry metadata lists no required env vars — an inconsistency. Requesting multiple API keys is reasonable for features but is sensitive and should have been declared explicitly in metadata.
持久
The skill does not set always:true, but it explicitly instructs users to modify ~/.claude/settings.json to register an MCP server, which alters another agent/tool's configuration. Per the evaluation rules, modifying other skills' or tools' configs is a privileged action and should be treated as risky unless you explicitly trust the code; this elevates the blast radius of any hidden or malicious behavior in the repo.
安装(复制给龙虾 AI)
将下方整段复制到龙虾中文库对话中,由龙虾按 SKILL.md 完成安装。
请把本段交给龙虾中文库(龙虾 AI)执行:为本机安装 OpenClaw 技能「trump-code-market-signals」。简介:AI-powered analysis of Trump's social media posts to predict stock market movem…。
请 fetch 以下地址读取 SKILL.md 并按文档完成安装:https://raw.githubusercontent.com/openclaw/skills/refs/heads/main/skills/adisinghstudent/trump-code-market-signals/SKILL.md
(来源:yingzhi8.cn 技能库)
SKILL.md
---
name: trump-code-market-signals
description: AI-powered analysis of Trump's social media posts to predict stock market movements using 31.5M brute-force tested rules
triggers:
- analyze trump posts for market signals
- run trump code prediction
- check today's trading signals from trump
- decode trump truth social posts
- trump market signal analysis
- run overnight brute force model search
- check surviving trading rules
- trump code cli predict
---
# Trump Code — Market Signal Analysis
> Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection.
Trump Code is an open-source system that applies brute-force computation to find statistically significant patterns between Trump's Truth Social/X posting behavior and S&P 500 movements. It has tested 31.5M model combinations, maintains 551 surviving rules, and has a verified 61.3% hit rate across 566 predictions (z=5.39, p<0.05).
## Installation
```bash
git clone https://github.com/sstklen/trump-code.git
cd trump-code
pip install -r requirements.txt
```
### Environment Variables
```bash
# Required for AI briefing and chatbot
export GEMINI_KEYS="key1,key2,key3" # Comma-separated Gemini API keys
# Optional: for Claude Opus deep analysis
export ANTHROPIC_API_KEY="your-key-here"
# Optional: for Polymarket/Kalshi integration
export POLYMARKET_API_KEY="your-key-here"
```
## CLI — Key Commands
```bash
# Today's detected signals from Trump's posts
python3 trump_code_cli.py signals
# Model performance leaderboard (all 11 named models)
python3 trump_code_cli.py models
# Get LONG/SHORT consensus prediction
python3 trump_code_cli.py predict
# Prediction market arbitrage opportunities
python3 trump_code_cli.py arbitrage
# System health check (circuit breaker state)
python3 trump_code_cli.py health
# Full daily report (trilingual)
python3 trump_code_cli.py report
# Dump all data as JSON
python3 trump_code_cli.py json
```
## Core Scripts
```bash
# Real-time Trump post monitor (polls every 5 min)
python3 realtime_loop.py
# Brute-force model search (~25 min, tests millions of combos)
python3 overnight_search.py
# Individual analyses
python3 analysis_06_market.py # Posts vs S&P 500 correlation
python3 analysis_09_combo_score.py # Multi-signal combo scoring
# Web dashboard + AI chatbot on port 8888
export GEMINI_KEYS="key1,key2,key3"
python3 chatbot_server.py
# → http://localhost:8888
```
## REST API (Live at trumpcode.washinmura.jp)
```python
import requests
BASE = "https://trumpcode.washinmura.jp"
# All dashboard data in one call
data = requests.get(f"{BASE}/api/dashboard").json()
# Today's signals + 7-day history
signals = requests.get(f"{BASE}/api/signals").json()
# Model performance rankings
models = requests.get(f"{BASE}/api/models").json()
# Latest 20 Trump posts with signal tags
posts = requests.get(f"{BASE}/api/recent-posts").json()
# Live Polymarket Trump prediction markets (316+)
markets = requests.get(f"{BASE}/api/polymarket-trump").json()
# LONG/SHORT playbooks
playbook = requests.get(f"{BASE}/api/playbook").json()
# System health / circuit breaker state
status = requests.get(f"{BASE}/api/status").json()
```
### AI Chatbot API
```python
import requests
response = requests.post(
"https://trumpcode.washinmura.jp/api/chat",
json={"message": "What signals fired today and what's the consensus?"}
)
print(response.json()["reply"])
```
## MCP Server (Claude Code / Cursor Integration)
Add to `~/.claude/settings.json`:
```json
{
"mcpServers": {
"trump-code": {
"command": "python3",
"args": ["/path/to/trump-code/mcp_server.py"]
}
}
}
```
Available MCP tools: `signals`, `models`, `predict`, `arbitrage`, `health`, `events`, `dual_platform`, `crowd`, `full_report`
## Open Data Files
All data lives in `data/` and is updated daily:
```python
import json, pathlib
DATA = pathlib.Path("data")
# 44,000+ Truth Social posts
posts = json.loads((DATA / "trump_posts_all.json").read_text())
# Posts with signals pre-tagged
posts_lite = json.loads((DATA / "trump_posts_lite.json").read_text())
# 566 verified predictions with outcomes
predictions = json.loads((DATA / "predictions_log.json").read_text())
# 551 active rules (brute-force + evolved)
rules = json.loads((DATA / "surviving_rules.json").read_text())
# 384 features × 414 trading days
features = json.loads((DATA / "daily_features.json").read_text())
# S&P 500 OHLC history
market = json.loads((DATA / "market_SP500.json").read_text())
# Circuit breaker / system health
cb = json.loads((DATA / "circuit_breaker_state.json").read_text())
# Rule evolution log (crossover/mutation)
evo = json.loads((DATA / "evolution_log.json").read_text())
```
## Download Data via API
```python
import requests
BASE = "https://trumpcode.washinmura.jp"
# List available datasets
catalog = requests.get(f"{BASE}/api/data").json()
# Download a specific file
raw = requests.get(f"{BASE}/api/data/surviving_rules.json").content
rules = json.loads(raw)
```
## Real Code Examples
### Parse Today's Signals
```python
import requests
signals_data = requests.get("https://trumpcode.washinmura.jp/api/signals").json()
today = signals_data.get("today", {})
print("Signals fired today:", today.get("signals", []))
print("Consensus:", today.get("consensus")) # "LONG" / "SHORT" / "NEUTRAL"
print("Confidence:", today.get("confidence")) # 0.0–1.0
print("Active models:", today.get("active_models", []))
```
### Find Top Performing Rules from Surviving Rules
```python
import json
rules = json.loads(open("data/surviving_rules.json").read())
# Sort by hit rate descending
top_rules = sorted(rules, key=lambda r: r.get("hit_rate", 0), reverse=True)
for rule in top_rules[:10]:
print(f"Rule: {rule['id']} | Hit Rate: {rule['hit_rate']:.1%} | "
f"Trades: {rule['n_trades']} | Avg Return: {rule['avg_return']:.3%}")
```
### Check Prediction Market Opportunities
```python
import requests
arb = requests.get("https://trumpcode.washinmura.jp/api/insights").json()
markets = requests.get("https://trumpcode.washinmura.jp/api/polymarket-trump").json()
# Markets sorted by volume
active = [m for m in markets.get("markets", []) if m.get("active")]
by_volume = sorted(active, key=lambda m: m.get("volume", 0), reverse=True)
for m in by_volume[:5]:
print(f"{m['title']}: YES={m['yes_price']:.0%} | Vol=${m['volume']:,.0f}")
```
### Correlate Post Features with Returns
```python
import json
import numpy as np
features = json.loads(open("data/daily_features.json").read())
market = json.loads(open("data/market_SP500.json").read())
# Build date-indexed return map
returns = {d["date"]: d["close_pct"] for d in market}
# Example: correlate post_count with next-day return
xs, ys = [], []
for day in features:
date = day["date"]
if date in returns:
xs.append(day.get("post_count", 0))
ys.append(returns[date])
correlation = np.corrcoef(xs, ys)[0, 1]
print(f"Post count vs same-day return: r={correlation:.3f}")
```
### Run a Backtest on a Custom Signal
```python
import json
posts = json.loads(open("data/trump_posts_lite.json").read())
market = json.loads(open("data/market_SP500.json").read())
returns = {d["date"]: d["close_pct"] for d in market}
# Find days with RELIEF signal before 9:30 AM ET
relief_days = [
p["date"] for p in posts
if "RELIEF" in p.get("signals", []) and p.get("hour", 24) < 9
]
hits = [returns[d] for d in relief_days if d in returns]
if hits:
print(f"RELIEF pre-market: n={len(hits)}, "
f"avg={sum(hits)/len(hits):.3%}, "
f"hit_rate={sum(1 for h in hits if h > 0)/len(hits):.1%}")
```
## Key Signal Types
| Signal | Description | Typical Impact |
|--------|-------------|----------------|
| `RELIEF` pre-market | "Relief" language before 9:30 AM | Avg +1.12% same-day |
| `TARIFF` market hours | Tariff mention during trading | Avg -0.758% next day |
| `DEAL` | Deal/agreement language | 52.2% hit rate |
| `CHINA` (Truth Social only) | China mentions (never on X) | 1.5× weight boost |
| `SILENCE` | Zero-post day | 80% bullish, avg +0.409% |
| Burst → silence | Rapid posting then goes quiet | 65.3% LONG signal |
## Model Reference
| Model | Strategy | Hit Rate | Avg Return |
|-------|----------|----------|------------|
| A3 | Pre-market RELIEF → surge | 72.7% | +1.206% |
| D3 | Volume spike → panic bottom | 70.2% | +0.306% |
| D2 | Signature switch → formal statement | 70.0% | +0.472% |
| C1 | Burst → long silence → LONG | 65.3% | +0.145% |
| C3 ⚠️ | Late-night tariff (anti-indicator) | 37.5% | −0.414% |
> **Note:** C3 is an anti-indicator — if it fires, the circuit breaker auto-inverts it to LONG (62% accuracy after inversion).
## System Architecture Flow
```
Truth Social post detected (every 5 min)
→ Classify signals (RELIEF / TARIFF / DEAL / CHINA / etc.)
→ Dual-platform boost (TS-only China = 1.5× weight)
→ Snapshot Polymarket + S&P 500
→ Run 551 surviving rules → generate prediction
→ Track at 1h / 3h / 6h
→ Verify outcome → update rule weights
→ Circuit breaker: if system degrades → pause/invert
→ Daily: evolve rules (crossover / mutation / distillation)
→ Sync data to GitHub
```
## Troubleshooting
**`realtime_loop.py` not detecting new posts**
- Check your network access to Truth Social scraper endpoints
- Verify `data/trump_posts_all.json` timestamp is recent
- Run `python3 trump_code_cli.py health` to see circuit breaker state
**`chatbot_server.py` fails to start**
- Ensure `GEMINI_KEYS` env var is set: `export GEMINI_KEYS="key1,key2"`
- Port 8888 may be in use: `lsof -i :8888`
**`overnight_search.py` runs out of memory**
- Runs ~31.5M combinations — needs ~4GB RAM
- Run on a machine with 8GB+ or reduce search space in script config
**Hit rate dropping below 55%**
- Check `data/circuit_breaker_state.json` — system may have auto-paused
- Review `data/learning_report.json` for demoted rules
- Re-run `overnight_search.py` to refresh surviving rules
**Stale data in `data/` directory**
- Daily pipeline syncs to GitHub automatically if running
- Manually trigger: `python3 trump_code_cli.py report` to force refresh
- Or pull latest from remote: `git pull origin main`