Datenfundament fuer die KI-Analyse (docs/konzepte/KONZEPT-Modul-Supervisor.md, Phase S-0). Sofortnutzen auch ohne KI: abfragbare Rejects, rekonstruierbare Order-Ketten. - core_decision_journal (DecisionRecord): JEDE Handelsentscheidung strukturiert - Decision (Executed/Rejected/Skipped/Failed) + ReasonCode-Enum (als String, erweiterbar) + Kontext-JSON (kulturinvariant) + MarketSlug/EndDate (counterfactual-ready). - core_order_events (OrderEventRecord): Order-Lifecycle als Daten (Placed/PlaceFailed/ LadderStart/LadderStep/FloorReplaced/DustAbort ...) inkl. CLOB-Response. - SignalId (GUID) auf CopySignal, durchgereicht bis ClosedTrade + Core-TradeRecord (Dual-Write) und in die Leiter (ExitLadderState.SignalId) -> Dossier-Korrelation. - CopyTradingEngine: ~20 Entscheidungs-Sites journalisieren zusaetzlich zum Freitext-Log (Mode/SellOnly/H3/MaxBuyPrice/PerMaster/TimeLimit/Budget/Balance/Minimum/SpamBlock/ Leiter/Ownership/NotFound/Teilverkauf/Inkonsistenz/Grace/Demo-Fill/-Close/Live-BUY). - SellLadderService: Order-Events fuer Start/Step/Floor-Replace/Dust; IOrderEventLog injiziert. - TerminalLogger: JSONL-Sink (eine Datei/Tag, LogJson pur) + CorrelationId-Support. Dual-Sink. - Journal-Writes fehlertolerant (brechen den Geld-Pfad nie). - Migrationen offline generiert UND angewendet (rein additiv): Core (Widen F1 + Journal), CopyTrading (SignalId), RF (Initial) - DB war bis AddMarketTakerFeeBps migriert, verifiziert. - Launcher-Designer: Account-Spalten-Instanziierung wiederhergestellt (war bei Designer- Reserialisierung verloren gegangen -> NullReference im Smoke). Tests: +5 (LogJson, Journal-Roundtrips, SignalId) + Journal-Assertions in Engine-Tests. Build 0 Fehler, 336 Tests gruen, --smoke-ui komplett gruen (alle Views inkl. RF gegen echte Tabellen). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
27 lines
1.1 KiB
C#
27 lines
1.1 KiB
C#
namespace PolyTraderSharp.Models
|
|
{
|
|
public class CopySignal
|
|
{
|
|
/// <summary>
|
|
/// Korrelations-ID (S-0, Supervisor-Konzept): verbindet dieses Signal mit allen daraus
|
|
/// entstehenden Entscheidungen (core_decision_journal), Orders (core_order_events) und
|
|
/// dem ClosedTrade. Wird bei Erzeugung automatisch vergeben.
|
|
/// </summary>
|
|
public string SignalId { get; set; } = Guid.NewGuid().ToString("N");
|
|
|
|
public int SourceTradeId { get; set; }
|
|
public int TraderId { get; set; }
|
|
public string MarketSlug { get; set; } = string.Empty;
|
|
public string ConditionId { get; set; } = string.Empty;
|
|
public string TokenId { get; set; } = string.Empty;
|
|
public string MarketQuestion { get; set; } = string.Empty;
|
|
public string Side { get; set; } = "BUY";
|
|
public decimal Price { get; set; }
|
|
public decimal Size { get; set; }
|
|
public string Outcome { get; set; } = string.Empty;
|
|
public DateTime Timestamp { get; set; }
|
|
public DateTime? EndDate { get; set; }
|
|
public string Reason { get; set; } = string.Empty;
|
|
}
|
|
}
|