pub struct ScheduledCashFlow {
pub amount: f64,
pub frequency: ScheduleFrequency,
pub start_date: Option<String>,
pub end_date: Option<String>,
pub allocation: CashFlowAllocation,
}Expand description
A recurring cash flow schedule for the portfolio.
Generates automatic additions or withdrawals at regular intervals during the performance simulation. Multiple schedules can be combined (e.g. monthly contributions + quarterly withdrawals).
§Fields
amount— Dollar amount per occurrence. Positive for additions, negative for withdrawals.frequency— How often the cash flow occurs.start_date— Optional start date ("YYYY-MM-DD"). IfNone, starts from the first portfolio date.end_date— Optional end date ("YYYY-MM-DD"). IfNone, continues until the last portfolio date.allocation— How the cash flow is distributed across assets.
§Example
use finalytics::prelude::*;
// $2,000/month DCA distributed by target weights
let dca = ScheduledCashFlow {
amount: 2_000.0,
frequency: ScheduleFrequency::Monthly,
start_date: None,
end_date: None,
allocation: CashFlowAllocation::ProRata,
};
// $5,000/quarter withdrawal from overweight assets
let withdrawal = ScheduledCashFlow {
amount: -5_000.0,
frequency: ScheduleFrequency::Quarterly,
start_date: Some("2024-06-01".to_string()),
end_date: None,
allocation: CashFlowAllocation::Rebalance,
};Fields§
§amount: f64Dollar amount per occurrence: positive = addition, negative = withdrawal.
frequency: ScheduleFrequencyHow often this cash flow occurs.
start_date: Option<String>Optional start date. If None, starts from the first portfolio date.
end_date: Option<String>Optional end date. If None, continues until the last portfolio date.
allocation: CashFlowAllocationHow the cash flow is distributed across assets.
Trait Implementations§
Source§impl Clone for ScheduledCashFlow
impl Clone for ScheduledCashFlow
Source§fn clone(&self) -> ScheduledCashFlow
fn clone(&self) -> ScheduledCashFlow
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for ScheduledCashFlow
impl RefUnwindSafe for ScheduledCashFlow
impl Send for ScheduledCashFlow
impl Sync for ScheduledCashFlow
impl Unpin for ScheduledCashFlow
impl UnsafeUnpin for ScheduledCashFlow
impl UnwindSafe for ScheduledCashFlow
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Key for Twhere
T: Clone,
impl<T> Key for Twhere
T: Clone,
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.