mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-07-25 09:48:10 -07:00
crates: snapshot
This commit is contained in:
@@ -111,6 +111,7 @@ impl Vecs {
|
||||
v0,
|
||||
indexes,
|
||||
true,
|
||||
price,
|
||||
)?
|
||||
};
|
||||
}
|
||||
|
||||
@@ -55,6 +55,7 @@ impl ComputedRatioVecsFromDateIndex {
|
||||
version: Version,
|
||||
indexes: &indexes::Vecs,
|
||||
extended: bool,
|
||||
price_vecs: Option<&price::Vecs>,
|
||||
) -> Result<Self> {
|
||||
let opts = VecBuilderOptions::default().add_last();
|
||||
let v = version + VERSION;
|
||||
@@ -88,7 +89,7 @@ impl ComputedRatioVecsFromDateIndex {
|
||||
v,
|
||||
indexes,
|
||||
StandardDeviationVecsOptions::default().add_all(),
|
||||
price.as_ref(),
|
||||
price_vecs,
|
||||
)
|
||||
.unwrap()
|
||||
};
|
||||
|
||||
@@ -2,16 +2,16 @@ use std::mem;
|
||||
|
||||
use brk_error::Result;
|
||||
use brk_traversable::Traversable;
|
||||
use brk_types::{Date, DateIndex, Dollars, StoredF32, Version};
|
||||
use brk_types::{Close, Date, DateIndex, Dollars, StoredF32, Version};
|
||||
use vecdb::{
|
||||
AnyStoredVec, AnyVec, CollectableVec, Database, EagerVec, Exit, GenericStoredVec, IterableVec,
|
||||
PcoVec, VecIndex,
|
||||
};
|
||||
|
||||
use crate::{Indexes, grouped::source::Source, indexes, utils::OptionExt};
|
||||
use crate::{Indexes, grouped::source::Source, indexes, price, utils::OptionExt};
|
||||
|
||||
use super::{
|
||||
ComputedVecsFromDateIndex, LazyVecsFrom2FromDateIndex, PriceTimesRatio, VecBuilderOptions,
|
||||
ClosePriceTimesRatio, ComputedVecsFromDateIndex, LazyVecsFrom2FromDateIndex, VecBuilderOptions,
|
||||
};
|
||||
|
||||
#[derive(Clone, Traversable)]
|
||||
@@ -37,19 +37,19 @@ pub struct ComputedStandardDeviationVecsFromDateIndex {
|
||||
pub m2_5sd: Option<ComputedVecsFromDateIndex<StoredF32>>,
|
||||
pub m3sd: Option<ComputedVecsFromDateIndex<StoredF32>>,
|
||||
|
||||
pub _0sd_usd: Option<LazyVecsFrom2FromDateIndex<Dollars, Dollars, StoredF32>>,
|
||||
pub p0_5sd_usd: Option<LazyVecsFrom2FromDateIndex<Dollars, Dollars, StoredF32>>,
|
||||
pub p1sd_usd: Option<LazyVecsFrom2FromDateIndex<Dollars, Dollars, StoredF32>>,
|
||||
pub p1_5sd_usd: Option<LazyVecsFrom2FromDateIndex<Dollars, Dollars, StoredF32>>,
|
||||
pub p2sd_usd: Option<LazyVecsFrom2FromDateIndex<Dollars, Dollars, StoredF32>>,
|
||||
pub p2_5sd_usd: Option<LazyVecsFrom2FromDateIndex<Dollars, Dollars, StoredF32>>,
|
||||
pub p3sd_usd: Option<LazyVecsFrom2FromDateIndex<Dollars, Dollars, StoredF32>>,
|
||||
pub m0_5sd_usd: Option<LazyVecsFrom2FromDateIndex<Dollars, Dollars, StoredF32>>,
|
||||
pub m1sd_usd: Option<LazyVecsFrom2FromDateIndex<Dollars, Dollars, StoredF32>>,
|
||||
pub m1_5sd_usd: Option<LazyVecsFrom2FromDateIndex<Dollars, Dollars, StoredF32>>,
|
||||
pub m2sd_usd: Option<LazyVecsFrom2FromDateIndex<Dollars, Dollars, StoredF32>>,
|
||||
pub m2_5sd_usd: Option<LazyVecsFrom2FromDateIndex<Dollars, Dollars, StoredF32>>,
|
||||
pub m3sd_usd: Option<LazyVecsFrom2FromDateIndex<Dollars, Dollars, StoredF32>>,
|
||||
pub _0sd_usd: Option<LazyVecsFrom2FromDateIndex<Dollars, Close<Dollars>, StoredF32>>,
|
||||
pub p0_5sd_usd: Option<LazyVecsFrom2FromDateIndex<Dollars, Close<Dollars>, StoredF32>>,
|
||||
pub p1sd_usd: Option<LazyVecsFrom2FromDateIndex<Dollars, Close<Dollars>, StoredF32>>,
|
||||
pub p1_5sd_usd: Option<LazyVecsFrom2FromDateIndex<Dollars, Close<Dollars>, StoredF32>>,
|
||||
pub p2sd_usd: Option<LazyVecsFrom2FromDateIndex<Dollars, Close<Dollars>, StoredF32>>,
|
||||
pub p2_5sd_usd: Option<LazyVecsFrom2FromDateIndex<Dollars, Close<Dollars>, StoredF32>>,
|
||||
pub p3sd_usd: Option<LazyVecsFrom2FromDateIndex<Dollars, Close<Dollars>, StoredF32>>,
|
||||
pub m0_5sd_usd: Option<LazyVecsFrom2FromDateIndex<Dollars, Close<Dollars>, StoredF32>>,
|
||||
pub m1sd_usd: Option<LazyVecsFrom2FromDateIndex<Dollars, Close<Dollars>, StoredF32>>,
|
||||
pub m1_5sd_usd: Option<LazyVecsFrom2FromDateIndex<Dollars, Close<Dollars>, StoredF32>>,
|
||||
pub m2sd_usd: Option<LazyVecsFrom2FromDateIndex<Dollars, Close<Dollars>, StoredF32>>,
|
||||
pub m2_5sd_usd: Option<LazyVecsFrom2FromDateIndex<Dollars, Close<Dollars>, StoredF32>>,
|
||||
pub m3sd_usd: Option<LazyVecsFrom2FromDateIndex<Dollars, Close<Dollars>, StoredF32>>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Default)]
|
||||
@@ -106,7 +106,7 @@ impl ComputedStandardDeviationVecsFromDateIndex {
|
||||
parent_version: Version,
|
||||
indexes: &indexes::Vecs,
|
||||
options: StandardDeviationVecsOptions,
|
||||
price: Option<&ComputedVecsFromDateIndex<Dollars>>,
|
||||
price_vecs: Option<&price::Vecs>,
|
||||
) -> Result<Self> {
|
||||
let opts = VecBuilderOptions::default().add_last();
|
||||
let version = parent_version + Version::ONE;
|
||||
@@ -143,11 +143,12 @@ impl ComputedStandardDeviationVecsFromDateIndex {
|
||||
// Create lazy USD vecs from price and band sources
|
||||
macro_rules! lazy_usd {
|
||||
($band:expr, $suffix:expr) => {
|
||||
price
|
||||
price_vecs
|
||||
.map(|p| &p.timeindexes_to_price_close)
|
||||
.zip($band.as_ref())
|
||||
.filter(|_| options.price_bands())
|
||||
.map(|(p, b)| {
|
||||
LazyVecsFrom2FromDateIndex::from_computed::<PriceTimesRatio>(
|
||||
LazyVecsFrom2FromDateIndex::from_computed::<ClosePriceTimesRatio>(
|
||||
&format!("{name}_{}", $suffix),
|
||||
version,
|
||||
p,
|
||||
|
||||
@@ -135,6 +135,17 @@ impl BinaryTransform<Dollars, StoredF32, Dollars> for PriceTimesRatio {
|
||||
}
|
||||
}
|
||||
|
||||
/// Close<Dollars> * StoredF32 -> Dollars (price × ratio)
|
||||
/// Same as PriceTimesRatio but accepts Close<Dollars> price source.
|
||||
pub struct ClosePriceTimesRatio;
|
||||
|
||||
impl BinaryTransform<Close<Dollars>, StoredF32, Dollars> for ClosePriceTimesRatio {
|
||||
#[inline(always)]
|
||||
fn apply(price: Close<Dollars>, ratio: StoredF32) -> Dollars {
|
||||
*price * ratio
|
||||
}
|
||||
}
|
||||
|
||||
/// Close<Dollars> * Sats -> Dollars (price × sats / 1e8)
|
||||
/// Same as PriceTimesSats but accepts Close<Dollars> price source.
|
||||
pub struct ClosePriceTimesSats;
|
||||
|
||||
@@ -65,6 +65,7 @@ impl Vecs {
|
||||
version + v0,
|
||||
indexes,
|
||||
true,
|
||||
price,
|
||||
)?
|
||||
};
|
||||
}
|
||||
|
||||
@@ -258,6 +258,7 @@ impl RealizedMetrics {
|
||||
cfg.version + v0,
|
||||
cfg.indexes,
|
||||
extended,
|
||||
cfg.price,
|
||||
)?,
|
||||
indexes_to_realized_price,
|
||||
indexes_to_realized_cap_rel_to_own_market_cap: extended
|
||||
|
||||
Reference in New Issue
Block a user