SKILL: signal — Scalping-Signale M3/M5 per KI-Debatte
1. TRIGGER & MODUS
| Trigger | Bedeutung |
|---|---|
signal-<pair> (z.B. signal-xauusd, signal-eurusd) | Generiert ein Signal für einen Pending Order auf M3/M5 |
signal-result win / signal-result lose [Grund] | Benutzer meldet Ergebnis des letzten Signals → wird in der Erfolgsbilanz festgehalten |
<pair>= lokales MT5-Symbol. Auflösung mit~/.local/share/mt5-venv/bin/python scripts/mt5_query.py symbols <query>. Falls nicht vorhanden, nächstgelegene Kandidaten anzeigen, nicht erfinden.- Bei eindeutigem Pair nicht nachfragen. Nicht hetzen — 3-5 Gesprächsrunden sind normal, Qualität > Geschwindigkeit.
2. HARTE TRADING-REGELN (vom RICHTER geprüft, nicht vom Analysten)
- Order-Typ: Nur BUY/SELL LIMIT oder STOP (Pending Order auf technischen Levels). Market Order nur erlaubt, wenn beide Analysten zustimmen, dass der Preis exakt auf dem Level liegt und dies explizit vermerkt wird.
- Maximaler SL $3 pro Signal (Lot 0,01) — NICHT starre 300 Punkte.
Automatische Umrechnung pro Paar aus dem
risk-Block der Ausgabe vonmt5_query.py scalp:sl_max_points = risk.sl_max_points(XAUUSD ≈ 300 Punkte = $3; andere Paare automatisch anders). Ein SL-Vorschlag eines Analysten, der darüber liegt = wird vom RICHTER ABGELEHNT und zur Korrektur zurückgeschickt. - TP = RR 1:1,5 oder 1:2 der SL-Distanz. Eines auswählen, RR angeben.
- Analyse-Zeitrahmen: M3 + M5 (Haupt) + H1 (grober Trendüberblick).
- Fairer Spread: Falls Spread > ~20% der vorgeschlagenen SL-Distanz, muss der Analyst dies hervorheben (Limit-Einstieg bei großem Spread sicherer).
3. DATEN (nur lokales MT5 — KEIN Web/Websearch, für Geschwindigkeit)
Einzelner Befehl:
~/.local/share/mt5-venv/bin/python ~/.config/opencode/skills/signal/scripts/mt5_query.py scalp <SYMBOL>
JSON-Ausgabe: bid/ask, spread, risk (usd/point, sl_max_points), daily change, M3/M5/H1 (ATR14, EMA20/50, Trend, S/R, Range, letzter Candlestick + Kerzenrichtung). Diese Rohausgabe wird BEIDEN Analysten übergeben. Das Erfinden von MT5-Daten ist verboten.
Zeitzone: Uhrzeit in WIB + Serverzeit MT5 (UTC+3) in Klammern angeben, z.B. 21:45 WIB (17:45 Server). WIB = Server + 4 Stunden.
4. LERNEN AUS DER ERFOLGSBILANZ (VERPFLICHTEND VOR DER DEBATTE)
- Vor Runde 1 ruft der Richter die Erfolgsbilanz ab:
rclone cat gdrive:Linux-Server/signals/track-record.md(falls 404/nicht gefunden = noch leer, ohne Historie fortfahren — dies melden). - Muster der letzten Ergebnisse zusammenfassen (z.B. „Die letzten 5 Verluste waren alle Sell-Limits im Abwärtstrend“) und BEIDEN Analysten als Lernkontext übergeben: Gewinnmuster dürfen wiederholt werden, Verlustmuster müssen vermieden oder vom Analysten begründet werden, warum diesmal anders.
- Signal wird gespeichert unter
gdrive:Linux-Server/signals/<YYYYMMDD>-<pair>/signal.mdmit StatusPENDING(siehe §7).
5. DEBATTE (2 Analysten + 1 Richter, 3-5 Gesprächsrunden)
Rollen & Modelle (Tool subagent, Agent general, Parameter model explizit):
| Rolle | Modell | Aufgabe |
|---|---|---|
| Analyst 1 — Technischer Einstieg | opencode/step-5-preview-free | M3/M5-Struktur, Order-Typ (limit/stop), Einstieg, SL, TP, Timing |
| Analyst 2 — Risikomanager | opencode/nemotron-3.5-lightning-free | Validierung von SL/TP, R:R, Level-Fallen (Stop-Hunt, Spread, Sitzung), Position Sizing |
| Richter = Haupt-Agent, Modell = DAS LAUFENDE MODELL (dynamisch) | — | Neutral: Orchestrierung, Datenübermittlung, Prüfung harter Regeln (§2), Stimmenauszählung, Ausgabe. Darf KEINE Marktanalyse/-meinung abgeben. Richter = das KI-Modell, das die aktuelle Sitzung ausführt — beliebiger Anbieter; nicht immer custom/auto annehmen. Bei der Ausgabe das eigene Modell prüfen und den echten Namen nennen. |
Ablauf:
- Runde 1 (unabhängig): MT5-Daten + Zusammenfassung der Erfolgsbilanz an beide Analysten senden. Jeder schlägt vor: Richtung, Order-Typ, Einstieg, SL (Punkte & $), TP (RR), Konfidenz %, Grund.
- Debattenrunden (1-3 Runden): Hin- und her Text. Darf neue MT5-Daten anfordern (
scalperneut aufrufen — Kurs bewegt sich). Fokus auf echte Meinungsverschiedenheiten: Level, Order-Typ, Gültigkeit des SL. - Endposition: Jeder gibt seine endgültige Position bekannt.
- Abstimmung: Beide Analysten stimmen zu → Signal gültig. Unterschiedliche Meinung = KEIN TRADE (offizielle Ausgabe: kein Signal + kurze Begründung). Das ist ein legitimes und normales Ergebnis, nicht erzwingen.
Fallback-Modelle bei Rate-Limit (Reihenfolge Tier 1): opencode/longcat-2.5-preview-free → opencode/space-bunny-free → opencode/cat-jam-free; Tier 2 max. 1 Analyst: 9roy/9router_combo; Tier 3: custom/auto („Babbl“) — nur wenn der Richter NICHT custom/auto ist (ein Modell darf nicht beide Rollen spielen). Nicht 2 Analysten vom gleichen Anbieter, wenn es Alternativen gibt. Maximal 2 Wiederholungen bei Fehlern; wenn beide Analysten komplett ausfallen = melden und stoppen.
6. BUDGET
Einfache Berechnung: 1 Analystenaufruf = 3, Wiederholung/Fallback = 1, Tool-Aufruf Richter = 1. Ziel insgesamt 12-27 (2-3 Analystenaufrufe × ~3 Runden + Tool). In der Ausgabe notieren: Budget: X/27 (Methode: gewichtetes Signal).
Nicht über 27 — 3-5 Gesprächsrunden reichen, danach stoppen und Ausgabe erstellen.
7. AUSGABE & SPEICHERUNG (rclone, keine lokalen Dateien)
a) Signal (falls gültig)
Antwortformat an den Benutzer (zuerst Zusammenfassung der Debatte, Ergebnis ganz unten):
- Zusammenfassung der Debatte: anfängliche Vorschläge, strittige Punkte (mit kurzen Zitaten), Abstimmungsergebnis + verwendete KI-Modelle pro Rolle.
- Dann GANZ UNTEN der Signalblock:
🔔 SIGNAL <PAIR> — <BUY/SELL> <LIMIT/STOP>
Einstieg: <Preis> | SL: <Preis> (<X> Punkte = $<Y>, max. $3)
TP: <Preis> (RR 1:<r>) | Konfidenz: <Z>%
Grund: <1-2 Sätze in menschlicher Sprache — warum dieses Level & diese Richtung, aus der Debatte>
Gültig bis: <Hinweis zum Timing/Verfall, z.B. ungültig, wenn Preis Level bereits überschritten>
- Speichern via
rclone rcat gdrive:Linux-Server/signals/<YYYYMMDD>-<PAIR>/signal.mdmit: Datum, Pair, vollständiges Signal, Argumente beider Analysten, Abstimmung, Modelle, Budget, Status:PENDING.
b) Kein Trade (unterschiedliche Abstimmung / ungültige Daten)
Ausgabe: „🚫 KEIN TRADE — <kurze Begründung aus der Debatte>“, im gleichen Ordner speichern mit Status NO-TRADE.
c) Befehl signal-result win|lose [Grund]
- Letztes
PENDING-Signal suchen:rclone lsf gdrive:Linux-Server/signals/ --dirs-only | sort | tail→signal.mdviarclone catauslesen. Falls kein PENDING vorhanden, Benutzer fragen, welches Signal gemeint ist (Rückfrage in diesem Modus erlaubt). signal.mdauf Drive aktualisieren: Status →WIN/LOSE, Zeile mit Ergebnis + Benutzergrund + Schließungsdatum hinzufügen.- An die Erfolgsbilanz
gdrive:Linux-Server/signals/track-record.mdanhängen (falls nicht vorhanden, neu erstellen) eine Zeile:YYYYMMDD | pair | Richtung+Typ | Einstieg | Ergebnis WIN/LOSE | Benutzergrund. - Kurze Antwort an Benutzer: Ergebnis aufgezeichnet + laufende Erfolgsstatistik (z.B.
XAUUSD: 4W-2L, Gewinnrate 67%— aus der Erfolgsbilanz berechnet).
d) Verfallene Signale
Wenn der Benutzer meldet, dass ein Signal nie den Einstieg erreicht hat (Preis vorbeigelaufen/umgekehrt), als LOSE mit Benutzergrund verbuchen (z.B. „Moment verpasst“) — das bleibt gültiges Lernmaterial.
8. VERBOTENE HANDLUNGEN
- Keine Websearch/Web-Fetch — Daten nur vom lokalen MT5.
- Keine erfundenen Preise/ATR/Level.
- Kein Signal bei extremem Spread oder geschlossenem Markt (tick_time veraltet) — Ausgabe KEIN TRADE.
- Kein SL über $3, kein TP außerhalb RR 1:1,5/1:2, keine Market Order ohne Zustimmung beider Analysten.
- Richter darf keine Marktrichtung bewerten.
- Richter darf keine Analyse/Meinung abgeben — selbst wenn das Richter-Modell intelligent ist, seine Rolle ist rein moderierend. Analyse bleibt Aufgabe der Analysten.