Struct InstanceBuilder

Source
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>

Source

pub fn with_path(self, path: &'a str) -> Self

Sets the source path used for diagnostics.

Source

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?;
Source

pub fn with_locale(self, locale: &'a str) -> Self

Sets the locale passed into compilation/typechecking.

Source

pub fn with_input_sessions(self, sessions: InputSessions) -> Self

Configures which trading sessions are accepted as input.

Source

pub fn with_background_color(self, color: impl Into<Option<Color>>) -> Self

Overrides the chart background color used by visual outputs.

Source

pub fn with_last_info(self, last_info: impl Into<Option<LastInfo>>) -> Self

Provides the last-bar metadata used by some runtime features.

Source

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).

Source

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.

Source

pub fn with_output_mode(self, mode: OutputMode) -> Self

Sets the output mode for series graph data.

Source§

impl<'a, L> InstanceBuilder<'a, L>
where L: LibraryLoader,

Source

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.

Source

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> 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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V