MTContext Docs
Tool Reference

Macro Risk

6 tools in this category.

Overview

Macro Risk includes 6 tools for this workflow area.

Available tools: get_economic_surprise, get_event_risk, get_event_sensitivity, get_holding_risk, get_risk_regime, manage_news_guard.

Use the parameter tables and examples below as the canonical request contract.

get_economic_surprise

Returns a rolling actual-vs-forecast surprise index for a currency's economic events, weighted by impact tier (high=3×, medium=1×, low ignored). Reports insufficient_history when fewer than 30 days of data exist. Actuals are harvested server-side from a connected MT5 terminal, so history only accumulates while one is online. Requires the analytics capability (Team+ tier).

Parameters

NameTypeRequiredDefaultDescription
currencystringYes——
daysintegerNo90—

Example Request

{
  "tool": "get_economic_surprise",
  "arguments": {
    "currency": "currency_value"
  }
}

get_event_risk

Preflight check: returns a graded verdict (proceed/caution/block) for trading a symbol based on upcoming high-impact economic events within the horizon. Uses the server-side calendar — works with no terminal connected. Includes blackout windows, resume_after time, and per-event details. Unknown symbols default to caution (fail-safe). Requires the analytics capability (Team+ tier).

Parameters

NameTypeRequiredDefaultDescription
symbolstringYes——
horizon_hoursnumberNo4—
high_before_minintegerNo——
high_after_minintegerNo——
medium_before_minintegerNo——
medium_after_minintegerNo——

Example Request

{
  "tool": "get_event_risk",
  "arguments": {
    "symbol": "EURUSD"
  }
}

get_event_sensitivity

Reports, per calendar event type, how far a symbol has historically moved when that event landed — joining the persisted calendar against the symbol's own H1 price history. Move = high-to-low range spanning the event's bar and the following bar, in points and normalised by ATR at that time. H1 resolution overstates a short spike's duration; event types with fewer than 3 occurrences report insufficient_history and omit averages. Results are cached for at least one hour. Requires the analytics capability (Team+ tier).

Parameters

NameTypeRequiredDefaultDescription
symbolstringYes——
event_typestringNo——
lookback_daysintegerNo90—

Example Request

{
  "tool": "get_event_sensitivity",
  "arguments": {
    "symbol": "EURUSD"
  }
}

get_holding_risk

Assesses risk for holding (or planning to hold) a position in a symbol for a specified duration. Reports events landing inside the hold window, weekend/market-closure gap exposure, and triple-swap day flags. Uses the server-side calendar — works with no terminal. Requires the analytics capability (Team+ tier).

Parameters

NameTypeRequiredDefaultDescription
symbolstringYes——
expected_hold_hoursnumberNo24—

Example Request

{
  "tool": "get_holding_risk",
  "arguments": {
    "symbol": "EURUSD"
  }
}

get_risk_regime

Returns a composite risk-on/risk-off score in [−1, 1] from z-scored market inputs (VIX, DXY, gold, 2s10s spread, equities). Pure scoring function with transparent per-input drivers, confidence, missing_inputs, and sizing_advice. Requires at least 3 available inputs or returns REGIME_UNAVAILABLE. Requires the analytics capability (Team+ tier).

Parameters

No parameters.

Example Request

{
  "tool": "get_risk_regime",
  "arguments": {}
}

manage_news_guard

Manages a persistent server-side news monitor, dispatched by action. Requires the analytics capability. Notify-only: the guard never closes positions or blocks trades.

action=set: configures the guard. When enabled, it polls news at the specified interval, classifies articles by severity and affected currencies, and triggers alerts (via manage_alerts action=poll) when articles meet the threshold. One guard per license — calling again replaces the config. Requires currencies.

action=status: returns the current configuration, enabled state, last poll time, classifier mode (llm/heuristic), and count of alerts raised in the last 24h. Returns { status: 'none' } if no guard is configured.

action=remove: removes the news guard for this license. The guard stops polling immediately. Returns { removed: true } on success.

Parameters

NameTypeRequiredDefaultDescription
actionstringYes—(one of: set, status, remove)
currenciesarrayNo—Required for action=set.
keywordsarrayNo[]—
min_severitystringNo"high"(one of: low, medium, high, critical)
poll_interval_secondsintegerNo300—

Example Request

{
  "tool": "manage_news_guard",
  "arguments": {
    "action": "set"
  }
}

On this page