Extension Type Catalog
Code Lab supports eight custom script categories. Choose the category by responsibility; folder names alone do not change how a class is discovered.
| Extension | Status | Namespace | Base type | Runtime role |
|---|---|---|---|---|
| Indicator | Current | HyperionX.Custom.Indicators | Indicator | Calculate series, plots, drawings, and chart overlays. |
| Strategy | Current | HyperionX.Custom.Strategies | Strategy | Evaluate signals, submit orders, manage positions, and record performance. |
| Bar type | Preview | HyperionX.Custom.BarTypes | CustomBarType / BarTypeBase | Convert base bars or trade ticks into a custom candle series. |
| Optimizer | Preview | HyperionX.Custom.Optimizers | Optimizer | Schedule parameter combinations for strategy research. |
| Optimization fitness | Preview | HyperionX.Custom.OptimizationFitnesses | OptimizationFitness | Produce the score used to rank optimization results. |
| Money management | Preview | HyperionX.Custom.MoneyManagements | MoneyManagement | Convert price and multiplier inputs into an order quantity. |
| Commission | Preview | HyperionX.Custom.Commissions | Commission | Calculate a cost for each completed Trade. |
| Add-on | Current | HyperionX.Custom.Addons | AddonBase | Run platform-level load and unload behavior. |
All sources normally live below %USERPROFILE%\Documents\HyperionX\Bin\Custom in the matching category folder.
“Preview” means the runtime and Code Lab template exist, but the public contract or installed bootstrap/default bundle is not yet consistent across every 1.1.10 installation. Confirm the required base/default types in the target installation and test the packaged app, not only a source checkout.
Which type should I use?
Use an indicator when
- The output is a value, signal, plot, candle color, background, drawing, or chart overlay.
- Another indicator or strategy should be able to consume the output series.
- No order should be placed directly by the component.
Build your first indicator · Indicator patterns · Indicator reference
Indicators can additionally implement IIndicatorAnalysisProvider to publish structured read-only events to local AI analysis, or IResearchFeatureProvider to contribute named numeric features to research datasets. These are optional indicator capabilities, not standalone Code Lab categories.
Use a strategy when
- The component owns entry and exit decisions.
- It must submit, cancel, or change orders.
- It needs strategy position state, executions, or performance results.
Strategy guide · Strategy patterns · Orders reference
If a component only identifies a setup, prefer an indicator with a readable output series. Put account selection, quantity, order routing, and risk behavior in a strategy.
Use a custom bar type when
- Charts and research should share a non-standard candle construction.
- The transformation must work from base candles, trade ticks, or both.
- The series needs explicit add, update, replace, and flush semantics.
Custom bar types · Series and bars
Use research extensions when
- You need a different parameter-search algorithm: use an optimizer.
- You need a different result-ranking formula: use an optimization fitness.
- You need reusable sizing logic: use money management.
- You need reusable cost modeling: use a commission.
Research extensions · Optimization
Use an add-on when
- Logic must start when the custom assembly loads rather than when a chart calculates.
- The extension owns subscriptions or resources with an explicit shutdown path.
- Indicator or strategy lifecycle hooks are the wrong scope.
Discovery rules
The custom assembly is scanned after a successful build and load. Follow these rules across all extension categories:
- Declare a public, non-abstract class.
- Derive from the documented base type.
- Keep class names unique across the custom project.
- Use a public parameterless constructor when the runtime instantiates the type.
- Keep the file in the matching category namespace and folder so Code Lab and users can find it predictably.
- Do not put generated support code from another platform into the source tree.
Bar types are registered through the bar-builder registry. Research modules and add-ons are discovered by base type. Indicators and strategies also participate in generated helper and property metadata workflows.
Capabilities are not shared equally
Indicator and Strategy inherit the bar-series lifecycle and structured Ctx facade. Do not assume that Optimizer, OptimizationFitness, MoneyManagement, Commission, CustomBarType, or AddonBase exposes Close, CurrentBar, Draw, or Ctx.
| Capability | Indicator | Strategy | Other extension types |
|---|---|---|---|
Bar series and OnBarUpdate() | Yes | Yes | Only where that extension contract explicitly provides data. |
| Plots and drawings | Yes | Yes | No shared script API. |
Ctx.Orders | No | Yes | No. |
| Backtest performance | No | Yes | Passed explicitly to fitness and related research contracts. |
| Platform load/unload | No | No | Add-ons only. |
The active release-candidate source now contains a Preview generator and runtime bridge for direct SDK IndicatorBase and StrategyBase subclasses. That bridge is still unreleased and is not an established packaged 1.1.10 contract. Use the HyperionX.Custom.Indicators.Indicator and HyperionX.Custom.Strategies.Strategy model for public samples and distributed extensions. See API status.
Built-in Code Lab templates
HyperionX 1.1.10 includes templates for:
- Plotted, blank, signal-arrow, candle-color, overlay-label, and specialized indicators.
- Blank, moving-average cross, limit timeout, stop/breakout, scale-in/out, and specialized strategies.
- Pass-through and tick-count bar types.
- Grid optimizer, net-profit fitness, and profit-factor fitness.
- Fixed-quantity money management and flat commission.
- A simple load/unload add-on.
Start from the closest template. It establishes the current namespace and method signatures and is safer than adapting memory from another trading platform.