Phase 5-UI: Generischer Core-Trade-Log + modulübergreifendes Dashboard
- Core: TradeRecord (Modell) + ITradeLogRepository (+ Mongo-Impl, Collection "trade_log"), in AddCorePersistence registriert. Realisiert den generischen, modulneutralen Trade-Log aus Entscheidung #2. - Dual-Write: PersistenceService schreibt geschlossene Copy-Trades zusaetzlich als generischen TradeRecord (ModuleName="CopyTrading"). - Neue DashboardView (UserControl + Designer): zeigt die letzten Trades ALLER Module (GetRecent) mit Konto-Aufloesung + Kurzauswertung (Gesamt-PnL, Anzahl, Aufschluesselung je Modul). btn_dashboard im Launcher, View "core.dashboard". - Build 0 Fehler. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
8e2a92ad2e
commit
4f6c7fdb86
Generated
+48
-37
@@ -25,6 +25,7 @@ namespace PolyTraderSharp.Ui
|
||||
btn_settings = new ToolStripButton();
|
||||
btn_terminal = new ToolStripButton();
|
||||
btn_jobs = new ToolStripButton();
|
||||
btn_dashboard = new ToolStripButton();
|
||||
toolstrip_quickbar = new ToolStrip();
|
||||
btn_liveTrading = new ToolStripButton();
|
||||
btn_demoTrading = new ToolStripButton();
|
||||
@@ -37,9 +38,9 @@ namespace PolyTraderSharp.Ui
|
||||
toolstrip_quickbar.SuspendLayout();
|
||||
statusStrip_info.SuspendLayout();
|
||||
SuspendLayout();
|
||||
//
|
||||
//
|
||||
// menuStrip
|
||||
//
|
||||
//
|
||||
menuStrip.ImageScalingSize = new Size(24, 24);
|
||||
menuStrip.Items.AddRange(new ToolStripItem[] { miDatei });
|
||||
menuStrip.Location = new Point(0, 0);
|
||||
@@ -47,39 +48,39 @@ namespace PolyTraderSharp.Ui
|
||||
menuStrip.Padding = new Padding(9, 3, 0, 3);
|
||||
menuStrip.Size = new Size(2599, 35);
|
||||
menuStrip.TabIndex = 0;
|
||||
//
|
||||
//
|
||||
// miDatei
|
||||
//
|
||||
//
|
||||
miDatei.DropDownItems.AddRange(new ToolStripItem[] { miLegacy, miBeenden });
|
||||
miDatei.Name = "miDatei";
|
||||
miDatei.Size = new Size(69, 29);
|
||||
miDatei.Text = "Datei";
|
||||
//
|
||||
//
|
||||
// miLegacy
|
||||
//
|
||||
//
|
||||
miLegacy.Name = "miLegacy";
|
||||
miLegacy.Size = new Size(275, 34);
|
||||
miLegacy.Text = "Legacy-UI (alte Tabs)";
|
||||
//
|
||||
//
|
||||
// miBeenden
|
||||
//
|
||||
//
|
||||
miBeenden.Name = "miBeenden";
|
||||
miBeenden.Size = new Size(275, 34);
|
||||
miBeenden.Text = "Beenden";
|
||||
//
|
||||
//
|
||||
// toolstrip_windows
|
||||
//
|
||||
//
|
||||
toolstrip_windows.AutoSize = false;
|
||||
toolstrip_windows.ImageScalingSize = new Size(64, 64);
|
||||
toolstrip_windows.Items.AddRange(new ToolStripItem[] { btn_settings, btn_terminal, btn_jobs });
|
||||
toolstrip_windows.Items.AddRange(new ToolStripItem[] { btn_settings, btn_terminal, btn_jobs, btn_dashboard });
|
||||
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_settings
|
||||
//
|
||||
//
|
||||
btn_settings.BackColor = SystemColors.Control;
|
||||
btn_settings.Image = Properties.Resources.setting_tools;
|
||||
btn_settings.ImageScaling = ToolStripItemImageScaling.None;
|
||||
@@ -88,49 +89,58 @@ namespace PolyTraderSharp.Ui
|
||||
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.DisplayStyle = ToolStripItemDisplayStyle.Text;
|
||||
//
|
||||
btn_jobs.Image = Properties.Resources.system_time;
|
||||
btn_jobs.ImageScaling = ToolStripItemImageScaling.None;
|
||||
btn_jobs.Name = "btn_jobs";
|
||||
btn_jobs.Size = new Size(100, 65);
|
||||
btn_jobs.Size = new Size(106, 65);
|
||||
btn_jobs.Text = "Server Jobs";
|
||||
btn_jobs.TextImageRelation = TextImageRelation.ImageAboveText;
|
||||
//
|
||||
// btn_dashboard
|
||||
//
|
||||
btn_dashboard.DisplayStyle = ToolStripItemDisplayStyle.Text;
|
||||
btn_dashboard.Name = "btn_dashboard";
|
||||
btn_dashboard.Size = new Size(110, 65);
|
||||
btn_dashboard.Text = "Dashboard";
|
||||
//
|
||||
// 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, 28);
|
||||
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(200, 25);
|
||||
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(200, 25);
|
||||
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 });
|
||||
@@ -139,27 +149,27 @@ namespace PolyTraderSharp.Ui
|
||||
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: —";
|
||||
//
|
||||
//
|
||||
// LauncherForm
|
||||
//
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(10F, 25F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(2599, 165);
|
||||
@@ -194,6 +204,7 @@ namespace PolyTraderSharp.Ui
|
||||
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;
|
||||
|
||||
Reference in New Issue
Block a user