Skip to main content

GuidanceThresholds

Struct GuidanceThresholds 

Source
pub struct GuidanceThresholds {
    pub stop_loss_ratio: f64,
    pub take_profit_ratio: f64,
}
Expand description

Threshold ratios used by compute_guidance. Decoupled from OptimizedParams so callers can supply optimizer-derived values when available and fall back to conservative defaults otherwise.

Fields§

§stop_loss_ratio: f64

Negative ratio of notional at which to exit on a loss (e.g. -0.02 = exit when unrealized loss reaches 2% of entry_price * qty).

§take_profit_ratio: f64

Positive ratio of notional at which to reduce on profit (e.g. 0.05 = trim when unrealized gain reaches 5% of entry_price * qty).

Implementations§

Source§

impl GuidanceThresholds

Source

pub fn from_optimized_params(params: &OptimizedParams) -> Self

Derive thresholds from optimizer-tuned params.

Both stop_loss_ratio and take_profit_ratio are now learnable via OptimizedParams::stop_loss_pct and OptimizedParams::take_profit_pct respectively. stop_loss_pct is stored as a positive percentage (e.g. 2.0) and converted to a negative ratio here (-0.02).

Source

pub fn widen_for_volatility(self, atr_pct: f64, atr_multiplier: f64) -> Self

Loosen the stop-loss so it sits outside normal ATR-sized noise.

atr_pct is recent ATR as a percentage of price (the volatility hint carried on PositionEvent); atr_multiplier is how many ATRs the optimizer places its trailing stop (reused here so the band matches the strategy’s own notion of “normal” movement). If the ATR band (atr_multiplier * atr_pct) is wider than the configured stop, the stop is widened to match — otherwise the configured stop is already conservative and is kept.

Take-profit is intentionally left untouched: it’s a target, not noise protection. Non-positive inputs are a no-op, so callers can pass values straight through without pre-checking.

Source

pub fn tighten_stop_for_fear(self, fear: f64) -> Self

Tighten the stop toward break-even in proportion to elevated fear.

The inverse of [widen_for_volatility]: under amygdala stress we want a losing position on a shorter leash. fear is expected in the elevated band [FEAR_ELEVATED_LEVEL, FEAR_EXIT_LEVEL); the stop magnitude scales linearly from full width (at the bottom of the band) down to [STOP_TIGHTEN_FLOOR] of its width (at the top). It never reaches zero, so a position isn’t exited on the first tick of an adverse move. Fear below the elevated band is a no-op.

Trait Implementations§

Source§

impl Clone for GuidanceThresholds

Source§

fn clone(&self) -> GuidanceThresholds

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for GuidanceThresholds

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for GuidanceThresholds

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl PartialEq for GuidanceThresholds

Source§

fn eq(&self, other: &GuidanceThresholds) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for GuidanceThresholds

Source§

impl StructuralPartialEq for GuidanceThresholds

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more