Tactical order and position monitoring
Understand a Tactical pattern that sizes an order, checks margin, tracks its lifecycle, and monitors the position.
Advanced Tactical · Step 2 of 2
This example is a composition pattern, not a ready-made trading recommendation.
Goal
After a Tactical signal matches, calculate a position size, check available margin, submit an order, wait for lifecycle events, and monitor an opened position.
This is an advanced extension of a signal graph, not a variant of the five-node Alert starter that is immediately ready to submit. You need supported market data, an instrument and execution settings accepted by the Backtest profile, and access to the chosen nodes. Margin Check requires Pro. Work on a copy or checkpoint so you can compare the original signal with the extended graph.
Suggested structure
- Event Trigger starts the control path.
- Data Source and Indicator provide signal data.
- Condition selects Match or No Match.
- Position Sizer calculates quantity from explicit risk inputs.
- Margin Check handles Sufficient and Insufficient separately.
- Order submits the configured request and produces an Order Ticket.
- Await Order Event handles filled, rejected, canceled, expired, and timeout outcomes.
- Position Monitor follows an open position and handles update, exit, and closure outcomes.
Use Order Ticket Field or Order Result Field only when you need a scalar value from their structured output.
Wire one complete lifecycle
Use a Condition Match as the starting point for this illustration. The value-only Position Sizer calculates a number; it does not need a control edge. Configure its method and required inputs, then connect Calculated Size to the quantity input that you select on the downstream node. With fixed sizing, a configured size of 1 means the example requests one unit before instrument minimums, step sizes and other runtime constraints. The quantity is not itself a buy signal.
Connect Condition.Match → Margin Check as control. Provide Instrument and Size as compatible data, plus a price when the chosen calculation needs it. The check's Sufficient and Insufficient outcomes describe this pre-submission estimate; Sufficient does not guarantee that Order will be accepted. Connect Sufficient → Order, configure Order's side, type, instrument and quantity source, and inspect the active ports for that combination. A limit or stop order can require additional prices that a market order does not.
For lifecycle tracking, connect Order.Submitted → Await Order Event as control and Order.Order Ticket → Await Order Event.Order Ticket as data. Submitted means a request was accepted for submission; it is not a fill. Configure a bounded timeout and connect Filled to the path that prepares Position Monitor only when a filled position and its required inputs are available. Handle Rejected, Canceled, Expired and Timeout separately. A rejected event must not be treated as if a Fill Price existed.
Safety branches
Do not connect only the successful path. Add an Alert, Cancel Orders, Halt, or another appropriate recovery for denied submission, insufficient margin, timeout, and rejected outcomes.
These branches are graph decisions, not interchangeable cleanup actions. Cancel Orders requests cancellation and has its own confirmation outcome; it cannot undo an already filled trade. A Safety Trigger guard has a bounded safety role and is not another ordinary Order entry point. Keep an explicit path for a failed estimate or submission rather than silently joining it to the filled-position path.
Verify
Check every required input, resolve validation, save, and review Backtest execution assumptions and costs. Simulated results do not guarantee live results.
Before submission, trace the control path and the data path independently, verify all conditional fields in the Inspector, and save the graph. In Backtest Center, confirm the tested version, order outcomes, fills and costs. If the run has zero trades, inspect whether the signal matched, the margin check passed, and Order reached Submitted before concluding that market data was the cause. The node reference lists the active fields and tier gates; read the result explains the evidence after a run.
Related documentation
- Build Tactical strategiesDesign an event-driven graph with one primary trigger, explicit control branches, and typed market data.
- OrderSubmits a configured Tactical order and produces a ticket for lifecycle tracking.
- Position MonitorObserves an open position and branches on updates, exits, and closure.