Candles and volume for every traded asset, chart asset switcher

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ZHU MINCHAOandClaude Opus 5.5 committed 2026-11-04 08:51:31 +08:00
1 parent b8308e1010
commit e1390a6921
9 files changed
+105 -27

No files matched your search

+6 -5
View File
@@ -118,17 +118,18 @@ namespace Decentralized
{
// 用真实的行情过程往前跑 30 天,记录蜡烛(会改动这一局的 PSC 价格,只在测试存档用)
var d = Session.Data; int day0 = StoreStation.GetDayCounter() - 30; var none = new List<MarketEvent>();
d.Candles.Series.Remove(Assets.PSC);
d.Candles.Series.Clear();
for (int k = day0; k < day0 + 30; k++)
{
d.Market.Open(none, d.Rng, k); d.Candles.Open(Assets.PSC, k, d.Market.Price);
d.Market.Open(none, d.Rng, k); CandleChart.Morning(d, k);
double wh = d.Market.Whale(d.Rng); d.Candles.Tick(Assets.PSC, k, d.Market.Price, wh);
if (d.Market.TryWick(d.Rng, k) != 0) d.Candles.Tick(Assets.PSC, k, d.Market.Price);
if (d.Market.TryWick(d.Rng, k) != 0) CandleChart.Touch(d, k, Assets.PSC, Assets.Ponero);
if (d.Rng.Chance(0.3)) { double v = d.Rng.Range(500.0, 4000.0); bool buy = d.Rng.Chance(0.5); if (buy) d.Market.Main.BuyBase(v); else d.Market.Main.SellBase(v / d.Market.Price); d.Candles.Tick(Assets.PSC, k, d.Market.Price, v, true); }
d.Market.UndoWick(k); d.Candles.Close(Assets.PSC, k, d.Market.Price);
d.Market.UndoWick(k); CandleChart.Close(d, k);
d.Stable.Night(k, d.Rng, d.Staking.Earning);
d.Market.Night(none, d.Rng, k, Session.Price); d.Market.UpdateSupply(k);
}
d.Candles.Open(Assets.PSC, day0 + 30, d.Market.Price);
CandleChart.Morning(d, day0 + 30);
Log.Info($"测试:K 线 {d.Candles.Of(Assets.PSC).Count} 根,PSC {d.Market.Price:0.00}");
}));
ModHelper.AddDebugFunction(ModInfo.Id, ModInfo.Name, "Predict: window = tomorrow (test)", () => { foreach (var m in Session.Data.Predict.Markets) { m.FromDay = m.ToDay = StoreStation.GetDayCounter() + 1; } Log.Info("测试:所有盘口窗口改成明天"); });