mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-07-21 16:08:10 -07:00
global: snapshot
This commit is contained in:
@@ -5,7 +5,7 @@ use vecdb::Database;
|
||||
use super::Vecs;
|
||||
use crate::{
|
||||
indexes,
|
||||
internal::{ComputedPerBlock, DaysToYears, DerivedResolutions, PercentPerBlock, Price},
|
||||
internal::{PerBlock, DaysToYears, DerivedResolutions, PercentPerBlock, Price},
|
||||
};
|
||||
|
||||
const VERSION: Version = Version::ONE;
|
||||
@@ -21,7 +21,7 @@ impl Vecs {
|
||||
let high = Price::forced_import(db, "price_ath", v, indexes)?;
|
||||
|
||||
let max_days_between =
|
||||
ComputedPerBlock::forced_import(db, "max_days_between_price_ath", v, indexes)?;
|
||||
PerBlock::forced_import(db, "max_days_between_price_ath", v, indexes)?;
|
||||
|
||||
let max_years_between = DerivedResolutions::from_computed::<DaysToYears>(
|
||||
"max_years_between_price_ath",
|
||||
@@ -30,7 +30,7 @@ impl Vecs {
|
||||
);
|
||||
|
||||
let days_since =
|
||||
ComputedPerBlock::forced_import(db, "days_since_price_ath", v, indexes)?;
|
||||
PerBlock::forced_import(db, "days_since_price_ath", v, indexes)?;
|
||||
|
||||
let years_since = DerivedResolutions::from_computed::<DaysToYears>(
|
||||
"years_since_price_ath",
|
||||
|
||||
@@ -2,14 +2,14 @@ use brk_traversable::Traversable;
|
||||
use brk_types::{BasisPointsSigned16, Cents, StoredF32};
|
||||
use vecdb::{Rw, StorageMode};
|
||||
|
||||
use crate::internal::{ComputedPerBlock, DerivedResolutions, PercentPerBlock, Price};
|
||||
use crate::internal::{PerBlock, DerivedResolutions, PercentPerBlock, Price};
|
||||
|
||||
#[derive(Traversable)]
|
||||
pub struct Vecs<M: StorageMode = Rw> {
|
||||
pub high: Price<ComputedPerBlock<Cents, M>>,
|
||||
pub high: Price<PerBlock<Cents, M>>,
|
||||
pub drawdown: PercentPerBlock<BasisPointsSigned16, M>,
|
||||
pub days_since: ComputedPerBlock<StoredF32, M>,
|
||||
pub days_since: PerBlock<StoredF32, M>,
|
||||
pub years_since: DerivedResolutions<StoredF32, StoredF32>,
|
||||
pub max_days_between: ComputedPerBlock<StoredF32, M>,
|
||||
pub max_days_between: PerBlock<StoredF32, M>,
|
||||
pub max_years_between: DerivedResolutions<StoredF32, StoredF32>,
|
||||
}
|
||||
|
||||
@@ -3,12 +3,12 @@ use brk_types::{BasisPointsSigned32, Cents, Height, Sats};
|
||||
use vecdb::{EagerVec, PcoVec, Rw, StorageMode};
|
||||
|
||||
use super::{ByDcaCagr, ByDcaClass, ByDcaPeriod};
|
||||
use crate::internal::{AmountPerBlock, ComputedPerBlock, PercentPerBlock, Price};
|
||||
use crate::internal::{AmountPerBlock, PerBlock, PercentPerBlock, Price};
|
||||
|
||||
#[derive(Traversable)]
|
||||
pub struct PeriodVecs<M: StorageMode = Rw> {
|
||||
pub stack: ByDcaPeriod<AmountPerBlock<M>>,
|
||||
pub cost_basis: ByDcaPeriod<Price<ComputedPerBlock<Cents, M>>>,
|
||||
pub cost_basis: ByDcaPeriod<Price<PerBlock<Cents, M>>>,
|
||||
pub r#return: ByDcaPeriod<PercentPerBlock<BasisPointsSigned32, M>>,
|
||||
pub cagr: ByDcaCagr<PercentPerBlock<BasisPointsSigned32, M>>,
|
||||
pub lump_sum_stack: ByDcaPeriod<AmountPerBlock<M>>,
|
||||
@@ -18,7 +18,7 @@ pub struct PeriodVecs<M: StorageMode = Rw> {
|
||||
#[derive(Traversable)]
|
||||
pub struct ClassVecs<M: StorageMode = Rw> {
|
||||
pub stack: ByDcaClass<AmountPerBlock<M>>,
|
||||
pub cost_basis: ByDcaClass<Price<ComputedPerBlock<Cents, M>>>,
|
||||
pub cost_basis: ByDcaClass<Price<PerBlock<Cents, M>>>,
|
||||
pub r#return: ByDcaClass<PercentPerBlock<BasisPointsSigned32, M>>,
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ use brk_types::Version;
|
||||
|
||||
use crate::{
|
||||
indexes,
|
||||
internal::{finalize_db, open_db},
|
||||
internal::db_utils::{finalize_db, open_db},
|
||||
};
|
||||
|
||||
use super::{
|
||||
|
||||
@@ -3,9 +3,9 @@ use brk_types::Cents;
|
||||
use vecdb::{Rw, StorageMode};
|
||||
|
||||
use super::ByLookbackPeriod;
|
||||
use crate::internal::{ComputedPerBlock, Price};
|
||||
use crate::internal::{PerBlock, Price};
|
||||
#[derive(Traversable)]
|
||||
pub struct Vecs<M: StorageMode = Rw> {
|
||||
#[traversable(flatten)]
|
||||
pub price_lookback: ByLookbackPeriod<Price<ComputedPerBlock<Cents, M>>>,
|
||||
pub price_lookback: ByLookbackPeriod<Price<PerBlock<Cents, M>>>,
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ use vecdb::Database;
|
||||
use super::{vecs::PriceMinMaxVecs, Vecs};
|
||||
use crate::{
|
||||
indexes,
|
||||
internal::{ComputedPerBlock, PercentPerBlock, Price},
|
||||
internal::{PerBlock, PercentPerBlock, Price},
|
||||
};
|
||||
|
||||
impl Vecs {
|
||||
@@ -29,13 +29,13 @@ impl Vecs {
|
||||
_1m: Price::forced_import(db, "price_max_1m", version + v1, indexes)?,
|
||||
_1y: Price::forced_import(db, "price_max_1y", version + v1, indexes)?,
|
||||
},
|
||||
true_range: ComputedPerBlock::forced_import(
|
||||
true_range: PerBlock::forced_import(
|
||||
db,
|
||||
"price_true_range",
|
||||
version + v1,
|
||||
indexes,
|
||||
)?,
|
||||
true_range_sum_2w: ComputedPerBlock::forced_import(
|
||||
true_range_sum_2w: PerBlock::forced_import(
|
||||
db,
|
||||
"price_true_range_sum_2w",
|
||||
version + v1,
|
||||
|
||||
@@ -2,21 +2,21 @@ use brk_traversable::Traversable;
|
||||
use brk_types::{BasisPoints16, Cents, StoredF32};
|
||||
use vecdb::{Rw, StorageMode};
|
||||
|
||||
use crate::internal::{ComputedPerBlock, PercentPerBlock, Price};
|
||||
use crate::internal::{PerBlock, PercentPerBlock, Price};
|
||||
|
||||
#[derive(Traversable)]
|
||||
pub struct PriceMinMaxVecs<M: StorageMode = Rw> {
|
||||
pub _1w: Price<ComputedPerBlock<Cents, M>>,
|
||||
pub _2w: Price<ComputedPerBlock<Cents, M>>,
|
||||
pub _1m: Price<ComputedPerBlock<Cents, M>>,
|
||||
pub _1y: Price<ComputedPerBlock<Cents, M>>,
|
||||
pub _1w: Price<PerBlock<Cents, M>>,
|
||||
pub _2w: Price<PerBlock<Cents, M>>,
|
||||
pub _1m: Price<PerBlock<Cents, M>>,
|
||||
pub _1y: Price<PerBlock<Cents, M>>,
|
||||
}
|
||||
|
||||
#[derive(Traversable)]
|
||||
pub struct Vecs<M: StorageMode = Rw> {
|
||||
pub min: PriceMinMaxVecs<M>,
|
||||
pub max: PriceMinMaxVecs<M>,
|
||||
pub true_range: ComputedPerBlock<StoredF32, M>,
|
||||
pub true_range_sum_2w: ComputedPerBlock<StoredF32, M>,
|
||||
pub true_range: PerBlock<StoredF32, M>,
|
||||
pub true_range_sum_2w: PerBlock<StoredF32, M>,
|
||||
pub choppiness_index_2w: PercentPerBlock<BasisPoints16, M>,
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ use vecdb::Database;
|
||||
use super::{MacdChain, RsiChain, Vecs};
|
||||
use crate::{
|
||||
indexes,
|
||||
internal::{ComputedPerBlock, PercentPerBlock, RatioPerBlock, Windows},
|
||||
internal::{PerBlock, PercentPerBlock, RatioPerBlock, Windows},
|
||||
};
|
||||
|
||||
const VERSION: Version = Version::new(2);
|
||||
@@ -19,7 +19,7 @@ impl RsiChain {
|
||||
) -> Result<Self> {
|
||||
macro_rules! import {
|
||||
($name:expr) => {
|
||||
ComputedPerBlock::forced_import(
|
||||
PerBlock::forced_import(
|
||||
db,
|
||||
&format!("rsi_{}_{}", $name, tf),
|
||||
version,
|
||||
@@ -67,11 +67,11 @@ impl MacdChain {
|
||||
indexes: &indexes::Vecs,
|
||||
) -> Result<Self> {
|
||||
let line =
|
||||
ComputedPerBlock::forced_import(db, &format!("macd_line_{tf}"), version, indexes)?;
|
||||
PerBlock::forced_import(db, &format!("macd_line_{tf}"), version, indexes)?;
|
||||
let signal =
|
||||
ComputedPerBlock::forced_import(db, &format!("macd_signal_{tf}"), version, indexes)?;
|
||||
PerBlock::forced_import(db, &format!("macd_signal_{tf}"), version, indexes)?;
|
||||
|
||||
let histogram = ComputedPerBlock::forced_import(
|
||||
let histogram = PerBlock::forced_import(
|
||||
db,
|
||||
&format!("macd_histogram_{tf}"),
|
||||
version,
|
||||
@@ -79,13 +79,13 @@ impl MacdChain {
|
||||
)?;
|
||||
|
||||
Ok(Self {
|
||||
ema_fast: ComputedPerBlock::forced_import(
|
||||
ema_fast: PerBlock::forced_import(
|
||||
db,
|
||||
&format!("macd_ema_fast_{tf}"),
|
||||
version,
|
||||
indexes,
|
||||
)?,
|
||||
ema_slow: ComputedPerBlock::forced_import(
|
||||
ema_slow: PerBlock::forced_import(
|
||||
db,
|
||||
&format!("macd_ema_slow_{tf}"),
|
||||
version,
|
||||
|
||||
@@ -2,14 +2,14 @@ use brk_traversable::Traversable;
|
||||
use brk_types::{BasisPoints16, BasisPoints32, StoredF32};
|
||||
use vecdb::{Rw, StorageMode};
|
||||
|
||||
use crate::internal::{ComputedPerBlock, PercentPerBlock, RatioPerBlock, Windows};
|
||||
use crate::internal::{PerBlock, PercentPerBlock, RatioPerBlock, Windows};
|
||||
|
||||
#[derive(Traversable)]
|
||||
pub struct RsiChain<M: StorageMode = Rw> {
|
||||
pub gains: ComputedPerBlock<StoredF32, M>,
|
||||
pub losses: ComputedPerBlock<StoredF32, M>,
|
||||
pub average_gain: ComputedPerBlock<StoredF32, M>,
|
||||
pub average_loss: ComputedPerBlock<StoredF32, M>,
|
||||
pub gains: PerBlock<StoredF32, M>,
|
||||
pub losses: PerBlock<StoredF32, M>,
|
||||
pub average_gain: PerBlock<StoredF32, M>,
|
||||
pub average_loss: PerBlock<StoredF32, M>,
|
||||
pub rsi: PercentPerBlock<BasisPoints16, M>,
|
||||
pub rsi_min: PercentPerBlock<BasisPoints16, M>,
|
||||
pub rsi_max: PercentPerBlock<BasisPoints16, M>,
|
||||
@@ -20,11 +20,11 @@ pub struct RsiChain<M: StorageMode = Rw> {
|
||||
|
||||
#[derive(Traversable)]
|
||||
pub struct MacdChain<M: StorageMode = Rw> {
|
||||
pub ema_fast: ComputedPerBlock<StoredF32, M>,
|
||||
pub ema_slow: ComputedPerBlock<StoredF32, M>,
|
||||
pub line: ComputedPerBlock<StoredF32, M>,
|
||||
pub signal: ComputedPerBlock<StoredF32, M>,
|
||||
pub histogram: ComputedPerBlock<StoredF32, M>,
|
||||
pub ema_fast: PerBlock<StoredF32, M>,
|
||||
pub ema_slow: PerBlock<StoredF32, M>,
|
||||
pub line: PerBlock<StoredF32, M>,
|
||||
pub signal: PerBlock<StoredF32, M>,
|
||||
pub histogram: PerBlock<StoredF32, M>,
|
||||
}
|
||||
|
||||
#[derive(Traversable)]
|
||||
|
||||
Reference in New Issue
Block a user