global: snapshot

This commit is contained in:
nym21
2026-03-08 00:11:06 +01:00
parent 81ab1886d1
commit cf6c755e51
5 changed files with 90 additions and 37 deletions

View File

@@ -960,8 +960,11 @@ pub struct CapCapitulationGrossInvestorLossLowerMvrvNegNetPeakProfitRealizedSell
pub net_pnl_change_1m_rel_to_realized_cap: BpsPercentRatioPattern,
pub net_pnl_delta: ChangeRatePattern<CentsSigned>,
pub net_pnl_delta_extended: _24hChangeRatePattern<CentsSigned>,
pub net_realized_pnl: CumulativeHeightPattern<CentsSigned>,
pub net_realized_pnl: MetricPattern1<CentsSigned>,
pub net_realized_pnl_cumulative: MetricPattern1<CentsSigned>,
pub net_realized_pnl_rel_to_realized_cap: BpsPercentRatioPattern,
pub net_realized_pnl_sum: _24hPattern<CentsSigned>,
pub net_realized_pnl_sum_extended: _1m1w1yPattern<CentsSigned>,
pub peak_regret: CumulativeHeightPattern<Cents>,
pub peak_regret_rel_to_realized_cap: BpsPercentRatioPattern,
pub profit_flow: MetricPattern1<Dollars>,
@@ -1028,8 +1031,11 @@ impl CapCapitulationGrossInvestorLossLowerMvrvNegNetPeakProfitRealizedSellSentSo
net_pnl_change_1m_rel_to_realized_cap: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "net_pnl_change_1m_rel_to_realized_cap")),
net_pnl_delta: ChangeRatePattern::new(client.clone(), _m(&acc, "net_pnl_delta")),
net_pnl_delta_extended: _24hChangeRatePattern::new(client.clone(), _m(&acc, "net_pnl_delta")),
net_realized_pnl: CumulativeHeightPattern::new(client.clone(), _m(&acc, "net_realized_pnl")),
net_realized_pnl: MetricPattern1::new(client.clone(), _m(&acc, "net_realized_pnl")),
net_realized_pnl_cumulative: MetricPattern1::new(client.clone(), _m(&acc, "net_realized_pnl_cumulative")),
net_realized_pnl_rel_to_realized_cap: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "net_realized_pnl_rel_to_realized_cap")),
net_realized_pnl_sum: _24hPattern::new(client.clone(), _m(&acc, "net_realized_pnl_24h")),
net_realized_pnl_sum_extended: _1m1w1yPattern::new(client.clone(), _m(&acc, "net_realized_pnl")),
peak_regret: CumulativeHeightPattern::new(client.clone(), _m(&acc, "realized_peak_regret")),
peak_regret_rel_to_realized_cap: BpsPercentRatioPattern::new(client.clone(), _m(&acc, "realized_peak_regret_rel_to_realized_cap")),
profit_flow: MetricPattern1::new(client.clone(), _m(&acc, "profit_flow")),
@@ -1147,7 +1153,8 @@ impl _0sdM0M1M1sdM2M2sdM3sdP0P1P1sdP2P2sdP3sdSdSmaZscorePattern {
pub struct MvrvNegNetRealizedSentSoprValuePattern {
pub mvrv: MetricPattern1<StoredF32>,
pub neg_realized_loss: MetricPattern1<Dollars>,
pub net_realized_pnl: CumulativeHeightPattern<CentsSigned>,
pub net_realized_pnl: MetricPattern1<CentsSigned>,
pub net_realized_pnl_sum: _24hPattern<CentsSigned>,
pub realized_cap: MetricPattern1<Dollars>,
pub realized_cap_cents: MetricPattern1<Cents>,
pub realized_cap_delta: ChangeRatePattern<CentsSigned>,
@@ -1174,7 +1181,8 @@ impl MvrvNegNetRealizedSentSoprValuePattern {
Self {
mvrv: MetricPattern1::new(client.clone(), _m(&acc, "mvrv")),
neg_realized_loss: MetricPattern1::new(client.clone(), _m(&acc, "neg_realized_loss")),
net_realized_pnl: CumulativeHeightPattern::new(client.clone(), _m(&acc, "net_realized_pnl")),
net_realized_pnl: MetricPattern1::new(client.clone(), _m(&acc, "net_realized_pnl")),
net_realized_pnl_sum: _24hPattern::new(client.clone(), _m(&acc, "net_realized_pnl_24h")),
realized_cap: MetricPattern1::new(client.clone(), _m(&acc, "realized_cap")),
realized_cap_cents: MetricPattern1::new(client.clone(), _m(&acc, "realized_cap_cents")),
realized_cap_delta: ChangeRatePattern::new(client.clone(), _m(&acc, "realized_cap_delta")),
@@ -1251,7 +1259,8 @@ impl Pct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65Pct70Pct75
pub struct MvrvNegNetRealizedSoprValuePattern {
pub mvrv: MetricPattern1<StoredF32>,
pub neg_realized_loss: MetricPattern1<Dollars>,
pub net_realized_pnl: CumulativeHeightPattern<CentsSigned>,
pub net_realized_pnl: MetricPattern1<CentsSigned>,
pub net_realized_pnl_sum: _24hPattern<CentsSigned>,
pub realized_cap: MetricPattern1<Dollars>,
pub realized_cap_cents: MetricPattern1<Cents>,
pub realized_cap_delta: ChangeRatePattern<CentsSigned>,
@@ -1274,7 +1283,8 @@ impl MvrvNegNetRealizedSoprValuePattern {
Self {
mvrv: MetricPattern1::new(client.clone(), _m(&acc, "mvrv")),
neg_realized_loss: MetricPattern1::new(client.clone(), _m(&acc, "neg_realized_loss")),
net_realized_pnl: CumulativeHeightPattern::new(client.clone(), _m(&acc, "net_realized_pnl")),
net_realized_pnl: MetricPattern1::new(client.clone(), _m(&acc, "net_realized_pnl")),
net_realized_pnl_sum: _24hPattern::new(client.clone(), _m(&acc, "net_realized_pnl_24h")),
realized_cap: MetricPattern1::new(client.clone(), _m(&acc, "realized_cap")),
realized_cap_cents: MetricPattern1::new(client.clone(), _m(&acc, "realized_cap_cents")),
realized_cap_delta: ChangeRatePattern::new(client.clone(), _m(&acc, "realized_cap_delta")),

View File

@@ -10,8 +10,8 @@ use crate::{
blocks,
distribution::state::RealizedOps,
internal::{
ComputedFromHeight, ComputedFromHeightCumulative, LazyFromHeight,
NegCentsUnsignedToDollars, RatioCents64, RollingDelta1m, RollingWindow24h,
ComputedFromHeight, LazyFromHeight, NegCentsUnsignedToDollars, RatioCents64,
RollingDelta1m, RollingWindow24h,
},
prices,
};
@@ -30,7 +30,8 @@ pub struct RealizedCore<M: StorageMode = Rw> {
pub realized_cap_delta: RollingDelta1m<Cents, CentsSigned, M>,
pub neg_realized_loss: LazyFromHeight<Dollars, Cents>,
pub net_realized_pnl: ComputedFromHeightCumulative<CentsSigned, M>,
pub net_realized_pnl: ComputedFromHeight<CentsSigned, M>,
pub net_realized_pnl_sum: RollingWindow24h<CentsSigned, M>,
pub value_created: ComputedFromHeight<Cents, M>,
pub value_destroyed: ComputedFromHeight<Cents, M>,
@@ -53,7 +54,8 @@ impl RealizedCore {
cfg.indexes,
);
let net_realized_pnl = cfg.import("net_realized_pnl", v0)?;
let net_realized_pnl = cfg.import("net_realized_pnl", v1)?;
let net_realized_pnl_sum = cfg.import("net_realized_pnl", v1)?;
let value_created = cfg.import("value_created", v0)?;
let value_destroyed = cfg.import("value_destroyed", v0)?;
@@ -66,6 +68,7 @@ impl RealizedCore {
realized_cap_delta: cfg.import("realized_cap_delta", v1)?,
neg_realized_loss,
net_realized_pnl,
net_realized_pnl_sum,
value_created,
value_destroyed,
value_created_sum,
@@ -123,22 +126,18 @@ impl RealizedCore {
) -> Result<()> {
self.minimal.compute_rest_part1(blocks, starting_indexes, exit)?;
self.net_realized_pnl
.compute(starting_indexes.height, exit, |vec| {
vec.compute_transform2(
starting_indexes.height,
&self.minimal.realized_profit.height,
&self.minimal.realized_loss.height,
|(i, profit, loss, ..)| {
(
i,
CentsSigned::new(profit.inner() as i64 - loss.inner() as i64),
)
},
exit,
)?;
Ok(())
})?;
self.net_realized_pnl.height.compute_transform2(
starting_indexes.height,
&self.minimal.realized_profit.height,
&self.minimal.realized_loss.height,
|(i, profit, loss, ..)| {
(
i,
CentsSigned::new(profit.inner() as i64 - loss.inner() as i64),
)
},
exit,
)?;
Ok(())
}
@@ -161,6 +160,13 @@ impl RealizedCore {
exit,
)?;
self.net_realized_pnl_sum.compute_rolling_sum(
starting_indexes.height,
&blocks.count.height_24h_ago,
&self.net_realized_pnl.height,
exit,
)?;
self.value_created_sum.compute_rolling_sum(
starting_indexes.height,
&blocks.count.height_24h_ago,

View File

@@ -56,6 +56,9 @@ pub struct RealizedFull<M: StorageMode = Rw> {
pub gross_pnl_sum: RollingWindows<Cents, M>,
pub net_realized_pnl_cumulative: ComputedFromHeight<CentsSigned, M>,
pub net_realized_pnl_sum_extended: RollingWindowsFrom1w<CentsSigned, M>,
pub net_pnl_delta: RollingDelta1m<CentsSigned, CentsSigned, M>,
pub net_pnl_delta_extended: RollingDeltaExcept1m<CentsSigned, CentsSigned, M>,
pub net_pnl_change_1m_rel_to_realized_cap: PercentFromHeight<BasisPointsSigned32, M>,
@@ -179,6 +182,8 @@ impl RealizedFull {
capitulation_flow,
profit_flow,
gross_pnl_sum,
net_realized_pnl_cumulative: cfg.import("net_realized_pnl_cumulative", Version::ONE)?,
net_realized_pnl_sum_extended: cfg.import("net_realized_pnl", Version::ONE)?,
net_pnl_delta: cfg.import("net_pnl_delta", Version::new(5))?,
net_pnl_delta_extended: cfg.import("net_pnl_delta", Version::new(5))?,
net_pnl_change_1m_rel_to_realized_cap: cfg
@@ -300,6 +305,15 @@ impl RealizedFull {
exit: &Exit,
) -> Result<()> {
self.base.compute_rest_part1(blocks, starting_indexes, exit)?;
self.net_realized_pnl_cumulative
.height
.compute_cumulative(
starting_indexes.height,
&self.base.core.net_realized_pnl.height,
exit,
)?;
self.peak_regret
.compute_rest(starting_indexes.height, exit)?;
Ok(())
@@ -324,6 +338,14 @@ impl RealizedFull {
let window_starts = blocks.count.window_starts();
// Extended rolling sum (1w, 1m, 1y) for net_realized_pnl
self.net_realized_pnl_sum_extended.compute_rolling_sum(
starting_indexes.height,
&window_starts,
&self.base.core.net_realized_pnl.height,
exit,
)?;
// Extended rolling windows (1w, 1m, 1y) for value_created/destroyed/sopr
self.value_created_sum_extended.compute_rolling_sum(
starting_indexes.height,
@@ -434,13 +456,13 @@ impl RealizedFull {
self.net_pnl_delta.compute(
starting_indexes.height,
&blocks.count.height_1m_ago,
&self.base.core.net_realized_pnl.cumulative.height,
&self.net_realized_pnl_cumulative.height,
exit,
)?;
self.net_pnl_delta_extended.compute(
starting_indexes.height,
&window_starts,
&self.base.core.net_realized_pnl.cumulative.height,
&self.net_realized_pnl_cumulative.height,
exit,
)?;
self.net_pnl_change_1m_rel_to_realized_cap

View File

@@ -1595,8 +1595,11 @@ function createMetricPattern35(client, name) { return /** @type {MetricPattern35
* @property {BpsPercentRatioPattern} netPnlChange1mRelToRealizedCap
* @property {ChangeRatePattern<CentsSigned>} netPnlDelta
* @property {_24hChangeRatePattern<CentsSigned>} netPnlDeltaExtended
* @property {CumulativeHeightPattern<CentsSigned>} netRealizedPnl
* @property {MetricPattern1<CentsSigned>} netRealizedPnl
* @property {MetricPattern1<CentsSigned>} netRealizedPnlCumulative
* @property {BpsPercentRatioPattern} netRealizedPnlRelToRealizedCap
* @property {_24hPattern<CentsSigned>} netRealizedPnlSum
* @property {_1m1w1yPattern<CentsSigned>} netRealizedPnlSumExtended
* @property {CumulativeHeightPattern<Cents>} peakRegret
* @property {BpsPercentRatioPattern} peakRegretRelToRealizedCap
* @property {MetricPattern1<Dollars>} profitFlow
@@ -1667,8 +1670,11 @@ function createCapCapitulationGrossInvestorLossLowerMvrvNegNetPeakProfitRealized
netPnlChange1mRelToRealizedCap: createBpsPercentRatioPattern(client, _m(acc, 'net_pnl_change_1m_rel_to_realized_cap')),
netPnlDelta: createChangeRatePattern(client, _m(acc, 'net_pnl_delta')),
netPnlDeltaExtended: create_24hChangeRatePattern(client, _m(acc, 'net_pnl_delta')),
netRealizedPnl: createCumulativeHeightPattern(client, _m(acc, 'net_realized_pnl')),
netRealizedPnl: createMetricPattern1(client, _m(acc, 'net_realized_pnl')),
netRealizedPnlCumulative: createMetricPattern1(client, _m(acc, 'net_realized_pnl_cumulative')),
netRealizedPnlRelToRealizedCap: createBpsPercentRatioPattern(client, _m(acc, 'net_realized_pnl_rel_to_realized_cap')),
netRealizedPnlSum: create_24hPattern(client, _m(acc, 'net_realized_pnl_24h')),
netRealizedPnlSumExtended: create_1m1w1yPattern(client, _m(acc, 'net_realized_pnl')),
peakRegret: createCumulativeHeightPattern(client, _m(acc, 'realized_peak_regret')),
peakRegretRelToRealizedCap: createBpsPercentRatioPattern(client, _m(acc, 'realized_peak_regret_rel_to_realized_cap')),
profitFlow: createMetricPattern1(client, _m(acc, 'profit_flow')),
@@ -1788,7 +1794,8 @@ function create_0sdM0M1M1sdM2M2sdM3sdP0P1P1sdP2P2sdP3sdSdSmaZscorePattern(client
* @typedef {Object} MvrvNegNetRealizedSentSoprValuePattern
* @property {MetricPattern1<StoredF32>} mvrv
* @property {MetricPattern1<Dollars>} negRealizedLoss
* @property {CumulativeHeightPattern<CentsSigned>} netRealizedPnl
* @property {MetricPattern1<CentsSigned>} netRealizedPnl
* @property {_24hPattern<CentsSigned>} netRealizedPnlSum
* @property {MetricPattern1<Dollars>} realizedCap
* @property {MetricPattern1<Cents>} realizedCapCents
* @property {ChangeRatePattern<CentsSigned>} realizedCapDelta
@@ -1819,7 +1826,8 @@ function createMvrvNegNetRealizedSentSoprValuePattern(client, acc) {
return {
mvrv: createMetricPattern1(client, _m(acc, 'mvrv')),
negRealizedLoss: createMetricPattern1(client, _m(acc, 'neg_realized_loss')),
netRealizedPnl: createCumulativeHeightPattern(client, _m(acc, 'net_realized_pnl')),
netRealizedPnl: createMetricPattern1(client, _m(acc, 'net_realized_pnl')),
netRealizedPnlSum: create_24hPattern(client, _m(acc, 'net_realized_pnl_24h')),
realizedCap: createMetricPattern1(client, _m(acc, 'realized_cap')),
realizedCapCents: createMetricPattern1(client, _m(acc, 'realized_cap_cents')),
realizedCapDelta: createChangeRatePattern(client, _m(acc, 'realized_cap_delta')),
@@ -1898,7 +1906,8 @@ function createPct05Pct10Pct15Pct20Pct25Pct30Pct35Pct40Pct45Pct50Pct55Pct60Pct65
* @typedef {Object} MvrvNegNetRealizedSoprValuePattern
* @property {MetricPattern1<StoredF32>} mvrv
* @property {MetricPattern1<Dollars>} negRealizedLoss
* @property {CumulativeHeightPattern<CentsSigned>} netRealizedPnl
* @property {MetricPattern1<CentsSigned>} netRealizedPnl
* @property {_24hPattern<CentsSigned>} netRealizedPnlSum
* @property {MetricPattern1<Dollars>} realizedCap
* @property {MetricPattern1<Cents>} realizedCapCents
* @property {ChangeRatePattern<CentsSigned>} realizedCapDelta
@@ -1925,7 +1934,8 @@ function createMvrvNegNetRealizedSoprValuePattern(client, acc) {
return {
mvrv: createMetricPattern1(client, _m(acc, 'mvrv')),
negRealizedLoss: createMetricPattern1(client, _m(acc, 'neg_realized_loss')),
netRealizedPnl: createCumulativeHeightPattern(client, _m(acc, 'net_realized_pnl')),
netRealizedPnl: createMetricPattern1(client, _m(acc, 'net_realized_pnl')),
netRealizedPnlSum: create_24hPattern(client, _m(acc, 'net_realized_pnl_24h')),
realizedCap: createMetricPattern1(client, _m(acc, 'realized_cap')),
realizedCapCents: createMetricPattern1(client, _m(acc, 'realized_cap_cents')),
realizedCapDelta: createChangeRatePattern(client, _m(acc, 'realized_cap_delta')),

View File

@@ -2090,8 +2090,11 @@ class CapCapitulationGrossInvestorLossLowerMvrvNegNetPeakProfitRealizedSellSentS
self.net_pnl_change_1m_rel_to_realized_cap: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'net_pnl_change_1m_rel_to_realized_cap'))
self.net_pnl_delta: ChangeRatePattern[CentsSigned] = ChangeRatePattern(client, _m(acc, 'net_pnl_delta'))
self.net_pnl_delta_extended: _24hChangeRatePattern[CentsSigned] = _24hChangeRatePattern(client, _m(acc, 'net_pnl_delta'))
self.net_realized_pnl: CumulativeHeightPattern[CentsSigned] = CumulativeHeightPattern(client, _m(acc, 'net_realized_pnl'))
self.net_realized_pnl: MetricPattern1[CentsSigned] = MetricPattern1(client, _m(acc, 'net_realized_pnl'))
self.net_realized_pnl_cumulative: MetricPattern1[CentsSigned] = MetricPattern1(client, _m(acc, 'net_realized_pnl_cumulative'))
self.net_realized_pnl_rel_to_realized_cap: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'net_realized_pnl_rel_to_realized_cap'))
self.net_realized_pnl_sum: _24hPattern[CentsSigned] = _24hPattern(client, _m(acc, 'net_realized_pnl_24h'))
self.net_realized_pnl_sum_extended: _1m1w1yPattern[CentsSigned] = _1m1w1yPattern(client, _m(acc, 'net_realized_pnl'))
self.peak_regret: CumulativeHeightPattern[Cents] = CumulativeHeightPattern(client, _m(acc, 'realized_peak_regret'))
self.peak_regret_rel_to_realized_cap: BpsPercentRatioPattern = BpsPercentRatioPattern(client, _m(acc, 'realized_peak_regret_rel_to_realized_cap'))
self.profit_flow: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'profit_flow'))
@@ -2175,7 +2178,8 @@ class MvrvNegNetRealizedSentSoprValuePattern:
"""Create pattern node with accumulated metric name."""
self.mvrv: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'mvrv'))
self.neg_realized_loss: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'neg_realized_loss'))
self.net_realized_pnl: CumulativeHeightPattern[CentsSigned] = CumulativeHeightPattern(client, _m(acc, 'net_realized_pnl'))
self.net_realized_pnl: MetricPattern1[CentsSigned] = MetricPattern1(client, _m(acc, 'net_realized_pnl'))
self.net_realized_pnl_sum: _24hPattern[CentsSigned] = _24hPattern(client, _m(acc, 'net_realized_pnl_24h'))
self.realized_cap: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'realized_cap'))
self.realized_cap_cents: MetricPattern1[Cents] = MetricPattern1(client, _m(acc, 'realized_cap_cents'))
self.realized_cap_delta: ChangeRatePattern[CentsSigned] = ChangeRatePattern(client, _m(acc, 'realized_cap_delta'))
@@ -2227,7 +2231,8 @@ class MvrvNegNetRealizedSoprValuePattern:
"""Create pattern node with accumulated metric name."""
self.mvrv: MetricPattern1[StoredF32] = MetricPattern1(client, _m(acc, 'mvrv'))
self.neg_realized_loss: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'neg_realized_loss'))
self.net_realized_pnl: CumulativeHeightPattern[CentsSigned] = CumulativeHeightPattern(client, _m(acc, 'net_realized_pnl'))
self.net_realized_pnl: MetricPattern1[CentsSigned] = MetricPattern1(client, _m(acc, 'net_realized_pnl'))
self.net_realized_pnl_sum: _24hPattern[CentsSigned] = _24hPattern(client, _m(acc, 'net_realized_pnl_24h'))
self.realized_cap: MetricPattern1[Dollars] = MetricPattern1(client, _m(acc, 'realized_cap'))
self.realized_cap_cents: MetricPattern1[Cents] = MetricPattern1(client, _m(acc, 'realized_cap_cents'))
self.realized_cap_delta: ChangeRatePattern[CentsSigned] = ChangeRatePattern(client, _m(acc, 'realized_cap_delta'))