UI Slice 3: CopyTrading - Zeilenfaerbung, Filter, Offene-Trades-Tab, Master-Grid-Fix
- Geschlossene Trades: Zeilenfaerbung nach PnL-% (TradeRowColoring, pur+getestet: <0 rot, 0-10% hellgruen, >10% gruen) via DataBindingComplete. Filter-Panel (Designer): Markt (Text), Master-Trader (Combo, dynamisch), Ergebnis (Alle/Gewinner/Verlierer), Von/Bis (optionale DateTimePicker mit Checkbox), Zuruecksetzen. Summary zeigt gefiltert/gesamt. - Neuer Tab 'Offene Trades' (OpenTradesView, designerfaehig): alle offenen Positionen aus dem Laufzeit-State mit Entry/Aktuell/Wert/Buchgewinn/-% und Status (offen/Exit laeuft), Zeilenfaerbung nach Buchgewinn-%, Summenzeile. In CopyTradingMainForm zwischen Master-Trader und Geschlossene eingehaengt. - Master-Trader-Grid: AutoSizeColumnsMode=Fill + FillWeights -> Spaltenbreiten teilen sich immer die Breite (Fix der 'verbuggten' Breiten); RowHeader war bereits aus. Tests: +8 (TradeRowColoring-Schwellen). Build 0 Fehler, 396 Tests gruen, --smoke-ui gruen. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
25f0d34042
commit
0725a81dbd
@@ -0,0 +1,29 @@
|
||||
using PolyTrader.Modules.CopyTrading.Logic;
|
||||
using Xunit;
|
||||
|
||||
namespace PolyTrader.Tests
|
||||
{
|
||||
/// <summary>Sicherheitsnetz für die PnL-Zeilenfärbung (Slice 3): Schwellen -10/0/10.</summary>
|
||||
public class TradeRowColoringTests
|
||||
{
|
||||
[Theory]
|
||||
[InlineData(-0.01, "loss")]
|
||||
[InlineData(-25.0, "loss")]
|
||||
[InlineData(0.0, "small")] // Break-even = hellgrün (kein Verlust)
|
||||
[InlineData(5.0, "small")]
|
||||
[InlineData(10.0, "small")] // genau 10 % noch hellgrün
|
||||
[InlineData(10.01, "big")]
|
||||
[InlineData(80.0, "big")]
|
||||
public void Color_matches_threshold(double pct, string expected)
|
||||
{
|
||||
var c = TradeRowColoring.ForPnlPercent((decimal)pct);
|
||||
var want = expected switch
|
||||
{
|
||||
"loss" => TradeRowColoring.Loss,
|
||||
"big" => TradeRowColoring.BigWin,
|
||||
_ => TradeRowColoring.SmallWin
|
||||
};
|
||||
Assert.Equal(want, c);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user