mod bar_primitives;
mod config;
mod descriptor;
mod error;
mod expression;
mod material;
mod momentum_primitives;
mod normalization_primitives;
mod numeric;
mod recursive_primitives;
mod runtime;
mod series_primitives;
mod statistical_primitives;
mod structure_primitives;
mod template;
mod temporal_primitives;
mod value;
pub use bar_primitives::{
MATERIAL_BAR_OVERLAP, MATERIAL_BODY_DIRECTION_FRACTION, MATERIAL_BODY_ENGULFING,
MATERIAL_BODY_FRACTION, MATERIAL_CLOSE_LOCATION_VALUE, MATERIAL_CLOSE_POSITION,
MATERIAL_ENGULF_SIZE_RATIO, MATERIAL_INSIDE_BAR, MATERIAL_LOWER_WICK_FRACTION,
MATERIAL_NARROW_RANGE, MATERIAL_OUTSIDE_BAR, MATERIAL_RELATIVE_RANGE, MATERIAL_RETURN_LOG,
MATERIAL_ROC, MATERIAL_THREE_BAR_GAP_DOWN, MATERIAL_THREE_BAR_GAP_UP,
MATERIAL_UPPER_WICK_FRACTION, MATERIAL_WIDE_RANGE,
};
pub use config::{
ActionTemplate, AssignmentConfig, BarField, ConfiguredActionKind, DecisionKind,
DecisionTemplate, Expr, FeedbackField, MAX_ACTIONS, MAX_ASSIGNMENTS, MAX_COMPLETED_BARS,
MAX_ENTRY_TARGETS, MAX_EXPR_DEPTH, MAX_EXPR_NODES, MAX_LEGS, MAX_MATERIAL_ARGS,
MAX_MATERIAL_INPUTS, MAX_MATERIAL_LOOKBACK, MAX_MATERIAL_STATE_BYTES, MAX_MATERIALS,
MAX_NAMED_VALUES, MAX_NOTES, MAX_OUTPUT_COMMANDS, MAX_OUTPUT_NOTES, MAX_PARAMETER_OPTIONS,
MAX_PARAMETERS, MAX_PENDING_FEEDBACK, MAX_SOURCES, MAX_STATES, MAX_TRANSITIONS, MAX_VARIABLES,
MaterialArg, MaterialArgs, MaterialConfig, MaterialParams, NamedExpr, NoteKind, NoteTemplate,
ParameterBinding, ParameterConfig, ParameterKind, ParameterValue, PositionField, SourceId,
StateConfig, StrategyConfig, TransitionConfig, VariableConfig,
};
pub use descriptor::{
BarShapeCalculation, BarStructureCalculation, MaDerivativeCalculation, MomentumCalculation,
MovingAverageCalculation, NormalizedCalculation, NumericCalculation, NumericDescriptor,
NumericInputs, NumericMissingPolicy, NumericRange, NumericUnit, PriceChangeCalculation,
PriceInputCalculation, RecursiveCalculation, StatisticalCalculation,
};
pub use error::{CompileError, EvaluationError};
pub use material::{
CommandFact, CommandFeedback, CommandTerminalStatus, CompletedBar, CompletedBarRequirement,
CompletedBarUpdate, ConfiguredStrategyRequirements, EntryRequirement, MATERIAL_ATR,
MATERIAL_BAR_FIELD, MATERIAL_BARS_SINCE_OPEN, MATERIAL_CANCELLATION_APPLIED,
MATERIAL_CANCELLATION_REJECTED, MATERIAL_CROSS_ABOVE, MATERIAL_CROSS_BELOW, MATERIAL_EMA,
MATERIAL_ENTRY_FILLED, MATERIAL_ENTRY_REJECTED, MATERIAL_INPUT_TIME, MATERIAL_LAG,
MATERIAL_POSITION_ADVERSE_EXCURSION, MATERIAL_POSITION_CLOSED, MATERIAL_POSITION_ENTRY_PRICE,
MATERIAL_POSITION_EXISTS, MATERIAL_POSITION_FAVORABLE_EXCURSION,
MATERIAL_POSITION_INITIAL_RISK, MATERIAL_POSITION_OPEN, MATERIAL_POSITION_OPENED_AT,
MATERIAL_POSITION_PENDING, MATERIAL_POSITION_REMAINING_SIZE, MATERIAL_POSITION_SIDE,
MATERIAL_POSITION_STOPLOSS, MATERIAL_READINESS, MATERIAL_ROLLING_MAX, MATERIAL_ROLLING_MIN,
MATERIAL_RSI, MATERIAL_SECONDS_OF_DAY, MATERIAL_SMA, MATERIAL_STDDEV, MATERIAL_STRICT_EMA,
MATERIAL_STRICT_SMA, MATERIAL_WEEKDAY, MaterialBuild, MaterialEvalContext, MaterialEvaluator,
MaterialFactory, MaterialLibrary, MaterialLookback, MaterialUpdateTrigger,
NamedInputRequirement, NamedValue, ParamKind, ParamSpec, StrategyInput, TradeSlotFacts,
TradeSlotState,
};
pub use momentum_primitives::{
MATERIAL_ADX, MATERIAL_CCI, MATERIAL_DI_DIFFERENCE, MATERIAL_DX, MATERIAL_MACD,
MATERIAL_MACD_HISTOGRAM, MATERIAL_MACD_SIGNAL, MATERIAL_MINUS_DI, MATERIAL_PLUS_DI,
MATERIAL_RSI_CHANGE, MATERIAL_STOCHASTIC_FAST_K, MATERIAL_STOCHASTIC_SLOW_D,
MATERIAL_STOCHASTIC_SLOW_K, MATERIAL_STRICT_RSI,
};
pub use normalization_primitives::{
MATERIAL_MA_ACCELERATION_ATR, MATERIAL_MA_DISTANCE_ATR, MATERIAL_MA_GAP_ATR,
MATERIAL_MA_SLOPE_ATR, MATERIAL_MACD_ATR, MATERIAL_MACD_HISTOGRAM_ATR,
MATERIAL_MACD_SIGNAL_ATR,
};
pub use recursive_primitives::{
MATERIAL_BB_KC_SQUEEZE, MATERIAL_BODY_ABS_ATR, MATERIAL_BODY_ABS_CURRENT_ATR,
MATERIAL_BODY_SIGNED_ATR, MATERIAL_BODY_SIGNED_CURRENT_ATR,
MATERIAL_DONCHIAN_LOWER_DISTANCE_ATR, MATERIAL_DONCHIAN_LOWER_DISTANCE_CURRENT_ATR,
MATERIAL_DONCHIAN_UPPER_DISTANCE_ATR, MATERIAL_DONCHIAN_UPPER_DISTANCE_CURRENT_ATR,
MATERIAL_GAP_ATR, MATERIAL_GAP_CURRENT_ATR, MATERIAL_HEIKIN_ASHI_CLOSE,
MATERIAL_HEIKIN_ASHI_HIGH, MATERIAL_HEIKIN_ASHI_LOW, MATERIAL_HEIKIN_ASHI_OPEN,
MATERIAL_HIGH_CHANGE_ATR, MATERIAL_HIGH_CHANGE_CURRENT_ATR, MATERIAL_HMA, MATERIAL_KAMA,
MATERIAL_KAMA_SMOOTHING_CONSTANT, MATERIAL_KELTNER_LOWER, MATERIAL_KELTNER_MIDDLE,
MATERIAL_KELTNER_UPPER, MATERIAL_LOW_CHANGE_ATR, MATERIAL_LOW_CHANGE_CURRENT_ATR,
MATERIAL_MOVE_ATR, MATERIAL_MOVE_CURRENT_ATR, MATERIAL_RANGE_ATR, MATERIAL_RANGE_CURRENT_ATR,
MATERIAL_SUPERTREND_DIRECTION, MATERIAL_SUPERTREND_LEVEL,
};
pub use series_primitives::{
MATERIAL_CLOSE_PRICE, MATERIAL_HL2, MATERIAL_HLC3, MATERIAL_MA_ACCELERATION,
MATERIAL_MA_ALIGNMENT, MATERIAL_MA_DISTANCE, MATERIAL_MA_GAP, MATERIAL_MA_SLOPE,
MATERIAL_OHLC4, MATERIAL_STRICT_ATR, MATERIAL_STRICT_RMA, MATERIAL_STRICT_WMA,
MATERIAL_TRUE_RANGE,
};
pub use statistical_primitives::{
MATERIAL_AROON_DOWN, MATERIAL_AROON_UP, MATERIAL_ATR_CHANGE, MATERIAL_ATR_PERCENT,
MATERIAL_ATR_RATIO, MATERIAL_BOLLINGER_LOWER, MATERIAL_BOLLINGER_PERCENT_B,
MATERIAL_BOLLINGER_UPPER, MATERIAL_BOLLINGER_WIDTH, MATERIAL_CHANNEL_MID_DISTANCE,
MATERIAL_CHANNEL_WIDTH, MATERIAL_CHOPPINESS, MATERIAL_DONCHIAN_LOWER, MATERIAL_DONCHIAN_UPPER,
MATERIAL_EFFICIENCY_RATIO, MATERIAL_EWMA_VOLATILITY, MATERIAL_HISTORICAL_PERCENTILE,
MATERIAL_MEDIAN_DEVIATION, MATERIAL_NEGATIVE_SEMIVARIANCE, MATERIAL_POSITIVE_SEMIVARIANCE,
MATERIAL_PREVIOUS_RANGE_POSITION, MATERIAL_RANGE_EXPANSION, MATERIAL_RANGE_POSITION,
MATERIAL_REALIZED_VARIANCE, MATERIAL_REALIZED_VOLATILITY, MATERIAL_REGRESSION_DEVIATION,
MATERIAL_REGRESSION_R2, MATERIAL_REGRESSION_RESIDUAL_RMS, MATERIAL_REGRESSION_SLOPE,
MATERIAL_RETURN_AUTOCORRELATION, MATERIAL_RETURN_RMS, MATERIAL_RETURN_STDDEV,
MATERIAL_ROLLING_HIGH_AGE, MATERIAL_ROLLING_LOW_AGE, MATERIAL_ROLLING_MEDIAN,
MATERIAL_VOLATILITY_ASYMMETRY, MATERIAL_ZSCORE,
};
pub use runtime::{
ConfiguredCommand, ConfiguredStrategy, Decision, NamedOutput, Note, OutputScalar, RelatedTrade,
StrategyOutput,
};
pub use template::{
StrategyTemplate, bind_expr, evaluate_parameter_expression, parameter_scalar_type,
parameter_value_label, require_boolean,
};
pub use structure_primitives::{
MATERIAL_CONFIRMED_LEVEL, MATERIAL_CONFIRMED_LINE_VALUE, MATERIAL_DIVERGENCE,
MATERIAL_LEG_AMPLITUDE, MATERIAL_LEG_DURATION, MATERIAL_LEVEL_AGE, MATERIAL_LEVEL_DISTANCE,
MATERIAL_RETRACEMENT, MATERIAL_SWING_CHANGE, MATERIAL_SWING_HIGHER, MATERIAL_SWING_LOWER,
};
pub use temporal_primitives::{
MATERIAL_BARS_SINCE_TRUE, MATERIAL_COUNT_TRUE, MATERIAL_DELTA, MATERIAL_FALL,
MATERIAL_HOLD_ALL, MATERIAL_RISE, MATERIAL_SEQUENCE_AB, MATERIAL_SETUP_LONG_BOUNDED_QUEUE,
MATERIAL_SETUP_LONG_REPLACE_LATEST, MATERIAL_SETUP_LONG_SINGLE_KEEP_FIRST,
MATERIAL_SETUP_SHORT_BOUNDED_QUEUE, MATERIAL_SETUP_SHORT_REPLACE_LATEST,
MATERIAL_SETUP_SHORT_SINGLE_KEEP_FIRST, MATERIAL_SHARE_TRUE, MATERIAL_STREAK_TRUE,
MATERIAL_STRICT_CROSS_ABOVE, MATERIAL_STRICT_CROSS_BELOW,
};
pub use value::{
Literal, MAX_GENERATED_ID_BYTES, MAX_ID_BYTES, MAX_TEXT_BYTES, ScalarType, Value, ValueType,
};
pub(crate) use config::{MAX_COMMAND_CORRELATIONS, bar_field_type};
pub(crate) use value::{validate_id, validate_text};