Stage 7 numeric pass and market legibility (price moves, history, insider exits)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
6c5db17758
commit
7b5080984a
9 files changed
+152
-21
No files matched your search
@@ -600,7 +600,7 @@ namespace Decentralized
|
||||
var bk = d.Predict;
|
||||
var w = d.Hot;
|
||||
int day = StoreStation.GetDayCounter();
|
||||
var open = bk.Markets.Where(m => m.Outcome < 0).OrderBy(m => m.FromDay).ThenBy(m => m.Id).ToList();
|
||||
var open = bk.Markets.Where(m => m.Outcome < 0).OrderBy(m => m.IsOpen(day) ? 0 : 1).ThenBy(m => m.FromDay).ThenBy(m => m.Id).ToList();
|
||||
var sel = open.Find(m => m.Id == _predPick) ?? open.FirstOrDefault();
|
||||
_predPick = sel?.Id ?? 0;
|
||||
Columns(b, l =>
|
||||
@@ -618,7 +618,15 @@ namespace Decentralized
|
||||
l.AddButton(m.Id == _predPick ? "[" + q + "]" : q, () => { _predPick = mk.Id; _message = null; Open(); });
|
||||
l.End();
|
||||
string state = m.IsOpen(day) ? "" : " " + L.T("predict.closed");
|
||||
l.AddLabel(L.T("predict.row", P2(m.PYes), P2(1 - m.PYes)) + (all.Count > 0 ? " " + L.T("predict.held", L.T(all[0].Yes ? "predict.yes" : "predict.no"), Fmt.Num(all.Sum(x => x.Shares)), Fmt.Num(all.Sum(x => x.Cost))) : "") + state);
|
||||
string move = m.PrevP >= 0 && Math.Abs(m.PYes - m.PrevP) >= 0.02 ? L.T("predict.row.move", P2(m.PrevP), m.PYes > m.PrevP ? "↑" : "↓") : "";
|
||||
l.AddLabel(L.T("predict.row", P2(m.PYes), P2(1 - m.PYes)) + move + (all.Count > 0 ? " " + L.T("predict.held", L.T(all[0].Yes ? "predict.yes" : "predict.no"), Fmt.Num(all.Sum(x => x.Shares)), Fmt.Num(all.Sum(x => x.Cost))) : "") + state);
|
||||
}
|
||||
if (bk.Stats.Count > 0)
|
||||
{
|
||||
l.AddSeparator();
|
||||
l.AddLabel(L.T("predict.stats.h"));
|
||||
foreach (var kv in bk.Stats.OrderByDescending(k => k.Value.Count))
|
||||
l.AddLabel(L.T("predict.stats.row", L.T("predict.kind." + kv.Key), kv.Value.Count, P2(kv.Value.AvgP0), (kv.Value.HitRate * 100).ToString("0", CultureInfo.InvariantCulture)));
|
||||
}
|
||||
if (bk.Recent.Count > 0)
|
||||
{
|
||||
@@ -792,8 +800,14 @@ namespace Decentralized
|
||||
Summary = L.T("predict.sum.sell", PredictGame.Question(m)),
|
||||
Execute = pw =>
|
||||
{
|
||||
var res = d.Predict.SellAll(pw, m, StoreStation.GetDayCounter(), out double got);
|
||||
var res = d.Predict.SellAll(pw, m, StoreStation.GetDayCounter(), d.Rng, out double got, out double fraud);
|
||||
_message = res == PredictResult.Ok ? L.T("predict.sold", Fmt.Num(got)) : L.T("predict.err." + res);
|
||||
if (fraud > 0)
|
||||
{
|
||||
PlayerStore.Instance.secData.CommitCrime("FRAUD", (int)Math.Round(fraud));
|
||||
_message = L.T("predict.sold.caught", Fmt.Num(got));
|
||||
Log.Info($"内幕卖出被查:只退本金 {got:0},罪证 {fraud:0}");
|
||||
}
|
||||
if (res == PredictResult.Ok) Session.Save();
|
||||
Open();
|
||||
},
|
||||
|
||||
Reference in new issue
Block a user