pub struct InstanceBuilder<'a, L> { /* private fields */ }Expand description
Builder for compiling a script into an executable Instance.
Implementations§
Source§impl<'a, L> InstanceBuilder<'a, L>
impl<'a, L> InstanceBuilder<'a, L>
Sourcepub fn with_input_value(self, id: usize, value: impl Serialize) -> Self
pub fn with_input_value(self, id: usize, value: impl Serialize) -> Self
Set the value of an input by its index.
The id corresponds to the position of the input in the script’s
input.*() declarations (0-based). Use
script_info() to inspect available inputs and
their types.
§Examples
use openpine_vm::{Candlestick, Instance, TimeFrame};
let source = r#"
//@version=6
indicator("With Inputs")
int length = input.int(14, "Length")
plot(ta.sma(close, length))
"#;
let provider = Vec::<Candlestick>::new();
let instance = Instance::builder(provider, source, TimeFrame::days(1), "NASDAQ:AAPL")
.with_input_value(0, 20) // Override "Length" from 14 to 20
.build()
.await?;Sourcepub fn with_locale(self, locale: &'a str) -> Self
pub fn with_locale(self, locale: &'a str) -> Self
Sets the locale passed into compilation/typechecking.
Sourcepub fn with_input_sessions(self, sessions: InputSessions) -> Self
pub fn with_input_sessions(self, sessions: InputSessions) -> Self
Configures which trading sessions are accepted as input.
Sourcepub fn with_background_color(self, color: impl Into<Option<Color>>) -> Self
pub fn with_background_color(self, color: impl Into<Option<Color>>) -> Self
Overrides the chart background color used by visual outputs.
Sourcepub fn with_last_info(self, last_info: impl Into<Option<LastInfo>>) -> Self
pub fn with_last_info(self, last_info: impl Into<Option<LastInfo>>) -> Self
Provides the last-bar metadata used by some runtime features.
Sourcepub fn with_currency_converter(
self,
converter: Box<dyn CurrencyConverter>,
) -> Self
pub fn with_currency_converter( self, converter: Box<dyn CurrencyConverter>, ) -> Self
Sets a custom currency converter for cross-currency backtesting.
The converter is called by strategy.convert_to_account() and
strategy.convert_to_symbol(). When not set, an identity converter
is used (returns the input value unchanged).
Sourcepub fn with_execution_limits(self, limits: ExecutionLimits) -> Self
pub fn with_execution_limits(self, limits: ExecutionLimits) -> Self
Configures runtime execution limits for the VM.
See ExecutionLimits for available options. When not called,
sensible defaults are used.
Sourcepub fn with_output_mode(self, mode: OutputMode) -> Self
pub fn with_output_mode(self, mode: OutputMode) -> Self
Sets the output mode for series graph data.
OutputMode::Chart(default): native functions write directly to the chart. NoDrawEventevents are emitted.OutputMode::Stream: native functions emitDrawEventevents instead of updating the chart.
Source§impl<'a, L> InstanceBuilder<'a, L>where
L: LibraryLoader,
impl<'a, L> InstanceBuilder<'a, L>where
L: LibraryLoader,
Sourcepub fn with_library_loader<Q>(
self,
library_loader: Q,
) -> InstanceBuilder<'a, CombinedLoader<Q, L>>where
Q: LibraryLoader,
pub fn with_library_loader<Q>(
self,
library_loader: Q,
) -> InstanceBuilder<'a, CombinedLoader<Q, L>>where
Q: LibraryLoader,
Chains an additional library loader in front of the current loader.
Sourcepub async fn build(self) -> Result<Instance, Error>
pub async fn build(self) -> Result<Instance, Error>
Compiles the script and builds a runnable Instance.
This compiles the Pine Script source, resolves inputs, and prepares the VM for execution. Returns an error if compilation fails or if an invalid input value was provided.
§Examples
use openpine_vm::{Candlestick, Instance, TimeFrame};
let source = r#"
//@version=6
indicator("SMA Example")
plot(ta.sma(close, 20))
"#;
let provider = Vec::<Candlestick>::new();
let instance = Instance::builder(provider, source, TimeFrame::days(1), "NASDAQ:AAPL")
.build()
.await?;
// The instance is now ready to receive candlestick data via `run()`
println!("Script type: {:?}", instance.script_info().script_type);Auto Trait Implementations§
impl<'a, L> Freeze for InstanceBuilder<'a, L>where
L: Freeze,
impl<'a, L> !RefUnwindSafe for InstanceBuilder<'a, L>
impl<'a, L> !Send for InstanceBuilder<'a, L>
impl<'a, L> !Sync for InstanceBuilder<'a, L>
impl<'a, L> Unpin for InstanceBuilder<'a, L>where
L: Unpin,
impl<'a, L> !UnwindSafe for InstanceBuilder<'a, L>
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
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>
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>
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 more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.