操纵检出:免查线 15%,斜率 3;测试按相对值

This commit is contained in:
ZHU MINCHAO committed 2026-11-05 22:27:31 +08:00
1 parent 96cadfa411
commit cc3b74e044
3 files changed
+7 -6

No files matched your search

+1
View File
@@ -5,6 +5,7 @@
- 浏览器:转出、转入分成两列,按列宽显示完整地址和名称,放不下时先去名称、再用缩写,鼠标悬停显示完整地址和名称。 - 浏览器:转出、转入分成两列,按列宽显示完整地址和名称,放不下时先去名称、再用缩写,鼠标悬停显示完整地址和名称。
- RatDigg 矿机的状态面板加了算力(GH/s)、耗电和成色(烧毁显示“已烧毁”),和矿架一致。 - RatDigg 矿机的状态面板加了算力(GH/s)、耗电和成色(烧毁显示“已烧毁”),和矿架一致。
- 矿机、矿架状态面板里的收款地址在读档、睡觉之后会按标签重新读取,不再显示成“未设置”(地址本来就保存在物品标签里)。 - 矿机、矿架状态面板里的收款地址在读档、睡觉之后会按标签重新读取,不再显示成“未设置”(地址本来就保存在物品标签里)。
- 操纵检出:免查线 2% → 15%,斜率 6 → 3。池加深之后,推价幅度 15% 约对应第 0 天 7,000 信用点的现货单(深度随天数增长,免查额度也跟着涨);超线后被查概率 = 25% + 3 × (幅度 − 15%),推价约 30%(现货约 14,000)时约 70%。
- 市场深度:现货池基础深度 50,000 → 120,000,永续成交深度倍数 3 → 5。大额现货单和永续单的滑点明显变小(永续 20,000 名义价值的单边滑点约 3%,原来约 12%;现货买 20,000 价格约涨 36%,原来约 83%)。 - 市场深度:现货池基础深度 50,000 → 120,000,永续成交深度倍数 3 → 5。大额现货单和永续单的滑点明显变小(永续 20,000 名义价值的单边滑点约 3%,原来约 12%;现货买 20,000 价格约涨 36%,原来约 83%)。
## 1.0.0-rc9 ## 1.0.0-rc9
+1 -1
View File
@@ -244,7 +244,7 @@ namespace Decentralized.Domain
public const int IntelRep = 20; public const int IntelRep = 20;
/// <summary>操纵检出:玩家自己的大单把价格推离"没有你时的水平"的对数幅度(取绝对值)低于 ManipFree 不查; /// <summary>操纵检出:玩家自己的大单把价格推离"没有你时的水平"的对数幅度(取绝对值)低于 ManipFree 不查;
/// 超过后被查概率 = ManipBase + ManipSlope × (幅度 − ManipFree),封顶 ManipMax;被查后永续账户冻结几天。</summary> /// 超过后被查概率 = ManipBase + ManipSlope × (幅度 − ManipFree),封顶 ManipMax;被查后永续账户冻结几天。</summary>
public const double ManipFree = 0.02, ManipBase = 0.25, ManipSlope = 6, ManipMax = 0.95; public const double ManipFree = 0.15, ManipBase = 0.25, ManipSlope = 3, ManipMax = 0.95;
public const int ManipFreezeDays = 3; public const int ManipFreezeDays = 3;
/// <summary>高息理财(庞氏):第几天起开放、开张的宣传费(CRC)、可选日息、每晚新存入的基数(随天数)和对日息的敏感指数、 /// <summary>高息理财(庞氏):第几天起开放、开张的宣传费(CRC)、可选日息、每晚新存入的基数(随天数)和对日息的敏感指数、
+5 -5
View File
@@ -1478,8 +1478,8 @@ internal static class Program
Test("操纵检出:被查概率随推价幅度升高,推价每晚衰减,行情盘押中按方向被判", () => Test("操纵检出:被查概率随推价幅度升高,推价每晚衰减,行情盘押中按方向被判", () =>
{ {
Check(Market.ManipChance(0.01) == 0 && Market.ManipChance(-0.01) == 0, "幅度低于免查线不查"); Check(Market.ManipChance(Tuning.ManipFree / 2) == 0 && Market.ManipChance(-Tuning.ManipFree / 2) == 0, "幅度低于免查线不查");
Check(Market.ManipChance(0.05) > Market.ManipChance(0.03) && Market.ManipChance(-0.05) == Market.ManipChance(0.05), "幅度越大越容易被查,方向无关"); Check(Market.ManipChance(Tuning.ManipFree + 0.05) > Market.ManipChance(Tuning.ManipFree + 0.03) && Market.ManipChance(-(Tuning.ManipFree + 0.05)) == Market.ManipChance(Tuning.ManipFree + 0.05), "幅度越大越容易被查,方向无关");
Check(Market.ManipChance(5) == Tuning.ManipMax, "封顶"); Check(Market.ManipChance(5) == Tuning.ManipMax, "封顶");
var mk = Market.CreateDefault(5); double p0 = mk.Price; var mk = Market.CreateDefault(5); double p0 = mk.Price;
mk.PlayerPush += Math.Log(1.1); mk.PlayerPush += Math.Log(1.1);
@@ -1490,7 +1490,7 @@ internal static class Program
int manip = 0, win = 0, noPush = 0; int manip = 0, win = 0, noPush = 0;
for (ulong sd = 1; sd <= 200; sd++) for (ulong sd = 1; sd <= 200; sd++)
{ {
foreach (var (yes, push, outcome) in new[] { (true, 0.06, true), (false, 0.06, false), (true, 0.0, true) }) foreach (var (yes, push, outcome) in new[] { (true, Tuning.ManipFree + 0.06, true), (false, Tuning.ManipFree + 0.06, false), (true, 0.0, true) })
{ {
var bk = new PredictBook(); var w = new Wallet { Address = "w" }; w.Add(Assets.CRC, 1e5); var bk = new PredictBook(); var w = new Wallet { Address = "w" }; w.Add(Assets.CRC, 1e5);
var m = PredictMarket.Create(++bk.Seq, PredictKind.Price, "PSC", "PSC", 100, 4, 5, 5, 0.3); bk.Markets.Add(m); var m = PredictMarket.Create(++bk.Seq, PredictKind.Price, "PSC", "PSC", 100, 4, 5, 5, 0.3); bk.Markets.Add(m);
@@ -1500,8 +1500,8 @@ internal static class Program
else if (yes && push > 0) win++; else if (push == 0) noPush++; else if (yes && push > 0) win++; else if (push == 0) noPush++;
} }
} }
double expect = Market.ManipChance(0.06) * 200; double expect = Market.ManipChance(Tuning.ManipFree + 0.06) * 200;
Check(Math.Abs(manip - expect) < 40 && manip + win == 200 && noPush == 200, $"推价 6% 约 {expect:0} 次被判,被判 {manip},没被判 {win}"); Check(Math.Abs(manip - expect) < 40 && manip + win == 200 && noPush == 200, $"推价超线 6% 约 {expect:0} 次被判,被判 {manip},没被判 {win}");
}); });
Test("高息理财:开张条件、每晚存入与利息、崩盘、被举报、卷走", () => Test("高息理财:开张条件、每晚存入与利息、崩盘、被举报、卷走", () =>