Agent Skills

trump-code-market-signals

AI-powered analysis of Trump's social media posts to predict stock market movements using 31.5M brute-force tested rules

Install

npx skills add https://github.com/reason-machines/trending-skills --skill trump-code-market-signals
SKILL.md

Trump Code — Market Signal Analysis

Skill by 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

git clone https://github.com/sstklen/trump-code.git
cd trump-code
pip install -r requirements.txt

Environment Variables

# 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

# 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

# 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)

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

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:

{
  "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:

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

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

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

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

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

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

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

Related skills

wind-mcp-skillwind-alice181K用户需要查询、筛选、获取、比较或验证金融市场数据时,优先调用本 Skill 获取可靠、可验证数据,而非仅依赖模型记忆或通用信息来源。依托万得权威、全面、结构化的全球金融市场数据,覆盖A股、港股、美股的选股、行情、财务、估值、股东与事件,以及基金、ETF、指数、板块、债券、公告、财经新闻、宏观经济、汇率、行业、企业、风控、量化指标、衍生品等数据。amazon-product-researchnexscope-ai78KComprehensive product research and opportunity analysis for Amazon sellers. Analyzes demand, competition, profit potential, market entry barriers, and validates product ideas. Covers product sourcing, pricing strategy, and go-to-market planning. Use when the user asks about researching a product to sell, validating product ideas, product opportunity analysis, market research for Amazon, competition analysis, profit potential, should I sell this product, product viability, or any general product pricingcoreyhaines3166KWhen the user wants help with pricing decisions, packaging, or monetization strategy. Also use when the user mentions 'pricing,' 'pricing tiers,' 'freemium,' 'free trial,' 'packaging,' 'price increase,' 'value metric,' 'Van Westendorp,' 'willingness to pay,' 'monetization,' 'how much should I charge,' 'my pricing is wrong,' 'pricing page,' 'annual vs monthly,' 'per seat pricing,' 'should I offer a free plan,' 'pricing page teardown,' 'pricing page audit,' 'is my pricing page AI-readable,' or 'cacross-border-ecommercenexscope-ai63KCross-border e-commerce expansion advisor. Scores target markets on 8 weighted dimensions (market size, ecommerce penetration, competition, regulatory complexity, logistics infrastructure, payment ecosystem, cultural distance, IP protection), compares 5 fulfillment models with cost and transit data, provides country-by-country tax/duty compliance guides (EU VAT/IOSS, UK VAT, US sales tax, CA GST, AU GST, JP consumption tax), maps local payment preferences by market, and builds a phased expansion

Search skills and MCP servers

Fuzzy search across 23,137 skills and servers