PineForge unreleased
Deterministic PineScript v6 backtest runtime — C ABI reference
Loading...
Searching...
No Matches
native_c_api.h File Reference
#include <stdint.h>
#include <stddef.h>
#include <pineforge/pineforge.h>
Include dependency graph for native_c_api.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  pf_native_decision_v1
 Where the kernel is, presented to every callback. More...
 
struct  pf_native_timeframe_interval_v1
 The calendar interval of the bucket delivered to pf_native_callbacks_v1::on_timeframe_bar. More...
 
struct  pf_native_applied_v1
 One applied execution, presented to on_applied. More...
 
struct  pf_native_event_v1
 One recorded event, read back by strategy_native_events_v1. More...
 
struct  pf_native_working_v1
 One live request, copied out by strategy_native_working_get_v1. More...
 
struct  pf_native_open_lot_v1
 One open physical lot, copied out by strategy_native_open_lot_get_v1 — the C spelling of NativeOpenLot (R5 gap lane N18): the book that strategy_native_position_v1 aggregates, lot by lot, marked at the price strategy_native_open_lot_count_v1 was given. More...
 
struct  pf_native_state_v1
 The run's lifecycle and its typed failure. More...
 
struct  pf_native_trail_state_v1
 The trail projection of strategy_native_trail_state_v1 — the C spelling of NativeTrailState. More...
 
struct  pf_native_margin_view_v1
 The facts one margin hook is handed — the C spelling of NativeMarginRequirementView, NativeMarginCheckPoint and NativeMarginCallView, which differ only in which of these facts they carry. More...
 
struct  pf_native_margin_decision_v1
 The host's answer to one requirement view — NativeMarginDecision. More...
 
struct  pf_native_close_view_v1
 The facts a host-sized CLOSE is resolved from, handed to pf_native_callbacks_v1::on_close_units. More...
 
struct  pf_native_lot_excursion_v1
 One closing lot's booking facts — ClosedLotExcursionFacts (RULING A48). More...
 
struct  pf_native_terms_view_v1
 The facts of one matching candidate, handed to pf_native_callbacks_v1::on_execution_terms — the price half of NativeExecutionTermsFacts. More...
 
struct  pf_native_terms_v1
 The price half of the terms pf_native_callbacks_v1::on_execution_terms answers — ExecutionTerms less its units, which pf_native_callbacks_v1::on_close_units answers for a host-sized close. More...
 
struct  pf_native_precommit_view_v1
 The last facts before one execution's physical effect, handed to pf_native_callbacks_v1::on_precommit — NativePrecommitView: the plan, the prices, the settlement inspection, and the account the fill would leave (the projection's closed rows' P&L, borrowed for the call, in roster order). More...
 
struct  pf_native_anchored_level_view_v1
 One anchored leg's materialization, handed to pf_native_callbacks_v1::on_anchored_level exactly once, before its armed event — NativeAnchoredLevelView. More...
 
struct  pf_native_risk_state_v1
 The run's generic risk ledger — the C spelling of NativeRiskState (L9). More...
 
struct  pf_native_margin_call_v1
 One kernel-issued liquidation that filled, whole — the C spelling of native_order::MarginCallEvent, copied out by strategy_native_margin_call_v1. More...
 
struct  pf_native_request_v1
 One order request. More...
 
struct  pf_native_subscription_v1
 One declared higher-timeframe series of pf_native_run_spec_ext_v1. More...
 
struct  pf_native_run_spec_ext_v1
 The run-specification fields pf_native_run_spec_v1 predates. More...
 
struct  pf_native_callbacks_v1
 The C host's strategy logic. More...
 

Macros

#define PINEFORGE_HAS_NATIVE_C_API_V1   1
 Feature probe for the C-level native host API.
 
#define PF_NATIVE_API_VERSION   1
 Monotonic version of this header's native-C layouts.
 
#define PF_NATIVE_OK   0
 Success.
 
#define PF_NATIVE_E_HANDLE   -1
 NULL handle, or not a C-callback native host.
 
#define PF_NATIVE_E_STRUCT   -2
 struct_size / version mismatch.
 
#define PF_NATIVE_E_TAG   -3
 An enum field outside its enumeration.
 
#define PF_NATIVE_E_ARGUMENT   -4
 NULL output, negative count, out-of-range index.
 
#define PF_NATIVE_E_STATE   -5
 Illegal here: the command legality rule, or the kernel's own lifecycle, refused it.
 
#define PF_NATIVE_E_REJECTED   -6
 The kernel rejected the request (reason written out).
 
#define PF_NATIVE_E_UNSUPPORTED   -7
 A tag this API version cannot represent.
 
#define PF_NATIVE_E_EXCEPTION   -8
 A C++ exception was contained at the boundary.
 
#define PF_NATIVE_E_NOT_WORKING   -9
 A nonzero target incarnation is not live, whether it was retired or never issued.
 
#define PF_NATIVE_E_INVALID_TARGET   -10
 Malformed target: incarnation 0.
 
#define PF_NATIVE_E_RUN_FAILED   -11
 The run did not reach Completed; read the state.
 
#define PF_NATIVE_E_REFUSED   -12
 execute_current refused; see pf_native_refusal_e.
 
#define PF_NATIVE_ABSENT   1
 Non-negative outcome: the kernel HAS no answer here and the output was left at its documented empty.
 
#define PF_NATIVE_FAILURE_CALLBACK   5
 NativeFailureCode::CallbackException — the code latched when a C callback returns non-zero.
 
#define PF_NATIVE_DECISION_V1_BASE_SIZE    ((uint32_t)offsetof(pf_native_decision_v1, script_interval_open_ms))
 Byte length of pf_native_decision_v1 as the L13 lane first published it, before the session tail was appended — the struct_size a callback table shorter than PF_NATIVE_CALLBACKS_V1_POLICY_SIZE is presented.
 
#define PF_NATIVE_WORKING_V1_BASE_SIZE    ((uint32_t)offsetof(pf_native_working_v1, trail_has_arm_price))
 Byte length of pf_native_working_v1 as the L13 lane first published it, before the arm-presence tail was appended.
 
#define PF_NATIVE_WORKING_V1_ARM_SIZE    ((uint32_t)offsetof(pf_native_working_v1, anchor))
 Byte length of pf_native_working_v1 with the arm-presence tail but without the relation tail — the second of its three published layouts, and the sizeof every caller compiled before that tail existed sends.
 
#define PF_NATIVE_LOT_EXCURSION_V1_BASE_SIZE    ((uint32_t)offsetof(pf_native_lot_excursion_v1, entry_commission))
 Byte length of the first published pf_native_lot_excursion_v1 layout, before pf_native_lot_excursion_v1::entry_commission was appended.
 
#define PF_NATIVE_REQUEST_V1_BASE_SIZE    ((uint32_t)offsetof(pf_native_request_v1, anchor_rounding))
 Byte length of pf_native_request_v1 as the L13 lane first published it, before the anchored-leg tail was appended.
 
#define PF_NATIVE_REQUEST_V1_ANCHOR_SIZE    ((uint32_t)offsetof(pf_native_request_v1, size_price))
 Byte length of pf_native_request_v1 with L7b's anchored-leg tail but without L3b's sizing-detail tail — the second of its five published layouts.
 
#define PF_NATIVE_REQUEST_V1_SIZING_SIZE    ((uint32_t)offsetof(pf_native_request_v1, trail_best_seed))
 Byte length of pf_native_request_v1 with L3b's sizing-detail tail but without E14's trail seed — the third of its five published layouts, and the sizeof every caller compiled before that seed existed sends.
 
#define PF_NATIVE_REQUEST_V1_SEED_SIZE    ((uint32_t)offsetof(pf_native_request_v1, arm_first_match))
 Byte length of pf_native_request_v1 with E14's trail seed but without the arm-relation tail — the fourth of its five published layouts, and the sizeof every caller compiled before that tail existed sends.
 
#define PF_NATIVE_RUN_SPEC_EXT_V1_BASE_SIZE    ((uint32_t)offsetof(pf_native_run_spec_ext_v1, risk_has_max_drawdown))
 Byte length of pf_native_run_spec_ext_v1 as the L13 lane first published it, before the risk_* tail was appended.
 
#define PF_NATIVE_RUN_SPEC_EXT_V1_RISK_SIZE    ((uint32_t)offsetof(pf_native_run_spec_ext_v1, intrabar_kind))
 Byte length of pf_native_run_spec_ext_v1 with L9's risk tail but without N8's intrabar / policy tail — the second of its six published layouts.
 
#define PF_NATIVE_RUN_SPEC_EXT_V1_POLICY_SIZE    ((uint32_t)offsetof(pf_native_run_spec_ext_v1, auxiliary_tf))
 Byte length of pf_native_run_spec_ext_v1 with N8's intrabar / policy tail but before the auxiliary_* tail was appended — the third of its six published layouts.
 
#define PF_NATIVE_RUN_SPEC_EXT_V1_AUXILIARY_SIZE    ((uint32_t)offsetof(pf_native_run_spec_ext_v1, event_retention))
 Byte length of pf_native_run_spec_ext_v1 with the auxiliary_* tail but before the event_retention tail was appended — the fourth of its six published layouts, an offset for the same reason PF_NATIVE_RUN_SPEC_EXT_V1_BASE_SIZE is.
 
#define PF_NATIVE_RUN_SPEC_EXT_V1_RETENTION_SIZE    ((uint32_t)offsetof(pf_native_run_spec_ext_v1, quantity_tolerance))
 Byte length of pf_native_run_spec_ext_v1 with the event_retention tail but before the quantity_tolerance tail was appended — the fifth of its six published layouts, an offset for the same reason PF_NATIVE_RUN_SPEC_EXT_V1_BASE_SIZE is.
 
#define PF_NATIVE_CALLBACKS_V1_BASE_SIZE    ((uint32_t)offsetof(pf_native_callbacks_v1, on_recalculate))
 Byte length of pf_native_callbacks_v1 as the L13 lane first published it, before the six-hook tail was appended.
 
#define PF_NATIVE_CALLBACKS_V1_HOOKS_SIZE    ((uint32_t)offsetof(pf_native_callbacks_v1, on_execution_terms))
 Byte length of pf_native_callbacks_v1 with the six-hook tail but without the policy-hook tail — the second of its four published layouts, and the sizeof every caller compiled before that tail existed sends.
 
#define PF_NATIVE_CALLBACKS_V1_POLICY_SIZE    ((uint32_t)offsetof(pf_native_callbacks_v1, reserved1))
 Byte length of the F4 policy-hook layout, before the reserved marker that publishes the current lot-excursion facts layout.
 

Enumerations

enum  pf_native_intent_t {
  PF_NATIVE_INTENT_FLATTEN = 0 ,
  PF_NATIVE_INTENT_REDUCE = 1 ,
  PF_NATIVE_INTENT_TRANSACT = 2 ,
  PF_NATIVE_INTENT_REVERSE_TO = 3 ,
  PF_NATIVE_INTENT_HOST_SIZED = 4 ,
  PF_NATIVE_INTENT_SIZED = 5
}
 Order intent — the alternative index of native_order::OrderIntent. More...
 
enum  pf_native_reduction_t {
  PF_NATIVE_REDUCE_EXPLICIT_UNITS = 0 ,
  PF_NATIVE_REDUCE_OWNER_OPENED = 1 ,
  PF_NATIVE_REDUCE_SCOPE_FRACTION = 2
}
 Reduction size — the alternative index of native_order::ReductionSize. More...
 
enum  pf_native_scope_claim_t {
  PF_NATIVE_SCOPE_GROSS = 0 ,
  PF_NATIVE_SCOPE_NET_OF_SIBLINGS = 1
}
 Scope claim of a fractional reduce. More...
 
enum  pf_native_side_t {
  PF_NATIVE_SIDE_LONG = 0 ,
  PF_NATIVE_SIDE_SHORT = 1
}
 Side of a kernel-sized opening. More...
 
enum  pf_native_size_basis_t {
  PF_NATIVE_SIZE_BASIS_CASH = 0 ,
  PF_NATIVE_SIZE_BASIS_EQUITY_FRACTION = 1
}
 Sizing basis — the alternative index of native_order::SizeBasis. More...
 
enum  pf_native_size_time_t {
  PF_NATIVE_SIZE_AT_MATCH = 0 ,
  PF_NATIVE_SIZE_AT_ACCEPTANCE = 1
}
 When a sizing basis resolves. More...
 
enum  pf_native_grid_policy_t {
  PF_NATIVE_GRID_SNAP = 0 ,
  PF_NATIVE_GRID_EXPLICIT_UNITS = 1
}
 Whether resolved sizing snaps onto the run's quantity grid. More...
 
enum  pf_native_trigger_t {
  PF_NATIVE_TRIGGER_MARKET = 0 ,
  PF_NATIVE_TRIGGER_LIMIT = 1 ,
  PF_NATIVE_TRIGGER_STOP = 2 ,
  PF_NATIVE_TRIGGER_STOP_LIMIT = 3 ,
  PF_NATIVE_TRIGGER_TRAIL = 4
}
 Trigger — the alternative index of native_order::Trigger. More...
 
enum  pf_native_anchor_t {
  PF_NATIVE_ANCHOR_ABSOLUTE = 0 ,
  PF_NATIVE_ANCHOR_FROM_OWNER_FILL = 1
}
 Where a trigger level comes from — native_order::TriggerAnchor (L7). More...
 
enum  pf_native_anchor_rounding_t {
  PF_NATIVE_ANCHOR_ROUNDING_RAW = 0 ,
  PF_NATIVE_ANCHOR_ROUNDING_HALF_UP = 1 ,
  PF_NATIVE_ANCHOR_ROUNDING_DIRECTIONAL = 2
}
 How a materialized anchored level snaps onto the run's price tick ladder — native_order::NativeAnchorRounding (L7b). More...
 
enum  pf_native_arm_visibility_t {
  PF_NATIVE_ARM_VISIBILITY_WORKING = 0 ,
  PF_NATIVE_ARM_VISIBILITY_PENDING_UNTIL_ARMED = 1
}
 Whether a WAIT_FOR_APPLIED child is a working order before its arm — native_order::NativeArmVisibility (L7b). More...
 
enum  pf_native_arm_first_match_t {
  PF_NATIVE_ARM_FIRST_MATCH_AT_ARM_PRINT = 0 ,
  PF_NATIVE_ARM_FIRST_MATCH_AFTER_ARM_PRINT = 1
}
 Whether an armed WAIT_FOR_APPLIED child may trade on its owner's own fill print — native_order::NativeArmFirstMatch. More...
 
enum  pf_native_arm_scope_t {
  PF_NATIVE_ARM_SCOPE_OWNER_LOT = 0 ,
  PF_NATIVE_ARM_SCOPE_BOOK = 1
}
 What an armed CLOSING child (REDUCE, FLATTEN, a host-sized close) closes — native_order::NativeArmScope. More...
 
enum  pf_native_capacity_t {
  PF_NATIVE_CAPACITY_IMMEDIATE = 0 ,
  PF_NATIVE_CAPACITY_POINT_BUDGET = 1
}
 Capacity — the alternative index of native_order::Capacity. More...
 
enum  pf_native_owner_t {
  PF_NATIVE_OWNER_INDEPENDENT = 0 ,
  PF_NATIVE_OWNER_WAIT_FOR_APPLIED = 1 ,
  PF_NATIVE_OWNER_BIND_OPENING = 2 ,
  PF_NATIVE_OWNER_BIND_OPENINGS = 3 ,
  PF_NATIVE_OWNER_BIND_COHORT = 4
}
 Owner — the alternative index of native_order::Owner. More...
 
enum  pf_native_group_t {
  PF_NATIVE_GROUP_NONE = 0 ,
  PF_NATIVE_GROUP_MEMBER = 1
}
 Group — the alternative index of native_order::Group. More...
 
enum  pf_native_group_effect_t {
  PF_NATIVE_GROUP_CANCEL = 0 ,
  PF_NATIVE_GROUP_REDUCE = 1
}
 What a filled group member does to its siblings. More...
 
enum  pf_native_request_field_t {
  PF_NATIVE_FIELD_COMMENT = 0 ,
  PF_NATIVE_FIELD_LABEL = 1
}
 Which identity text strategy_native_cancel_where_v1 compares. More...
 
enum  pf_native_price_rule_t {
  PF_NATIVE_PRICE_AS_PRESENTED = 0 ,
  PF_NATIVE_PRICE_NEAREST_TICK = 1
}
 Price rule of an immediate execution. More...
 
enum  pf_native_execute_outcome_t {
  PF_NATIVE_EXECUTED_APPLIED = 0 ,
  PF_NATIVE_EXECUTED_NO_EFFECT = 1 ,
  PF_NATIVE_EXECUTED_MATCH_REJECTED = 2 ,
  PF_NATIVE_EXECUTED_CANCELLED = 3
}
 Outcome of strategy_native_execute_current_v1 (non-negative returns). More...
 
enum  pf_native_refusal_t {
  PF_NATIVE_REFUSAL_NO_EXECUTION_CONTEXT = 0 ,
  PF_NATIVE_REFUSAL_REENTRANT = 1 ,
  PF_NATIVE_REFUSAL_INVALID_HANDLE = 2 ,
  PF_NATIVE_REFUSAL_NOT_WORKING = 3 ,
  PF_NATIVE_REFUSAL_NOT_ACCEPTED_IN_CALLBACK = 4 ,
  PF_NATIVE_REFUSAL_UNSUPPORTED_REQUEST = 5 ,
  PF_NATIVE_REFUSAL_UNREADY_OWNER = 6 ,
  PF_NATIVE_REFUSAL_INVALID_SELECTION = 7 ,
  PF_NATIVE_REFUSAL_CONFIGURATION_MISMATCH = 8
}
 Why execute_current refused. More...
 
enum  pf_native_lifecycle_t {
  PF_NATIVE_LIFECYCLE_UNCONFIGURED = 0 ,
  PF_NATIVE_LIFECYCLE_READY = 1 ,
  PF_NATIVE_LIFECYCLE_RUNNING = 2 ,
  PF_NATIVE_LIFECYCLE_COMPLETED = 3 ,
  PF_NATIVE_LIFECYCLE_FAILED = 4
}
 Lifecycle of the native run — mirrors NativeLifecycleKind. More...
 
enum  pf_native_event_kind_t {
  PF_NATIVE_EVENT_ACCEPTED = 1 ,
  PF_NATIVE_EVENT_REJECTED = 2 ,
  PF_NATIVE_EVENT_REPLACED = 3 ,
  PF_NATIVE_EVENT_REPLACE_REJECTED = 4 ,
  PF_NATIVE_EVENT_CANCELLED = 5 ,
  PF_NATIVE_EVENT_NOT_WORKING = 6 ,
  PF_NATIVE_EVENT_INVALID_HANDLE = 7 ,
  PF_NATIVE_EVENT_NO_EFFECT = 8 ,
  PF_NATIVE_EVENT_MATCH_REJECTED = 9 ,
  PF_NATIVE_EVENT_APPLIED = 10 ,
  PF_NATIVE_EVENT_CLOSE_BOUND = 11 ,
  PF_NATIVE_EVENT_ACTIVATED = 12 ,
  PF_NATIVE_EVENT_RESERVATION_REDUCED = 13 ,
  PF_NATIVE_EVENT_DEFERRED_GROUP = 14 ,
  PF_NATIVE_EVENT_QUANTITY_BOUND = 15 ,
  PF_NATIVE_EVENT_ARMED = 16 ,
  PF_NATIVE_EVENT_TERMS_RESOLVED = 17 ,
  PF_NATIVE_EVENT_MARGIN_CALL = 18 ,
  PF_NATIVE_EVENT_DRIVER_POINT = 19 ,
  PF_NATIVE_EVENT_ACCOUNT = 20 ,
  PF_NATIVE_EVENT_RISK = 21
}
 Event tag of pf_native_event_v1. More...
 
enum  pf_native_risk_limit_t {
  PF_NATIVE_RISK_MAX_DRAWDOWN = 0 ,
  PF_NATIVE_RISK_MAX_INTRADAY_LOSS = 1 ,
  PF_NATIVE_RISK_MAX_CONSECUTIVE_LOSS_DAYS = 2 ,
  PF_NATIVE_RISK_MAX_FILLS_PER_DAY = 3
}
 Which generic risk limit a PF_NATIVE_EVENT_RISK event reports — the reason field of pf_native_event_v1, mirroring native_order::RiskLimitKind (L9). More...
 
enum  pf_native_risk_day_t {
  PF_NATIVE_RISK_DAY_SESSION = 0 ,
  PF_NATIVE_RISK_DAY_CALENDAR_TIMEZONE = 1
}
 Which day a risk limit's "day" is — NativeRiskDay. More...
 
enum  pf_native_risk_action_t {
  PF_NATIVE_RISK_BLOCK_OPENINGS = 0 ,
  PF_NATIVE_RISK_FLATTEN_AND_BLOCK = 1
}
 What a breach does — NativeRiskAction. More...
 
enum  pf_native_remaining_t {
  PF_NATIVE_REMAINING_UNBOUND = 0 ,
  PF_NATIVE_REMAINING_FLATTEN_ALL = 1 ,
  PF_NATIVE_REMAINING_UNITS = 2 ,
  PF_NATIVE_REMAINING_DEFERRED = 3 ,
  PF_NATIVE_REMAINING_NO_TARGET = 4
}
 Remaining projection of a live request — native_order::RemainingProjection. More...
 
enum  pf_native_trigger_state_t {
  PF_NATIVE_TRIGGER_STATE_MARKET_READY = 0 ,
  PF_NATIVE_TRIGGER_STATE_LIMIT_READY = 1 ,
  PF_NATIVE_TRIGGER_STATE_STOP_IDLE = 2 ,
  PF_NATIVE_TRIGGER_STATE_STOP_ACTIVE = 3 ,
  PF_NATIVE_TRIGGER_STATE_STOP_LIMIT_PENDING = 4 ,
  PF_NATIVE_TRIGGER_STATE_STOP_LIMIT_LIVE = 5 ,
  PF_NATIVE_TRIGGER_STATE_TRAIL_WAIT_ARM = 6 ,
  PF_NATIVE_TRIGGER_STATE_TRAIL_TRACK = 7 ,
  PF_NATIVE_TRIGGER_STATE_TRAIL_ACTIVE = 8
}
 Trigger state of a live request — native_order::TriggerState. More...
 
enum  pf_native_fee_kind_t {
  PF_NATIVE_FEE_PERCENT = 0 ,
  PF_NATIVE_FEE_CASH_PER_UNIT = 1 ,
  PF_NATIVE_FEE_CASH_PER_EXECUTION = 2
}
 What one execution costs — NativeFeeKind, the fee_kind word of pf_native_run_spec_v1, charged at its fee_value. More...
 
enum  pf_native_close_execution_t {
  PF_NATIVE_CLOSE_EXECUTION_NEXT_ELIGIBLE_POINT = 0 ,
  PF_NATIVE_CLOSE_EXECUTION_AFTER_CALCULATION = 1
}
 When a request born at a script calculation may first match — NativeCloseExecution, the close_execution word of pf_native_run_spec_v1. More...
 
enum  pf_native_open_directions_t {
  PF_NATIVE_OPEN_DIRECTIONS_NONE = 0 ,
  PF_NATIVE_OPEN_DIRECTIONS_LONG = 1 ,
  PF_NATIVE_OPEN_DIRECTIONS_SHORT = 2 ,
  PF_NATIVE_OPEN_DIRECTIONS_BOTH = 3
}
 Which opening directions the run admits — NativeOpenDirections, the allowed_open_directions word of pf_native_run_spec_v1; BOTH is LONG | SHORT. More...
 
enum  pf_native_report_policy_t {
  PF_NATIVE_REPORT_HOST_RECORDED = 0 ,
  PF_NATIVE_REPORT_KERNEL_RECORDED = 1
}
 Who records the per-script-bar report series — NativeReportPolicy, the report_policy word of pf_native_run_spec_ext_v1. More...
 
enum  pf_native_price_grid_t {
  PF_NATIVE_PRICE_GRID_NONE = 0 ,
  PF_NATIVE_PRICE_GRID_QUANTIZE_FILLS = 1 ,
  PF_NATIVE_PRICE_GRID_QUANTIZE_FILLS_AND_TRIGGERS = 2
}
 A generic instrument price grid — NativePriceGrid, the price_grid word of pf_native_run_spec_ext_v1. More...
 
enum  pf_native_grid_rounding_t {
  PF_NATIVE_GRID_ROUNDING_HALF_UP = 0 ,
  PF_NATIVE_GRID_ROUNDING_DIRECTIONAL = 1
}
 How a quantizing grid rounds — NativeGridRounding, the grid_rounding word of pf_native_run_spec_ext_v1, read beside price_grid. More...
 
enum  pf_native_calc_trigger_t {
  PF_NATIVE_CALC_TRIGGER_BAR_CLOSE = 0 ,
  PF_NATIVE_CALC_TRIGGER_BAR_CLOSE_AND_FILLS = 1 ,
  PF_NATIVE_CALC_TRIGGER_EVERY_MODELED_POINT = 2
}
 When the kernel asks the host to calculate — NativeCalculationTrigger, the calculation word of pf_native_run_spec_ext_v1. More...
 
enum  pf_native_open_bar_view_t {
  PF_NATIVE_OPEN_BAR_VIEW_COMPLETE = 0 ,
  PF_NATIVE_OPEN_BAR_VIEW_OPEN_ONLY = 1
}
 What pf_native_callbacks_v1::on_bar_open is handed — NativeOpenBarView, the open_bar_view word of pf_native_run_spec_ext_v1. More...
 
enum  pf_native_liquidation_sizing_t {
  PF_NATIVE_LIQUIDATION_SIZING_RESTORE_MINIMUM = 0 ,
  PF_NATIVE_LIQUIDATION_SIZING_SHORTFALL_MULTIPLE = 1 ,
  PF_NATIVE_LIQUIDATION_SIZING_FLATTEN = 2
}
 Which units a kernel-issued liquidation reduces — NativeLiquidationSizing, the margin_sizing word of pf_native_run_spec_ext_v1. More...
 
enum  pf_native_spec_ext_mask_t {
  PF_NATIVE_SPEC_EXT_REPORT = 1u << 0 ,
  PF_NATIVE_SPEC_EXT_PRICE_GRID = 1u << 1 ,
  PF_NATIVE_SPEC_EXT_CALCULATION = 1u << 2 ,
  PF_NATIVE_SPEC_EXT_OPEN_BAR_VIEW = 1u << 3 ,
  PF_NATIVE_SPEC_EXT_MARGIN = 1u << 4 ,
  PF_NATIVE_SPEC_EXT_SUBSCRIPTIONS = 1u << 5 ,
  PF_NATIVE_SPEC_EXT_RISK = 1u << 6 ,
  PF_NATIVE_SPEC_EXT_INTRABAR = 1u << 7 ,
  PF_NATIVE_SPEC_EXT_FEED_POLICY = 1u << 8 ,
  PF_NATIVE_SPEC_EXT_AUXILIARY_FEED = 1u << 9 ,
  PF_NATIVE_SPEC_EXT_EVENT_RETENTION = 1u << 10 ,
  PF_NATIVE_SPEC_EXT_QUANTITY_TOLERANCE = 1u << 11
}
 Which extension blocks of pf_native_run_spec_ext_v1 are meaningful. More...
 
enum  pf_native_event_retention_t {
  PF_NATIVE_EVENT_RETENTION_WINDOW = 0 ,
  PF_NATIVE_EVENT_RETENTION_FULL = 1 ,
  PF_NATIVE_EVENT_RETENTION_COMMANDS = 2
}
 What a run keeps of its event record — NativeRunSpec::event_retention, the event_retention word of pf_native_run_spec_ext_v1, read under PF_NATIVE_SPEC_EXT_EVENT_RETENTION. More...
 
enum  pf_native_series_source_t {
  PF_NATIVE_SERIES_SOURCE_INPUT = 0 ,
  PF_NATIVE_SERIES_SOURCE_AUXILIARY_FEED = 1
}
 The bars a declared series is built from — NativeSeriesSource. More...
 
enum  pf_native_lookahead_t {
  PF_NATIVE_LOOKAHEAD_AT_COMPLETION = 0 ,
  PF_NATIVE_LOOKAHEAD_AT_FIRST_INPUT = 1
}
 When a declared series delivers a completed bucket — NativeTimeframeSubscription::lookahead, the lookahead word of pf_native_subscription_v1. More...
 
enum  pf_native_gaps_t {
  PF_NATIVE_GAPS_HOLD = 0 ,
  PF_NATIVE_GAPS_CLEAR = 1
}
 What a declared series holds on an accepted input that delivers no bucket of it — NativeTimeframeSubscription::gaps, the gaps word of pf_native_subscription_v1. More...
 
enum  pf_native_size_price_t {
  PF_NATIVE_SIZE_PRICE_RESOLVED = 0 ,
  PF_NATIVE_SIZE_PRICE_SIGNAL = 1 ,
  PF_NATIVE_SIZE_PRICE_SIGNAL_ON_TICK = 2
}
 WHICH price a kernel-sized basis converts at — native_order::SizePrice (L3b). More...
 
enum  pf_native_scope_basis_t {
  PF_NATIVE_SCOPE_BASIS_AT_MATCH = 0 ,
  PF_NATIVE_SCOPE_BASIS_AT_ACCEPTANCE = 1
}
 WHICH measurement of the bound scope a fractional reduce takes its fraction of — native_order::ScopeBasis. More...
 
enum  pf_native_liquidation_check_t {
  PF_NATIVE_LIQUIDATION_PATH_ADVERSE_EXTREME = 0 ,
  PF_NATIVE_LIQUIDATION_CALCULATION_ONLY = 1 ,
  PF_NATIVE_LIQUIDATION_PATH_ADVERSE_EXTREME_MARK = 2
}
 When the kernel tests the maintenance requirement — NativeLiquidationCheck, the margin_check field of pf_native_run_spec_ext_v1. More...
 
enum  pf_native_margin_equity_basis_t {
  PF_NATIVE_MARGIN_EQUITY_MARKED = 0 ,
  PF_NATIVE_MARGIN_EQUITY_BEFORE_OPEN_COMMISSION = 1
}
 Which equity the maintenance requirement is tested against — NativeMarginEquityBasis. More...
 
enum  pf_native_margin_level_base_t {
  PF_NATIVE_MARGIN_LEVEL_MARKED_EQUITY = 0 ,
  PF_NATIVE_MARGIN_LEVEL_REALIZED_ONLY = 1
}
 Which base the liquidation level is solved from — NativeLiquidationLevelBase. More...
 
enum  pf_native_intrabar_kind_t {
  PF_NATIVE_INTRABAR_NONE = 0 ,
  PF_NATIVE_INTRABAR_LOWER_TF = 1 ,
  PF_NATIVE_INTRABAR_SYNTHESIZED = 2
}
 Which intrabar execution path the run retains — the alternative of IntrabarPath. More...
 
enum  pf_native_sample_eligibility_t {
  PF_NATIVE_SAMPLE_CONTINUOUS_SEGMENTS = 0 ,
  PF_NATIVE_SAMPLE_DISTRIBUTION_SAMPLES = 1
}
 Whether matching stays continuous between generated samples — IntrabarPath::SampleEligibility. More...
 
enum  pf_native_slot_label_t {
  PF_NATIVE_SLOT_LABEL_CANONICAL = 0 ,
  PF_NATIVE_SLOT_LABEL_FEED_TOLERANT = 1
}
 Whether a confirmed bar must name a canonical input slot — NativeSlotLabelPolicy. More...
 
enum  pf_native_feed_tolerance_t {
  PF_NATIVE_FEED_TOLERANCE_NONE = 0 ,
  PF_NATIVE_FEED_TOLERANCE_BATCH_STRUCTURAL = 1u << 0 ,
  PF_NATIVE_FEED_TOLERANCE_WARMUP_NONNEGATIVE = 1u << 1
}
 Opt-in admission exceptions for a tolerated input-feed shape — NativeFeedTolerance. More...
 
enum  pf_native_path_order_t {
  PF_NATIVE_PATH_ORDER_AUTO = 0 ,
  PF_NATIVE_PATH_ORDER_HIGH_FIRST = 1 ,
  PF_NATIVE_PATH_ORDER_LOW_FIRST = 2
}
 Generic ordering for a modeled OHLC path — NativePathOrder. More...
 
enum  pf_native_abort_reporting_t {
  PF_NATIVE_ABORT_ERROR = 0 ,
  PF_NATIVE_ABORT_QUIET = 1
}
 How a cooperative abort is presented — NativeAbortReporting. More...
 
enum  pf_native_calc_reason_t {
  PF_NATIVE_CALC_BAR_CLOSE = 0 ,
  PF_NATIVE_CALC_ORDER_FILL = 1 ,
  PF_NATIVE_CALC_TICK = 2 ,
  PF_NATIVE_CALC_SUB_BAR = 3
}
 Why the kernel is asking the host to calculate — NativeCalculationReason (L5), the reason argument of pf_native_callbacks_v1::on_recalculate. More...
 
enum  pf_native_margin_check_kind_t {
  PF_NATIVE_MARGIN_CHECK_BAR_OPEN = 0 ,
  PF_NATIVE_MARGIN_CHECK_AFTER_APPLIED = 1 ,
  PF_NATIVE_MARGIN_CHECK_CALCULATION = 2 ,
  PF_NATIVE_MARGIN_CHECK_FX_ROLL = 3 ,
  PF_NATIVE_MARGIN_CHECK_INTRABAR_SAMPLE = 4
}
 Which kernel check point is about to test the maintenance requirement — NativeMarginCheckKind (L4b). More...
 
enum  pf_native_answer_t {
  PF_NATIVE_ANSWER_DEFAULT = 0 ,
  PF_NATIVE_ANSWER_PROVIDED = 1
}
 What an ANSWERING callback's return value means. More...
 
enum  pf_native_opened_lot_fill_point_t {
  PF_NATIVE_OPENED_LOT_FILL_POINT_ON_PATH = 0 ,
  PF_NATIVE_OPENED_LOT_FILL_POINT_AFTER_PATH = 1
}
 Where an opened lot's own fill sits on its entry bar's modeled path — OpenedLotFillPoint, the one fact strategy_native_declare_opened_lot_entry_bar_mask_v1 carries. More...
 
enum  pf_native_price_provenance_t {
  PF_NATIVE_PROVENANCE_CONFIRMED = 0 ,
  PF_NATIVE_PROVENANCE_OBSERVED_PRINT = 1 ,
  PF_NATIVE_PROVENANCE_MODELED_OHLC_OPEN = 2 ,
  PF_NATIVE_PROVENANCE_MODELED_OHLC_CLOSE = 3 ,
  PF_NATIVE_PROVENANCE_CARRIED_OPEN = 4 ,
  PF_NATIVE_PROVENANCE_AFTER_CALCULATION_CLOSE = 5 ,
  PF_NATIVE_PROVENANCE_PARTIAL_FINALIZED = 6 ,
  PF_NATIVE_PROVENANCE_CALCULATION = 7 ,
  PF_NATIVE_PROVENANCE_CURRENT_EXECUTION = 8
}
 Where a point's price came from — NativePriceProvenance: the provenance word of pf_native_decision_v1 and pf_native_event_v1 and pf_native_margin_view_v1::cursor_provenance. More...
 
enum  pf_native_path_phase_t {
  PF_NATIVE_PATH_PHASE_NONE = 0 ,
  PF_NATIVE_PATH_PHASE_OPEN = 1 ,
  PF_NATIVE_PATH_PHASE_HIGH = 2 ,
  PF_NATIVE_PATH_PHASE_LOW = 3 ,
  PF_NATIVE_PATH_PHASE_CLOSE = 4
}
 Which leg of a modeled OHLC walk a point sits on — NativePathPhase: the path_phase word of pf_native_decision_v1 and pf_native_event_v1 and pf_native_margin_view_v1::cursor_path_phase. More...
 
enum  pf_native_completion_kind_t {
  PF_NATIVE_COMPLETION_KIND_CONFIRMED = 0 ,
  PF_NATIVE_COMPLETION_KIND_LAZY_COMPLETE = 1 ,
  PF_NATIVE_COMPLETION_KIND_SESSION_SHORTENED = 2 ,
  PF_NATIVE_COMPLETION_KIND_PARTIAL_FINALIZED = 3
}
 How a script interval or a higher-timeframe bucket was closed — NativeCompletionKind: pf_native_decision_v1::completion and the completion argument of pf_native_callbacks_v1::on_timeframe_bar. More...
 
enum  pf_native_quote_kind_t {
  PF_NATIVE_QUOTE_MARKET_DECISION = 0 ,
  PF_NATIVE_QUOTE_EXECUTION_ANCHOR = 1
}
 Which quote pf_native_decision_v1::price is — NativeCurrentQuoteKind: the callback's own market decision point, or the execution it is anchored to (inside on_applied). More...
 
enum  pf_native_terminal_reason_t {
  PF_NATIVE_TERMINAL_WORKING_UNITS_SATISFIED = 0 ,
  PF_NATIVE_TERMINAL_FLATTENED = 1 ,
  PF_NATIVE_TERMINAL_TARGET_EXHAUSTED = 2
}
 Why an applied execution finished its request — native_order::AppliedTerminalReason: pf_native_applied_v1::terminal_reason and the reason of a terminal PF_NATIVE_EVENT_APPLIED row. More...
 
enum  pf_native_reject_reason_t {
  PF_NATIVE_REJECT_INVALID_QUANTITY = 0 ,
  PF_NATIVE_REJECT_OFF_GRID = 1 ,
  PF_NATIVE_REJECT_INVALID_TRIGGER = 2 ,
  PF_NATIVE_REJECT_INVALID_CAPACITY = 3 ,
  PF_NATIVE_REJECT_INVALID_OWNER = 4 ,
  PF_NATIVE_REJECT_INVALID_QUANTITY_BASIS = 5 ,
  PF_NATIVE_REJECT_INVALID_GROUP = 6 ,
  PF_NATIVE_REJECT_PLACEMENT_ADMISSION = 7
}
 Why the kernel refused a request — native_order::RequestRejectReason: the reject out-parameter of strategy_native_submit_v1 and strategy_native_replace_ext_v1, and the reason of a PF_NATIVE_EVENT_REJECTED or PF_NATIVE_EVENT_REPLACE_REJECTED row. More...
 
enum  pf_native_cancel_reason_t {
  PF_NATIVE_CANCEL_USER = 0 ,
  PF_NATIVE_CANCEL_GROUP = 1 ,
  PF_NATIVE_CANCEL_OWNER_GONE = 2 ,
  PF_NATIVE_CANCEL_UNSUPPORTED_RELATION = 3 ,
  PF_NATIVE_CANCEL_SUPERSEDED = 4
}
 Why a live request left the book unfilled — native_order::CancelReason: the reason of a PF_NATIVE_EVENT_CANCELLED row. More...
 
enum  pf_native_match_reject_t {
  PF_NATIVE_MATCH_REJECT_NONPOSITIVE_PRICE = 0 ,
  PF_NATIVE_MATCH_REJECT_OPENING_DIRECTION = 1 ,
  PF_NATIVE_MATCH_REJECT_MAX_ABS_UNITS = 2 ,
  PF_NATIVE_MATCH_REJECT_MAX_OPEN_LOTS = 3 ,
  PF_NATIVE_MATCH_REJECT_INITIAL_MARGIN = 4 ,
  PF_NATIVE_MATCH_REJECT_TERMS_UNRESOLVED = 5 ,
  PF_NATIVE_MATCH_REJECT_INVALID_TERMS = 6 ,
  PF_NATIVE_MATCH_REJECT_NO_OPPOSITE_EXPOSURE = 7 ,
  PF_NATIVE_MATCH_REJECT_HOST_PRECOMMIT = 8 ,
  PF_NATIVE_MATCH_REJECT_RISK_LIMIT = 9 ,
  PF_NATIVE_MATCH_REJECT_UNREPRESENTABLE_QUANTITY = 10
}
 Why a matching candidate was refused — native_order::MatchRejectReason: the reason of a PF_NATIVE_EVENT_MATCH_REJECTED row. More...
 
enum  pf_native_activation_t {
  PF_NATIVE_ACTIVATION_STOP = 0 ,
  PF_NATIVE_ACTIVATION_STOP_LIMIT = 1 ,
  PF_NATIVE_ACTIVATION_TRAIL_ARM = 2 ,
  PF_NATIVE_ACTIVATION_TRAIL_TRIGGER = 3
}
 Which trigger a price reached — native_order::ActivationKind: the reason of a PF_NATIVE_EVENT_ACTIVATED row. More...
 
enum  pf_native_origin_t {
  PF_NATIVE_ORIGIN_HOST = 0 ,
  PF_NATIVE_ORIGIN_KERNEL_LIQUIDATION = 1 ,
  PF_NATIVE_ORIGIN_KERNEL_RISK = 2
}
 Who issued a live request — native_order::RequestOrigin: pf_native_working_v1::origin. More...
 
enum  pf_native_failure_code_t {
  PF_NATIVE_FAILURE_NONE = 0 ,
  PF_NATIVE_FAILURE_INVALID_SPECIFICATION = 1 ,
  PF_NATIVE_FAILURE_CONTRACT = 2 ,
  PF_NATIVE_FAILURE_PREFLIGHT = 3 ,
  PF_NATIVE_FAILURE_UNSUPPORTED_SOURCE = 4 ,
  PF_NATIVE_FAILURE_CALLBACK_EXCEPTION = 5 ,
  PF_NATIVE_FAILURE_SETTLEMENT_FAILURE = 6 ,
  PF_NATIVE_FAILURE_ALLOCATION = 7 ,
  PF_NATIVE_FAILURE_COUNTER_EXHAUSTED = 8 ,
  PF_NATIVE_FAILURE_ABORTED = 9 ,
  PF_NATIVE_FAILURE_PROJECTION_MISMATCH = 10 ,
  PF_NATIVE_FAILURE_CALENDAR = 11 ,
  PF_NATIVE_FAILURE_UNEXPECTED = 12
}
 A run's durable first failure — NativeFailureCode: pf_native_state_v1::failure_code. More...
 
enum  pf_native_failure_operation_t {
  PF_NATIVE_OPERATION_NONE = 0 ,
  PF_NATIVE_OPERATION_CONFIGURE = 1 ,
  PF_NATIVE_OPERATION_BEGIN = 2 ,
  PF_NATIVE_OPERATION_COMMAND = 3 ,
  PF_NATIVE_OPERATION_INPUT = 4 ,
  PF_NATIVE_OPERATION_CALLBACK = 5 ,
  PF_NATIVE_OPERATION_SETTLEMENT = 6 ,
  PF_NATIVE_OPERATION_MUTATION = 7 ,
  PF_NATIVE_OPERATION_STREAM = 8
}
 Which operation was in flight when the failure latched — NativeFailureOperation: pf_native_state_v1::failure_operation. More...
 
enum  pf_native_run_phase_t {
  PF_NATIVE_PHASE_BATCH = 0 ,
  PF_NATIVE_PHASE_WARMUP = 1 ,
  PF_NATIVE_PHASE_REALTIME = 2
}
 Which driving a Running run is in — NativeRunPhase: pf_native_state_v1::phase. More...
 
enum  pf_native_completion_t {
  PF_NATIVE_COMPLETION_BATCH_COMPLETE = 0 ,
  PF_NATIVE_COMPLETION_STREAM_ENDED = 1
}
 How a Completed run ended — NativeCompletion: pf_native_state_v1::completion. More...
 
enum  pf_native_spec_error_t {
  PF_NATIVE_SPEC_ERROR_NONE = 0 ,
  PF_NATIVE_SPEC_ERROR_EMPTY_REQUIRED_STRING = 1 ,
  PF_NATIVE_SPEC_ERROR_EMBEDDED_NUL = 2 ,
  PF_NATIVE_SPEC_ERROR_INVALID_UTF8 = 3 ,
  PF_NATIVE_SPEC_ERROR_ZERO_RUN_NUMBER = 4 ,
  PF_NATIVE_SPEC_ERROR_INVALID_TIMEFRAME = 5 ,
  PF_NATIVE_SPEC_ERROR_INCOMPATIBLE_TIMEFRAMES = 6 ,
  PF_NATIVE_SPEC_ERROR_UNRESOLVED_TIMEZONE = 7 ,
  PF_NATIVE_SPEC_ERROR_INVALID_SESSION = 8 ,
  PF_NATIVE_SPEC_ERROR_NOT_FINITE_POSITIVE = 9 ,
  PF_NATIVE_SPEC_ERROR_SLIPPAGE_OUT_OF_RANGE = 10 ,
  PF_NATIVE_SPEC_ERROR_UNKNOWN_FEE_KIND = 11 ,
  PF_NATIVE_SPEC_ERROR_NOT_FINITE_NONNEGATIVE = 12 ,
  PF_NATIVE_SPEC_ERROR_UNKNOWN_CLOSE_EXECUTION = 13 ,
  PF_NATIVE_SPEC_ERROR_UNKNOWN_ABORT_REPORTING = 14 ,
  PF_NATIVE_SPEC_ERROR_UNKNOWN_OPEN_DIRECTIONS = 15 ,
  PF_NATIVE_SPEC_ERROR_ZERO_LOT_LIMIT = 16 ,
  PF_NATIVE_SPEC_ERROR_ALLOCATION_FAILURE = 17 ,
  PF_NATIVE_SPEC_ERROR_CALENDAR_FAILURE = 18 ,
  PF_NATIVE_SPEC_ERROR_INVALID_INTRABAR_PATH = 19 ,
  PF_NATIVE_SPEC_ERROR_UNKNOWN_INTRABAR_SAMPLE_ELIGIBILITY = 20 ,
  PF_NATIVE_SPEC_ERROR_INVALID_UNDETECTED_TIMEFRAME = 21 ,
  PF_NATIVE_SPEC_ERROR_UNKNOWN_SLOT_LABEL_POLICY = 22 ,
  PF_NATIVE_SPEC_ERROR_UNKNOWN_FEED_TOLERANCE = 23 ,
  PF_NATIVE_SPEC_ERROR_UNKNOWN_PATH_ORDER = 24 ,
  PF_NATIVE_SPEC_ERROR_UNKNOWN_REPORT_POLICY = 25 ,
  PF_NATIVE_SPEC_ERROR_UNKNOWN_PRICE_GRID = 26 ,
  PF_NATIVE_SPEC_ERROR_UNKNOWN_GRID_ROUNDING = 27 ,
  PF_NATIVE_SPEC_ERROR_GRID_REQUIRES_PRICE_TICK = 28 ,
  PF_NATIVE_SPEC_ERROR_INVALID_SUBSCRIPTION_TIMEFRAME = 29 ,
  PF_NATIVE_SPEC_ERROR_SUBSCRIPTION_FINER_THAN_INPUT = 30 ,
  PF_NATIVE_SPEC_ERROR_DUPLICATE_SUBSCRIPTION_TIMEFRAME = 31 ,
  PF_NATIVE_SPEC_ERROR_UNORDERED_SUBSCRIPTION_BARS = 32 ,
  PF_NATIVE_SPEC_ERROR_SUBSCRIPTION_WITHOUT_TIMEFRAME = 33 ,
  PF_NATIVE_SPEC_ERROR_MARGIN_MODEL_CONFLICT = 34 ,
  PF_NATIVE_SPEC_ERROR_UNKNOWN_LIQUIDATION_SIZING = 35 ,
  PF_NATIVE_SPEC_ERROR_UNKNOWN_LIQUIDATION_CHECK = 36 ,
  PF_NATIVE_SPEC_ERROR_UNKNOWN_MARGIN_EQUITY_BASIS = 37 ,
  PF_NATIVE_SPEC_ERROR_UNKNOWN_LIQUIDATION_LEVEL_BASE = 38 ,
  PF_NATIVE_SPEC_ERROR_UNKNOWN_CALCULATION_TRIGGER = 39 ,
  PF_NATIVE_SPEC_ERROR_UNKNOWN_OPEN_BAR_VIEW = 40 ,
  PF_NATIVE_SPEC_ERROR_UNKNOWN_RISK_DAY = 41 ,
  PF_NATIVE_SPEC_ERROR_UNKNOWN_RISK_ACTION = 42 ,
  PF_NATIVE_SPEC_ERROR_ZERO_RISK_LIMIT = 43 ,
  PF_NATIVE_SPEC_ERROR_MARGIN_SIDE_UNDECLARED = 44 ,
  PF_NATIVE_SPEC_ERROR_INVALID_AUXILIARY_FEED_TIMEFRAME = 45 ,
  PF_NATIVE_SPEC_ERROR_AUXILIARY_FEED_NOT_FINER_THAN_INPUT = 46 ,
  PF_NATIVE_SPEC_ERROR_UNORDERED_AUXILIARY_FEED_BARS = 47 ,
  PF_NATIVE_SPEC_ERROR_INVALID_AUXILIARY_FEED_BAR = 48 ,
  PF_NATIVE_SPEC_ERROR_AUXILIARY_FEED_WITHOUT_TIMEFRAME = 49 ,
  PF_NATIVE_SPEC_ERROR_UNKNOWN_SERIES_SOURCE = 50 ,
  PF_NATIVE_SPEC_ERROR_SUBSCRIPTION_WITHOUT_AUXILIARY_FEED = 51 ,
  PF_NATIVE_SPEC_ERROR_SUBSCRIPTION_FINER_THAN_AUXILIARY_FEED = 52 ,
  PF_NATIVE_SPEC_ERROR_WRONG_PHASE = 53 ,
  PF_NATIVE_SPEC_ERROR_UNKNOWN_EVENT_RETENTION = 54 ,
  PF_NATIVE_SPEC_ERROR_ABORTED_HOST_NO_REUSABLE_RUN_SPEC = 55 ,
  PF_NATIVE_SPEC_ERROR_SESSION_KEY_CHANGED_ON_REUSE = 56 ,
  PF_NATIVE_SPEC_ERROR_RUN_NUMBER_NOT_ABOVE_CONSUMED_HIGH_WATER = 57 ,
  PF_NATIVE_SPEC_ERROR_INVALID_INSTRUMENT_FEED_TIMEFRAME = 58 ,
  PF_NATIVE_SPEC_ERROR_DUPLICATE_INSTRUMENT_FEED = 59 ,
  PF_NATIVE_SPEC_ERROR_UNORDERED_INSTRUMENT_FEED_BARS = 60 ,
  PF_NATIVE_SPEC_ERROR_INVALID_INSTRUMENT_FEED_BAR = 61 ,
  PF_NATIVE_SPEC_ERROR_INVALID_INSTRUMENT_FEED_CLOSE = 62 ,
  PF_NATIVE_SPEC_ERROR_INVALID_INSTRUMENT_FEED_COLUMN = 63 ,
  PF_NATIVE_SPEC_ERROR_SUBSCRIPTION_WITHOUT_INSTRUMENT_FEED = 64 ,
  PF_NATIVE_SPEC_ERROR_INSTRUMENT_SUBSCRIPTION_BARS = 65 ,
  PF_NATIVE_SPEC_ERROR_INSTRUMENT_ON_NON_INSTRUMENT_SERIES = 66
}
 Why a declaration was refused — NativeRunSpecError, the kernel's own validation word: the error out-parameter of strategy_native_declare_subscriptions_ext_v1, strategy_native_declare_auxiliary_feed_v1 and strategy_configure_native_ext_result_v1. More...
 
enum  pf_native_spec_field_t {
  PF_NATIVE_SPEC_FIELD_NONE = 0 ,
  PF_NATIVE_SPEC_FIELD_SESSION_KEY = 1 ,
  PF_NATIVE_SPEC_FIELD_RUN_NUMBER = 2 ,
  PF_NATIVE_SPEC_FIELD_INPUT_TIMEFRAME = 3 ,
  PF_NATIVE_SPEC_FIELD_SCRIPT_TIMEFRAME = 4 ,
  PF_NATIVE_SPEC_FIELD_TICKER = 5 ,
  PF_NATIVE_SPEC_FIELD_TICKER_ID = 6 ,
  PF_NATIVE_SPEC_FIELD_TYPE = 7 ,
  PF_NATIVE_SPEC_FIELD_CURRENCY = 8 ,
  PF_NATIVE_SPEC_FIELD_BASE_CURRENCY = 9 ,
  PF_NATIVE_SPEC_FIELD_DESCRIPTION = 10 ,
  PF_NATIVE_SPEC_FIELD_VOLUME_TYPE = 11 ,
  PF_NATIVE_SPEC_FIELD_TIMEZONE = 12 ,
  PF_NATIVE_SPEC_FIELD_SESSION = 13 ,
  PF_NATIVE_SPEC_FIELD_CHART_TIMEZONE = 14 ,
  PF_NATIVE_SPEC_FIELD_INITIAL_CAPITAL = 15 ,
  PF_NATIVE_SPEC_FIELD_POINT_VALUE = 16 ,
  PF_NATIVE_SPEC_FIELD_ACCOUNT_FX = 17 ,
  PF_NATIVE_SPEC_FIELD_PRICE_TICK = 18 ,
  PF_NATIVE_SPEC_FIELD_SLIPPAGE_TICKS = 19 ,
  PF_NATIVE_SPEC_FIELD_FEE_KIND = 20 ,
  PF_NATIVE_SPEC_FIELD_FEE_VALUE = 21 ,
  PF_NATIVE_SPEC_FIELD_QUANTITY_GRID = 22 ,
  PF_NATIVE_SPEC_FIELD_CLOSE_EXECUTION = 23 ,
  PF_NATIVE_SPEC_FIELD_ABORT_REPORTING = 24 ,
  PF_NATIVE_SPEC_FIELD_MAX_ABS_UNITS = 25 ,
  PF_NATIVE_SPEC_FIELD_MAX_OPEN_LOTS = 26 ,
  PF_NATIVE_SPEC_FIELD_ALLOWED_OPEN_DIRECTIONS = 27 ,
  PF_NATIVE_SPEC_FIELD_INITIAL_MARGIN_FRACTION = 28 ,
  PF_NATIVE_SPEC_FIELD_INTRABAR_TIMEFRAME = 29 ,
  PF_NATIVE_SPEC_FIELD_INTRABAR_SAMPLES = 30 ,
  PF_NATIVE_SPEC_FIELD_INTRABAR_DISTRIBUTION = 31 ,
  PF_NATIVE_SPEC_FIELD_INTRABAR_VOLUME_SAMPLES = 32 ,
  PF_NATIVE_SPEC_FIELD_INTRABAR_SAMPLE_ELIGIBILITY = 33 ,
  PF_NATIVE_SPEC_FIELD_TIMEFRAME_UNDETECTED = 34 ,
  PF_NATIVE_SPEC_FIELD_SLOT_LABEL_POLICY = 35 ,
  PF_NATIVE_SPEC_FIELD_FEED_TOLERANCE = 36 ,
  PF_NATIVE_SPEC_FIELD_PATH_ORDER = 37 ,
  PF_NATIVE_SPEC_FIELD_REPORT_POLICY = 38 ,
  PF_NATIVE_SPEC_FIELD_PRICE_GRID = 39 ,
  PF_NATIVE_SPEC_FIELD_GRID_ROUNDING = 40 ,
  PF_NATIVE_SPEC_FIELD_SUBSCRIPTION_TIMEFRAME = 41 ,
  PF_NATIVE_SPEC_FIELD_SUBSCRIPTION_BARS = 42 ,
  PF_NATIVE_SPEC_FIELD_MARGIN_MODEL = 43 ,
  PF_NATIVE_SPEC_FIELD_MARGIN_INITIAL = 44 ,
  PF_NATIVE_SPEC_FIELD_MARGIN_MAINTENANCE = 45 ,
  PF_NATIVE_SPEC_FIELD_MARGIN_SIZING = 46 ,
  PF_NATIVE_SPEC_FIELD_MARGIN_SHORTFALL_MULTIPLE = 47 ,
  PF_NATIVE_SPEC_FIELD_MARGIN_MIN_UNITS = 48 ,
  PF_NATIVE_SPEC_FIELD_MARGIN_CHECK = 49 ,
  PF_NATIVE_SPEC_FIELD_MARGIN_EQUITY_BASIS = 50 ,
  PF_NATIVE_SPEC_FIELD_MARGIN_LEVEL_BASE = 51 ,
  PF_NATIVE_SPEC_FIELD_CALCULATION = 52 ,
  PF_NATIVE_SPEC_FIELD_OPEN_BAR_VIEW = 53 ,
  PF_NATIVE_SPEC_FIELD_RISK_LIMITS = 54 ,
  PF_NATIVE_SPEC_FIELD_RISK_DRAWDOWN = 55 ,
  PF_NATIVE_SPEC_FIELD_RISK_INTRADAY_LOSS = 56 ,
  PF_NATIVE_SPEC_FIELD_RISK_LOSS_DAYS = 57 ,
  PF_NATIVE_SPEC_FIELD_RISK_FILLS_PER_DAY = 58 ,
  PF_NATIVE_SPEC_FIELD_RISK_DAY_BASIS = 59 ,
  PF_NATIVE_SPEC_FIELD_RISK_ACTION = 60 ,
  PF_NATIVE_SPEC_FIELD_AUXILIARY_FEED_TIMEFRAME = 61 ,
  PF_NATIVE_SPEC_FIELD_AUXILIARY_FEED_BARS = 62 ,
  PF_NATIVE_SPEC_FIELD_SUBSCRIPTION_SOURCE = 63 ,
  PF_NATIVE_SPEC_FIELD_EVENT_RETENTION = 64 ,
  PF_NATIVE_SPEC_FIELD_QUANTITY_TOLERANCE = 65 ,
  PF_NATIVE_SPEC_FIELD_INSTRUMENT_FEED_INSTRUMENT = 66 ,
  PF_NATIVE_SPEC_FIELD_INSTRUMENT_FEED_TIMEFRAME = 67 ,
  PF_NATIVE_SPEC_FIELD_INSTRUMENT_FEED_BARS = 68 ,
  PF_NATIVE_SPEC_FIELD_INSTRUMENT_FEED_CLOSE = 69 ,
  PF_NATIVE_SPEC_FIELD_INSTRUMENT_FEED_COLUMNS = 70 ,
  PF_NATIVE_SPEC_FIELD_SUBSCRIPTION_INSTRUMENT = 71
}
 Where a declaration was refused — NativeRunSpecField, the first field the kernel's validation found: the field out-parameter of strategy_native_declare_subscriptions_ext_v1, strategy_native_declare_auxiliary_feed_v1 and strategy_configure_native_ext_result_v1. More...
 
enum  pf_native_append_error_t {
  PF_NATIVE_APPEND_ERROR_NONE = 0 ,
  PF_NATIVE_APPEND_ERROR_HOST_FAILED = 1 ,
  PF_NATIVE_APPEND_ERROR_REENTRANT = 2 ,
  PF_NATIVE_APPEND_ERROR_NOT_REALTIME = 3 ,
  PF_NATIVE_APPEND_ERROR_NO_AUXILIARY_FEED = 4 ,
  PF_NATIVE_APPEND_ERROR_INVALID_BAR_ARRAY = 5 ,
  PF_NATIVE_APPEND_ERROR_INVALID_BAR = 6 ,
  PF_NATIVE_APPEND_ERROR_UNORDERED_BARS = 7 ,
  PF_NATIVE_APPEND_ERROR_INPUT_PERIOD_ALREADY_ACCEPTED = 8 ,
  PF_NATIVE_APPEND_ERROR_ALLOCATION_FAILURE = 9
}
 Why an append was refused — NativeAuxiliaryAppendError: the error out-parameter of strategy_native_append_auxiliary_bars_ext_v1. More...
 
enum  pf_native_opening_shape_t {
  PF_NATIVE_OPENING_SHAPE_TRANSACT = 0 ,
  PF_NATIVE_OPENING_SHAPE_REVERSE_TO = 1 ,
  PF_NATIVE_OPENING_SHAPE_CLOSE_OPPOSITE = 2
}
 How an opening settles against an opposite book — native_order::OpeningShape, pf_native_terms_v1::shape. More...
 
enum  pf_native_candidate_price_t {
  PF_NATIVE_CANDIDATE_PRICE_POINT_PRICE = 0 ,
  PF_NATIVE_CANDIDATE_PRICE_TRIGGER_LEVEL = 1 ,
  PF_NATIVE_CANDIDATE_PRICE_CURRENT_QUOTE = 2
}
 Which price a matching candidate is at — native_order::NativeCandidatePriceKind, pf_native_terms_view_v1::price_kind. More...
 
enum  pf_native_driver_class_t {
  PF_NATIVE_DRIVER_CLASS_OBSERVED_PRINT = 0 ,
  PF_NATIVE_DRIVER_CLASS_CARRIED_OPEN = 1 ,
  PF_NATIVE_DRIVER_CLASS_TICK_AFTER_CALCULATION = 2 ,
  PF_NATIVE_DRIVER_CLASS_CONFIRMED_OPEN = 3 ,
  PF_NATIVE_DRIVER_CLASS_CONFIRMED_EXCURSION = 4 ,
  PF_NATIVE_DRIVER_CLASS_CONFIRMED_AFTER_CALCULATION_CLOSE = 5 ,
  PF_NATIVE_DRIVER_CLASS_CURRENT_EXECUTION = 6
}
 Which kind of driver point a candidate matched at — native_order::DriverEligibilityClass, pf_native_terms_view_v1::driver_class. More...
 
enum  pf_native_plan_t {
  PF_NATIVE_PLAN_FLATTEN = 0 ,
  PF_NATIVE_PLAN_REDUCE = 1 ,
  PF_NATIVE_PLAN_TRANSACT = 2 ,
  PF_NATIVE_PLAN_REVERSE_TO = 3
}
 The settlement shape an execution is about to take — the alternative of native_order::ExecutionPlan, pf_native_precommit_view_v1::plan. More...
 
enum  pf_native_precommit_verdict_t {
  PF_NATIVE_PRECOMMIT_ADMIT = 0 ,
  PF_NATIVE_PRECOMMIT_REFUSE = 1 ,
  PF_NATIVE_PRECOMMIT_ADMIT_WITH_HOST_MARGIN = 2
}
 What pf_native_callbacks_v1::on_precommit answers — NativePrecommitVerdict. More...
 
enum  pf_native_anchored_trigger_t {
  PF_NATIVE_ANCHORED_TRIGGER_LIMIT = 0 ,
  PF_NATIVE_ANCHORED_TRIGGER_STOP = 1 ,
  PF_NATIVE_ANCHORED_TRIGGER_TRAIL_ARM = 2
}
 Which trigger of an anchored leg the owner's fill supplies — NativeAnchoredTrigger, pf_native_anchored_level_view_v1::trigger. More...
 

Functions

int strategy_native_api_version (void)
 This header's layout version.
 
pf_strategy_t strategy_native_host_create_v1 (const pf_native_callbacks_v1 *callbacks)
 Allocate a native host that forwards every kernel callback to callbacks.
 
void strategy_native_host_free (pf_strategy_t s)
 Release a handle from strategy_native_host_create_v1.
 
int strategy_native_run_v1 (pf_strategy_t s, const pf_bar_t *bars, int n, pf_report_t *out)
 Run n bars as one batch and fill out.
 
void strategy_native_report_free_v1 (pf_report_t *report)
 Free the heap arrays inside a report filled by strategy_native_run_v1.
 
int strategy_native_submit_v1 (pf_strategy_t s, const pf_native_request_v1 *request, uint64_t *incarnation, uint32_t *reject)
 Submit request.
 
int strategy_native_replace_v1 (pf_strategy_t s, uint64_t incarnation, const pf_native_request_v1 *request, uint64_t *successor)
 Replace the live request incarnation with request.
 
int strategy_native_replace_ext_v1 (pf_strategy_t s, uint64_t incarnation, const pf_native_request_v1 *request, uint64_t *successor, uint32_t *reject)
 Replace the live request incarnation, reporting a rejection's reason.
 
int strategy_native_cancel_v1 (pf_strategy_t s, uint64_t incarnation)
 Cancel one live request.
 
int strategy_native_cancel_all_v1 (pf_strategy_t s)
 Cancel every live request, dependants included.
 
int strategy_native_cancel_where_v1 (pf_strategy_t s, const char *text, uint32_t field)
 Cancel exactly the live requests whose field equals text.
 
int strategy_native_execute_current_v1 (pf_strategy_t s, uint64_t incarnation, uint32_t price_rule, uint32_t *refusal)
 Execute one live request at the current execution point.
 
int strategy_native_position_v1 (pf_strategy_t s, double *signed_units, double *average_price, uint64_t *lots)
 Read the physical position.
 
int strategy_native_working_len_v1 (pf_strategy_t s)
 Snapshot the live working book and return its length.
 
int strategy_native_working_get_v1 (pf_strategy_t s, int index, pf_native_working_v1 *out)
 Copy row index of the most recent working snapshot into out.
 
int strategy_native_open_lot_count_v1 (pf_strategy_t s, double mark)
 Snapshot the open lots marked at mark and return their count.
 
int strategy_native_open_lot_get_v1 (pf_strategy_t s, int index, pf_native_open_lot_v1 *out)
 Copy row index of the most recent open-lot snapshot into out.
 
int strategy_native_events_v1 (pf_strategy_t s, uint64_t after_ordinal, pf_native_event_v1 *out, int cap)
 Copy up to cap events with an ordinal strictly greater than after_ordinal into out, in the kernel's own recording order.
 
int strategy_native_acknowledge_events_v1 (pf_strategy_t s, uint64_t through_ordinal)
 The host has read every event through through_ordinal — native_acknowledge_events().
 
int strategy_native_event_window_v1 (pf_strategy_t s, uint64_t *out_first_ordinal)
 The oldest ordinal a read can still return — native_event_window_start() — written to out_first_ordinal: every command event at or above it is retained, and strategy_native_events_v1 with an after_ordinal below it starts there.
 
int strategy_native_state_v1 (pf_strategy_t s, pf_native_state_v1 *out)
 Read the run's lifecycle and typed failure into out.
 
int strategy_native_declare_subscriptions_v1 (pf_strategy_t s, const pf_native_subscription_v1 *rows, int n)
 Declare this run's higher-timeframe series from inside on_run_begin — declare_timeframe_subscriptions().
 
int strategy_native_declare_subscriptions_ext_v1 (pf_strategy_t s, const pf_native_subscription_v1 *rows, int n, const uint32_t *sources, uint32_t *error, uint32_t *field)
 The same declaration, answered by name — declare_timeframe_subscriptions_result().
 
int strategy_native_declare_auxiliary_feed_v1 (pf_strategy_t s, const char *tf, const pf_bar_t *bars, int32_t n, uint32_t *error, uint32_t *field)
 Declare, replace or withdraw this run's auxiliary finer feed from inside on_run_begin — declare_auxiliary_feed_result().
 
int strategy_native_partial_bar_v1 (pf_strategy_t s, pf_bar_t *out)
 The bar so far — current_partial_bar().
 
int strategy_native_recalculations_v1 (pf_strategy_t s, uint64_t *driven, uint64_t *skipped)
 How many recalculations the kernel drove, and how many it suppressed because a point had spent its max_recalculations_per_point budget — native_recalculation_count() / native_recalculations_skipped().
 
int strategy_native_trail_state_v1 (pf_strategy_t s, uint64_t incarnation, pf_native_trail_state_v1 *out)
 The trail projection of one live request — trail_state().
 
int strategy_native_series_bar_v1 (pf_strategy_t s, uint32_t subscription, pf_bar_t *out)
 The latest completed bucket of a declared subscription — native_series_bar().
 
int strategy_native_timeframe_bar_interval_v1 (pf_strategy_t s, pf_native_timeframe_interval_v1 *out)
 Read the delivered bucket's own calendar interval from inside pf_native_callbacks_v1::on_timeframe_bar.
 
int strategy_native_marked_equity_v1 (pf_strategy_t s, double mark, double *out)
 The account's marked equity at mark — native_marked_equity().
 
int strategy_native_liquidation_price_v1 (pf_strategy_t s, double *out)
 The price at which the marked equity falls below the run's maintenance requirement for the live position's side — native_liquidation_price().
 
int strategy_native_sized_units_v1 (pf_strategy_t s, const pf_native_request_v1 *sized, double price, double equity, double fx, double *units)
 The units a kernel-sized request resolves to under this run's spec, as a pure query — native_sized_units().
 
int strategy_native_risk_state_v1 (pf_strategy_t s, pf_native_risk_state_v1 *out)
 The run's generic risk ledger — native_risk_state().
 
int strategy_native_margin_call_v1 (pf_strategy_t s, uint64_t ordinal, pf_native_margin_call_v1 *out)
 The whole economics of one margin call — what a C++ host's on_native_margin_call receives as MarginCallEvent.
 
int strategy_native_continuation_hash_v1 (pf_strategy_t s, uint64_t *out)
 The run's continuation identity — native_continuation_hash().
 
int strategy_native_cohort_open_v1 (pf_strategy_t s, uint64_t *cohort)
 Open a cohort roster for PF_NATIVE_OWNER_BIND_COHORT.
 
int strategy_native_cohort_add_v1 (pf_strategy_t s, uint64_t cohort, uint64_t incarnation)
 Enrol a live request into a cohort roster.
 
int strategy_native_cohort_remove_v1 (pf_strategy_t s, uint64_t cohort, uint64_t incarnation)
 Remove a request from a cohort roster.
 
int strategy_configure_native_ext_v1 (pf_strategy_t s, const pf_native_run_spec_v1 *base, const pf_native_run_spec_ext_v1 *ext)
 Configure a native run from the v1 specification plus the extension.
 
int strategy_configure_native_ext_result_v1 (pf_strategy_t s, const pf_native_run_spec_v1 *base, const pf_native_run_spec_ext_v1 *ext, uint32_t *error, uint32_t *field)
 The typed spelling of strategy_configure_native_ext_v1: the same inputs, plus error / field, which receive the kernel's pf_native_spec_error_t / pf_native_spec_field_t pair once the call's phase or its specification has been judged.
 
int strategy_native_append_auxiliary_bars_v1 (pf_strategy_t s, const pf_bar_t *bars, int32_t n)
 Append later bars to the run's declared auxiliary feed on a realtime stream (NativeStrategyHost::append_auxiliary_bars).
 
int strategy_native_append_auxiliary_bars_ext_v1 (pf_strategy_t s, const pf_bar_t *bars, int32_t n, uint32_t *error, int32_t *index)
 The same append, answered by name — append_auxiliary_bars_result().
 
int strategy_native_declare_opened_lot_entry_bar_mask_v1 (pf_strategy_t s, uint64_t entry_incarnation, const pf_bar_t *entry_bar, uint32_t fill_point)
 Declare where the fill that opened a lot sits on its entry bar — declare_opened_lot_entry_bar_mask(), the entry-side half of the excursion capability pf_native_callbacks_v1::on_lot_excursion owns (RULING A48).
 

Macro Definition Documentation

◆ PINEFORGE_HAS_NATIVE_C_API_V1

#define PINEFORGE_HAS_NATIVE_C_API_V1   1

Feature probe for the C-level native host API.

When defined, strategy_native_host_create_v1 is available.

Definition at line 286 of file native_c_api.h.

◆ PF_NATIVE_API_VERSION

#define PF_NATIVE_API_VERSION   1

Monotonic version of this header's native-C layouts.

Every versioned struct below carries it in its version field.

Definition at line 290 of file native_c_api.h.

Referenced by grid_without_a_ladder_is_refused(), main(), make_ext(), on_bar(), run_mode(), and submit().

◆ PF_NATIVE_FAILURE_CALLBACK

#define PF_NATIVE_FAILURE_CALLBACK   5

NativeFailureCode::CallbackException — the code latched when a C callback returns non-zero.

The historical spelling of PF_NATIVE_FAILURE_CALLBACK_EXCEPTION, kept for the callers written against it; pinned by a static_assert.

Definition at line 334 of file native_c_api.h.