Files
trade-kuns/docs/specs/2026-06-12-trump-copy-strategy-design.md

6.0 KiB
Raw Blame History

trade-kuns — Trump-Copy-Strategie (Design)

Datum: 2026-06-12 Status: Entwurf — Umsetzung in zwei Phasen: (1) Event-Backfill + Event-Study light, (2) dritte Paper-Engine Hypothese: Öffentlich sichtbare „Trump kauft"-Ereignisse (on-chain Wallet-Käufe, Coin-Erwähnungen auf Truth Social) erzeugen kurzfristigen Kaufdruck. Nachkaufen + fixe Haltedauer (~23 Tage) + Market-Sell fängt den Move ein. Kein Walk-Forward-Gate (zu wenig Events für Statistik), aber Event-Study vor Paper-Lauf — bewusste User-Entscheidung 2026-06-12, analog zum GridBot-Probelauf.

1. Signalquellen (beide ohne Account, am 2026-06-12 verifiziert)

On-chain (Quelle onchain, hartes Kauf-Signal):

  • Kuratierte Watchlist Trump-assoziierter Ethereum-Wallets (World Liberty Financial etc.) in src/server/signals/watchlist.ts. Aufnahme-Kriterium: öffentlich dokumentierte Attribution (Etherscan/Arkham-Label oder Presse mit Tx-Beleg); jede Adresse mit Quellen-Kommentar. Befüllung ist Implementierungs-Recherche.
  • Erkennung: eth_getLogs (ERC-20 Transfer, to ∈ Watchlist) über öffentlichen RPC — primär ethereum-rpc.publicnode.com, Fallback-Liste in Config. Block-Cursor in DB, Chunks à max. 5 000 Blöcke (Limit öffentlicher RPCs).
  • Spam-Schutz: Jeder kann beliebige Tokens an die Wallets senden. Nur Tokens aus dem kuratierten Mapping (§2) zählen, zusätzlich Mindest-Notional 50 000 USD (Menge × letzter 4h-Close des gemappten Instruments).

Truth Social (Quelle truth, weiches Hype-Signal):

  • RSS-Feed https://trumpstruth.org/feed (Archiv-Mirror, 100 neueste Posts, live). Polling im 5-min-Loop mit If-Modified-Since.
  • Signal: Post-Text matcht Ticker oder Coin-Name aus dem Mapping (case-insensitive, Wortgrenzen; „Bitcoin"/„BTC", „Ethereum"/„ETH" …). Kein Sentiment-NLP — Erwähnung = Event. Dedupe: max. ein Truth-Event je Coin pro 72 h.
  • Events tragen ihre Quelle, damit die Auswertung später onchain vs. truth getrennt beurteilen kann.

2. Token-Mapping (kuratierte Config)

token → Crypto.com-Instrument: WBTC→BTC_USDT · WETH/ETH→ETH_USDT · LINK→LINK_USDT · AAVE→AAVE_USDT · ONDO→ONDO_USDT · ENA→ENA_USDT · SUI→SUI_USDT · SEI→SEI_USDT · XRP→XRP_USDT · SOL→SOL_USDT. Nicht handelbar (z. B. TRX, MOVE — kein USDT-Paar, verifiziert 2026-06-12): Event wird mit instrument = null persistiert (Auswertung), erzeugt aber keinen Trade. Erwähnungs-Keywords je Token stehen am Mapping-Eintrag.

3. Datenmodell

Tabelle trump_events: id · source (onchain|truth) · token · instrument (nullable) · event_ts · ref (Tx-Hash bzw. Post-URL) · notional_usd (nullable, nur onchain) · consumed_at (nullable) · created_at. Unique (source, ref, token) — Idempotenz bei Restart/Re-Scan. Poller-Cursor (letzter gescannter Block, letzter RSS-Timestamp) in bot_state id=3-State.

4. Strategie (pur, src/server/strategy/trump.ts)

  • Entry: Unverbrauchtes Event mit handelbarem Instrument, event_ts ≤ aktuelle 15m-Candle → Buy zum nächsten 15m-Open (+ Fee 0.1 % + 5 bps Slippage wie bestehende Engines). Sizing: 20 % des Engine-Equity je Position, max. 5 offene Positionen, max. 1 je Instrument. Event wird beim Verarbeiten als consumed markiert — auch wenn kein Slot/Instrument belegt war (verfällt, kein Nachholen; deterministisch).
  • Exit: Zeit-Exit nach holdHours (Default 60 h; finaler Wert kommt aus der Event-Study §6) zum ersten 15m-Close ≥ Entry + holdHours. Kein Stop, kein Take-Profit — konsequent „kaufen, halten, verkaufen".
  • Startkapital 10 000 USDT (paper), getrennt von Engine 1/2.

5. Integration (Ein-Code-Pfad wie bisher)

  • Dritte Engine: bot_state id=3, gleicher 5-min-Loop, cursor-idempotent. Zyklus: (a) Poller schreiben neue Events in trump_events, (b) process-cycle verarbeitet 15m-Candles + Events durch die pure Strategie. Poller-Fehler (RPC/RSS down, Timeout) sind non-fatal: loggen, nächster Zyklus versucht erneut — Events gehen dank Block-Cursor/Dedupe nicht verloren.
  • Backtest-Runner src/server/backtest/trump.ts replayed historische Events + Candles durch dieselben puren Funktionen; Paritätstest Live ↔ Backtest wie bei den anderen Engines.
  • Candle-Backfill für neue Instrumente (LINK, AAVE, ONDO, ENA, SUI, SEI) über bestehenden backfill-Pfad.
  • Dashboard: dritter Tab „Trump" — Event-Liste (Quelle, Coin, Zeit, Link auf Tx/Post) + Trades/Equity wie gehabt.

6. Phase 1: Backfill + Event-Study light (vor Paper-Start)

  • src/server/scripts/trump-backfill.ts: rekonstruiert on-chain Events historisch (getLogs in Chunks ab Wallet-Erstellung); Truth-Historie best effort über trumpstruth-Archivseiten — Lücken sind akzeptiert und werden im Ergebnis ausgewiesen.
  • src/server/scripts/trump-event-study.ts: je Event Forward-Return nach 24/48/60/72/120 h (inkl. Fees/Slippage) gegen Baseline (gleicher Coin, gleicher Zeitraum, zufällige Entries). Getrennt nach Quelle. Ergebnis: docs/event-study-trump-<datum>.md.
  • Entscheidung danach: holdHours aus dem besten Horizont; ist der Mittelwert beider Quellen nach Kosten negativ, geht die Engine trotzdem als bewusster Paper-Probelauf live (User-Entscheidung), aber das Ergebnis steht im Doc.

7. Risiken

Öffentliche RPCs drosseln (→ Fallback-Liste, Chunking) · trumpstruth ist ein Dritt-Mirror und kann verschwinden (→ Quelle isoliert, Engine läuft mit onchain weiter) · wenige historische Events → Event-Study nur indikativ, der Paper-Lauf ist der eigentliche Test · Watchlist-Kuration ist manuell (neue Trump-Wallets werden nicht automatisch erkannt) · Hype-Signal kann strukturell zu spät sein (Markt reagiert in Minuten, wir auf 15m-Open — bewusst akzeptiert, misst die Study mit).

8. Tests

getLogs-Decoding + Watchlist-Filter + Min-Notional · RSS-Parsing + Keyword-Match (Wortgrenzen, kein „SEI" in „seitwärts") · Dedupe (unique ref, 72h-Fenster) · Entry am nächsten 15m-Open, Exit exakt nach holdHours · Slot-/Instrument-Limits · Event-Verfall ohne freien Slot · Paritätstest Live ↔ Backtest · Determinismus.