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>
332 lines
14 KiB
C#
332 lines
14 KiB
C#
namespace PolyTraderSharp.Ui
|
|
{
|
|
partial class LauncherForm
|
|
{
|
|
private System.ComponentModel.IContainer components = null;
|
|
|
|
protected override void Dispose(bool disposing)
|
|
{
|
|
if (disposing && (components != null))
|
|
{
|
|
components.Dispose();
|
|
}
|
|
base.Dispose(disposing);
|
|
}
|
|
|
|
#region Vom Komponenten-Designer generierter Code
|
|
|
|
private void InitializeComponent()
|
|
{
|
|
menuStrip = new MenuStrip();
|
|
miDatei = new ToolStripMenuItem();
|
|
miBeenden = new ToolStripMenuItem();
|
|
toolstrip_windows = new ToolStrip();
|
|
btn_dashboard = new ToolStripButton();
|
|
btn_settings = new ToolStripButton();
|
|
btn_terminal = new ToolStripButton();
|
|
btn_jobs = new ToolStripButton();
|
|
btn_accounting = new ToolStripButton();
|
|
toolStripSeparator1 = new ToolStripSeparator();
|
|
toolstrip_quickbar = new ToolStrip();
|
|
btn_liveTrading = new ToolStripButton();
|
|
btn_demoTrading = new ToolStripButton();
|
|
statusStrip_info = new StatusStrip();
|
|
lbl_trading = new ToolStripStatusLabel();
|
|
lbl_modules = new ToolStripStatusLabel();
|
|
lbl_ratelimit = new ToolStripStatusLabel();
|
|
dgv_accountlist = new DataGridView();
|
|
colAccName = new DataGridViewTextBoxColumn();
|
|
colAccModules = new DataGridViewTextBoxColumn();
|
|
colAccPoly = new DataGridViewButtonColumn();
|
|
colAccBalance = new DataGridViewTextBoxColumn();
|
|
colAccPnl3d = new DataGridViewTextBoxColumn();
|
|
colAccWin3d = new DataGridViewTextBoxColumn();
|
|
colAccOverall = new DataGridViewTextBoxColumn();
|
|
menuStrip.SuspendLayout();
|
|
toolstrip_windows.SuspendLayout();
|
|
toolstrip_quickbar.SuspendLayout();
|
|
statusStrip_info.SuspendLayout();
|
|
((System.ComponentModel.ISupportInitialize)dgv_accountlist).BeginInit();
|
|
SuspendLayout();
|
|
//
|
|
// menuStrip
|
|
//
|
|
menuStrip.ImageScalingSize = new Size(24, 24);
|
|
menuStrip.Items.AddRange(new ToolStripItem[] { miDatei });
|
|
menuStrip.Location = new Point(0, 0);
|
|
menuStrip.Name = "menuStrip";
|
|
menuStrip.Padding = new Padding(9, 3, 0, 3);
|
|
menuStrip.Size = new Size(2599, 35);
|
|
menuStrip.TabIndex = 0;
|
|
//
|
|
// miDatei
|
|
//
|
|
miDatei.DropDownItems.AddRange(new ToolStripItem[] { miBeenden });
|
|
miDatei.Name = "miDatei";
|
|
miDatei.Size = new Size(69, 29);
|
|
miDatei.Text = "Datei";
|
|
//
|
|
// miBeenden
|
|
//
|
|
miBeenden.Name = "miBeenden";
|
|
miBeenden.Size = new Size(182, 34);
|
|
miBeenden.Text = "Beenden";
|
|
//
|
|
// toolstrip_windows
|
|
//
|
|
toolstrip_windows.AutoSize = false;
|
|
toolstrip_windows.ImageScalingSize = new Size(64, 64);
|
|
toolstrip_windows.Items.AddRange(new ToolStripItem[] { btn_dashboard, btn_settings, btn_terminal, btn_jobs, btn_accounting, toolStripSeparator1 });
|
|
toolstrip_windows.Location = new Point(0, 35);
|
|
toolstrip_windows.Name = "toolstrip_windows";
|
|
toolstrip_windows.Size = new Size(2599, 70);
|
|
toolstrip_windows.TabIndex = 3;
|
|
toolstrip_windows.Text = "toolStrip1";
|
|
//
|
|
// btn_dashboard
|
|
//
|
|
btn_dashboard.Image = Properties.Resources.dashboard;
|
|
btn_dashboard.ImageScaling = ToolStripItemImageScaling.None;
|
|
btn_dashboard.Name = "btn_dashboard";
|
|
btn_dashboard.Overflow = ToolStripItemOverflow.Never;
|
|
btn_dashboard.Size = new Size(104, 65);
|
|
btn_dashboard.Text = "Dashboard";
|
|
btn_dashboard.TextImageRelation = TextImageRelation.ImageAboveText;
|
|
//
|
|
// btn_settings
|
|
//
|
|
btn_settings.BackColor = SystemColors.Control;
|
|
btn_settings.Image = Properties.Resources.setting_tools;
|
|
btn_settings.ImageScaling = ToolStripItemImageScaling.None;
|
|
btn_settings.ImageTransparentColor = Color.Magenta;
|
|
btn_settings.Name = "btn_settings";
|
|
btn_settings.Size = new Size(80, 65);
|
|
btn_settings.Text = "Settings";
|
|
btn_settings.TextImageRelation = TextImageRelation.ImageAboveText;
|
|
//
|
|
// btn_terminal
|
|
//
|
|
btn_terminal.Image = Properties.Resources.error_log;
|
|
btn_terminal.ImageScaling = ToolStripItemImageScaling.None;
|
|
btn_terminal.Name = "btn_terminal";
|
|
btn_terminal.Size = new Size(136, 65);
|
|
btn_terminal.Text = "Terminal / Logs";
|
|
btn_terminal.TextImageRelation = TextImageRelation.ImageAboveText;
|
|
//
|
|
// btn_jobs
|
|
//
|
|
btn_jobs.Image = Properties.Resources.system_time;
|
|
btn_jobs.ImageScaling = ToolStripItemImageScaling.None;
|
|
btn_jobs.Name = "btn_jobs";
|
|
btn_jobs.Size = new Size(106, 65);
|
|
btn_jobs.Text = "Server Jobs";
|
|
btn_jobs.TextImageRelation = TextImageRelation.ImageAboveText;
|
|
//
|
|
// btn_accounting
|
|
//
|
|
btn_accounting.Image = Properties.Resources.coins_in_hand;
|
|
btn_accounting.ImageScaling = ToolStripItemImageScaling.None;
|
|
btn_accounting.ImageTransparentColor = Color.Magenta;
|
|
btn_accounting.Name = "btn_accounting";
|
|
btn_accounting.Size = new Size(106, 65);
|
|
btn_accounting.Text = "Accounting";
|
|
btn_accounting.TextImageRelation = TextImageRelation.ImageAboveText;
|
|
//
|
|
// toolStripSeparator1
|
|
//
|
|
toolStripSeparator1.Name = "toolStripSeparator1";
|
|
toolStripSeparator1.Size = new Size(6, 70);
|
|
//
|
|
// toolstrip_quickbar
|
|
//
|
|
toolstrip_quickbar.ImageScalingSize = new Size(24, 24);
|
|
toolstrip_quickbar.Items.AddRange(new ToolStripItem[] { btn_liveTrading, btn_demoTrading });
|
|
toolstrip_quickbar.Location = new Point(0, 105);
|
|
toolstrip_quickbar.Name = "toolstrip_quickbar";
|
|
toolstrip_quickbar.Size = new Size(2599, 34);
|
|
toolstrip_quickbar.TabIndex = 4;
|
|
toolstrip_quickbar.Text = "toolStrip2";
|
|
//
|
|
// btn_liveTrading
|
|
//
|
|
btn_liveTrading.DisplayStyle = ToolStripItemDisplayStyle.Text;
|
|
btn_liveTrading.Name = "btn_liveTrading";
|
|
btn_liveTrading.Size = new Size(137, 29);
|
|
btn_liveTrading.Text = "LiveTrading (—)";
|
|
//
|
|
// btn_demoTrading
|
|
//
|
|
btn_demoTrading.DisplayStyle = ToolStripItemDisplayStyle.Text;
|
|
btn_demoTrading.Name = "btn_demoTrading";
|
|
btn_demoTrading.Size = new Size(156, 29);
|
|
btn_demoTrading.Text = "DemoTrading (—)";
|
|
//
|
|
// statusStrip_info
|
|
//
|
|
statusStrip_info.BackColor = Color.Gainsboro;
|
|
statusStrip_info.ImageScalingSize = new Size(24, 24);
|
|
statusStrip_info.Items.AddRange(new ToolStripItem[] { lbl_trading, lbl_modules, lbl_ratelimit });
|
|
statusStrip_info.Location = new Point(0, 637);
|
|
statusStrip_info.Name = "statusStrip_info";
|
|
statusStrip_info.Size = new Size(2599, 32);
|
|
statusStrip_info.TabIndex = 5;
|
|
statusStrip_info.Text = "statusStrip1";
|
|
//
|
|
// lbl_trading
|
|
//
|
|
lbl_trading.Name = "lbl_trading";
|
|
lbl_trading.Size = new Size(97, 25);
|
|
lbl_trading.Text = "Trading: —";
|
|
//
|
|
// lbl_modules
|
|
//
|
|
lbl_modules.Name = "lbl_modules";
|
|
lbl_modules.Size = new Size(100, 25);
|
|
lbl_modules.Text = "Module: —";
|
|
//
|
|
// lbl_ratelimit
|
|
//
|
|
lbl_ratelimit.Name = "lbl_ratelimit";
|
|
lbl_ratelimit.Size = new Size(66, 25);
|
|
lbl_ratelimit.Text = "API: —";
|
|
//
|
|
// dgv_accountlist
|
|
//
|
|
dgv_accountlist.AllowUserToAddRows = false;
|
|
dgv_accountlist.AllowUserToDeleteRows = false;
|
|
dgv_accountlist.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
|
|
dgv_accountlist.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
|
dgv_accountlist.Columns.AddRange(new DataGridViewColumn[] { colAccName, colAccModules, colAccPoly, colAccBalance, colAccPnl3d, colAccWin3d, colAccOverall });
|
|
dgv_accountlist.Dock = DockStyle.Fill;
|
|
dgv_accountlist.Location = new Point(0, 139);
|
|
dgv_accountlist.Name = "dgv_accountlist";
|
|
dgv_accountlist.ReadOnly = true;
|
|
dgv_accountlist.RowHeadersVisible = false;
|
|
dgv_accountlist.RowHeadersWidth = 62;
|
|
dgv_accountlist.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
|
|
dgv_accountlist.Size = new Size(2599, 498);
|
|
dgv_accountlist.TabIndex = 6;
|
|
//
|
|
// colAccName
|
|
//
|
|
colAccName.DataPropertyName = "Name";
|
|
colAccName.HeaderText = "Account";
|
|
colAccName.MinimumWidth = 8;
|
|
colAccName.Name = "colAccName";
|
|
colAccName.ReadOnly = true;
|
|
colAccName.Width = 200;
|
|
//
|
|
// colAccModules
|
|
//
|
|
colAccModules.DataPropertyName = "Modules";
|
|
colAccModules.HeaderText = "Module";
|
|
colAccModules.MinimumWidth = 8;
|
|
colAccModules.Name = "colAccModules";
|
|
colAccModules.ReadOnly = true;
|
|
colAccModules.Width = 220;
|
|
//
|
|
// colAccPoly
|
|
//
|
|
colAccPoly.HeaderText = "Polymarket";
|
|
colAccPoly.MinimumWidth = 8;
|
|
colAccPoly.Name = "colAccPoly";
|
|
colAccPoly.ReadOnly = true;
|
|
colAccPoly.Text = "Öffnen";
|
|
colAccPoly.UseColumnTextForButtonValue = true;
|
|
colAccPoly.Width = 106;
|
|
//
|
|
// colAccBalance
|
|
//
|
|
colAccBalance.DataPropertyName = "Balance";
|
|
colAccBalance.HeaderText = "Wallet (USDC)";
|
|
colAccBalance.MinimumWidth = 8;
|
|
colAccBalance.Name = "colAccBalance";
|
|
colAccBalance.ReadOnly = true;
|
|
colAccBalance.Width = 130;
|
|
//
|
|
// colAccPnl3d
|
|
//
|
|
colAccPnl3d.DataPropertyName = "Pnl3d";
|
|
colAccPnl3d.HeaderText = "3T PnL";
|
|
colAccPnl3d.MinimumWidth = 8;
|
|
colAccPnl3d.Name = "colAccPnl3d";
|
|
colAccPnl3d.ReadOnly = true;
|
|
colAccPnl3d.Width = 110;
|
|
//
|
|
// colAccWin3d
|
|
//
|
|
colAccWin3d.DataPropertyName = "WinRate3d";
|
|
colAccWin3d.HeaderText = "3T Winrate %";
|
|
colAccWin3d.MinimumWidth = 8;
|
|
colAccWin3d.Name = "colAccWin3d";
|
|
colAccWin3d.ReadOnly = true;
|
|
colAccWin3d.Width = 110;
|
|
//
|
|
// colAccOverall
|
|
//
|
|
colAccOverall.DataPropertyName = "OverallPnl";
|
|
colAccOverall.HeaderText = "Overall P/L";
|
|
colAccOverall.MinimumWidth = 8;
|
|
colAccOverall.Name = "colAccOverall";
|
|
colAccOverall.ReadOnly = true;
|
|
colAccOverall.Width = 130;
|
|
//
|
|
// LauncherForm
|
|
//
|
|
AutoScaleDimensions = new SizeF(10F, 25F);
|
|
AutoScaleMode = AutoScaleMode.Font;
|
|
ClientSize = new Size(2599, 669);
|
|
Controls.Add(dgv_accountlist);
|
|
Controls.Add(statusStrip_info);
|
|
Controls.Add(toolstrip_quickbar);
|
|
Controls.Add(toolstrip_windows);
|
|
Controls.Add(menuStrip);
|
|
FormBorderStyle = FormBorderStyle.FixedSingle;
|
|
MainMenuStrip = menuStrip;
|
|
Margin = new Padding(4, 5, 4, 5);
|
|
Name = "LauncherForm";
|
|
StartPosition = FormStartPosition.CenterScreen;
|
|
Text = "PolyTrader";
|
|
menuStrip.ResumeLayout(false);
|
|
menuStrip.PerformLayout();
|
|
toolstrip_windows.ResumeLayout(false);
|
|
toolstrip_windows.PerformLayout();
|
|
toolstrip_quickbar.ResumeLayout(false);
|
|
toolstrip_quickbar.PerformLayout();
|
|
statusStrip_info.ResumeLayout(false);
|
|
statusStrip_info.PerformLayout();
|
|
((System.ComponentModel.ISupportInitialize)dgv_accountlist).EndInit();
|
|
ResumeLayout(false);
|
|
PerformLayout();
|
|
}
|
|
|
|
#endregion
|
|
|
|
private System.Windows.Forms.MenuStrip menuStrip;
|
|
private System.Windows.Forms.ToolStripMenuItem miDatei;
|
|
private System.Windows.Forms.ToolStripMenuItem miBeenden;
|
|
private ToolStrip toolstrip_windows;
|
|
private ToolStripButton btn_settings;
|
|
private ToolStripButton btn_terminal;
|
|
private ToolStripButton btn_jobs;
|
|
private ToolStripButton btn_dashboard;
|
|
private ToolStrip toolstrip_quickbar;
|
|
private ToolStripButton btn_liveTrading;
|
|
private ToolStripButton btn_demoTrading;
|
|
private StatusStrip statusStrip_info;
|
|
private ToolStripStatusLabel lbl_trading;
|
|
private ToolStripStatusLabel lbl_modules;
|
|
private ToolStripStatusLabel lbl_ratelimit;
|
|
private ToolStripButton btn_accounting;
|
|
private ToolStripSeparator toolStripSeparator1;
|
|
private DataGridView dgv_accountlist;
|
|
private DataGridViewTextBoxColumn colAccName;
|
|
private DataGridViewTextBoxColumn colAccModules;
|
|
private DataGridViewButtonColumn colAccPoly;
|
|
private DataGridViewTextBoxColumn colAccBalance;
|
|
private DataGridViewTextBoxColumn colAccPnl3d;
|
|
private DataGridViewTextBoxColumn colAccWin3d;
|
|
private DataGridViewTextBoxColumn colAccOverall;
|
|
}
|
|
}
|