Developer API

FeatureSemantic

Defines the semantic interpretation of a single feature, including its anchor reference point and optional evaluation range.

Properties of FeatureSemantic

NameTypeDescription
FeatureNamestringDefines the name of the feature used as a decision input. This represents a measurable dimension within the model (e.g., Price, Volume, SentimentScore) and is used for matching, proximity evaluation, and rule execution.
Incrementdecimal?Specifies the resolution or step size for the feature. When set, values are treated as discrete increments (e.g., bucketed or stepped). When null, the feature is treated as continuous and evaluated using natural numeric proximity.
Anchordecimal?Optional reference value used as the semantic anchor for the feature. The anchor establishes the contextual center point used in proximity or directional evaluation. If not specified, the anchor defaults to zero.
WeightdecimalSpecifies how much this feature influences the final decision score. Higher values increase its impact, while lower values reduce its contribution. Must be between 0 and 100.
DistanceBehaviorenumDistanceBehaviorControls how distance maps to score (closer vs farther).
DirectionBehaviorenumDirectionBehaviorControls which side of the target is preferred.
DataTypeenumZTDataType
SemanticTypeenumSemanticType
IntentenumFeatureUsageType
EnumerationValuesHashSet
Mindecimal?The minimum boundary of the feature range. When a value is assigned, the internal range automatically adjusts to maintain correct lower and upper bounds.
Maxdecimal?The maximum boundary of the feature range. When a value is assigned, the internal range automatically adjusts to maintain correct lower and upper bounds.

Example

	{
  "InputSource": {
    "LastPrice": 102.45,
    "Volume": 1500000,
    "VolatilityIndex": 22.8,
    "MovingAverageSpread": 1.35
  },
  "ModelSource": {
    "resultsets": {
      "TradingRules": [
        {
          "ID": "TR-001",
          "VolatilityIndex": ">= 20",
          "MovingAverageSpread": ">= 1.0",
          "Weight": 0.8,
          "IsEnabled": true,
          "Action": "Buy"
        },
        {
          "ID": "TR-002",
          "VolatilityIndex": "< 20",
          "MovingAverageSpread": "< 0",
          "Weight": 0.6,
          "IsEnabled": true,
          "Action": "Sell"
        },
        {
          "ID": "TR-003",
          "Weight": 0.2,
          "IsEnabled": true,
          "Action": "Hold"
        }
      ]
    }
  },
  "Options": {
    "DataSettings": {
      "ActionColumnName": "Action",
      "PriorityColumnName": "VolatilityIndex",
      "WeightColumnName": "Weight",
      "DecisionIdColumnName": "ID",
      "RowFilter": "IsEnabled = true",
      "ModelName": "TradingDecisionModel"
    },
    "ContextOptions": {
      "CustomTag": "Trade-Session-Alpha"
    },
    "ConfidencePolicy": {
        "FitWeight": 1,
        "SeparationWeight": 0.03
    },
    "OutputSettings": {
      "ExecutionTraceMode": "Compact"
    }
  }
}