Skip to main content
Glama

daytrade_opportunity_scan

Read-onlyIdempotent

Run one symmetric long/short scan over the same top-volume universe and return rule-independent breadth, 24h liquidity semantics and ranked directional candidates. Use this first for comprehensive day-trade or scalp discovery; then deep-dive only the shortlist with derivatives/order-flow tools. For a general scalp request use style:"scalp" and omit longRules/shortRules to use transparent RSI/EMA defaults. For explicit user filters use screener_run instead. Near misses never satisfy all rules.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "daytrade_opportunity_scan"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameNo
quoteNo
styleNoscalp defaults to 5m; daytrade to 15m. Explicit timeframe overrides this.
marketNoDefaults to the chart. Perpetuals are futures.
exchangeNoDefaults to the chart.
lookbackNoDefault 300.
longRulesNo
timeframeNoDefault 5m for scalp, otherwise 15m; does not inherit the open chart.
shortRulesNo
limitPerSideNoCandidates returned per direction. Default 10, max 25.
universeSizeNoDefault 100.
manualSymbolsNoOptional symbols forced into the universe before current-volume ranking.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changed
    • addedInput schema / properties / longRules / items / properties / left / properties
      Added value: +{
      +  "expression": {
      +    "type": "string"
      +  },
      +  "field": {
      +    "enum": [
      +      "open",
      +      "high",
      +      "low",
      +      "close",
      +      "volume",
      +      "quoteVolume",
      +      "trades",
      +      "change1",
      +      "change5",
      +      "rangePercent"
      +    ],
      +    "type": "string"
      +  },
      +  "kind": {
      +    "enum": [
      +      "field",
      +      "indicator",
      +      "formula",
      +      "strategy"
      +    ],
      +    "type": "string"
      +  },
      +  "name": {
      +    "type": "string"
      +  },
      +  "parameters": {
      +    "additionalProperties": {
      +      "type": "number"
      +    },
      +    "type": "object"
      +  },
      +  "params": {
      +    "additionalProperties": {
      +      "type": [
      +        "number",
      +        "string",
      +        "boolean"
      +      ]
      +    },
      +    "type": "object"
      +  },
      +  "plotKey": {
      +    "description": "Optional; defaults to the first indicator output.",
      +    "type": "string"
      +  },
      +  "strategyId": {
      +    "type": "string"
      +  },
      +  "studyId": {
      +    "description": "Indicator id, e.g. rsi or ema.",
      +    "type": "string"
      +  }
      +}
    • addedInput schema / properties / longRules / items / properties / right / anyOf
      Added value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "properties": {
      +      "kind": {
      +        "enum": [
      +          "constant",
      +          "operand"
      +        ],
      +        "type": "string"
      +      },
      +      "operand": {
      +        "properties": {
      +          "expression": {
      +            "type": "string"
      +          },
      +          "field": {
      +            "type": "string"
      +          },
      +          "kind": {
      +            "enum": [
      +              "field",
      +              "indicator",
      +              "formula",
      +              "strategy"
      +            ],
      +            "type": "string"
      +          },
      +          "params": {
      +            "type": "object"
      +          },
      +          "plotKey": {
      +            "type": "string"
      +          },
      +          "strategyId": {
      +            "type": "string"
      +          },
      +          "studyId": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "value": {
      +        "type": "number"
      +      }
      +    },
      +    "type": "object"
      +  }
      +]
    • changedInput schema / properties / longRules / items / properties / right / description
      Previous value: -"A number, or another operand in the same form as left."New value: +"Use a number for a threshold: RSI >50 is {left:{kind:\"indicator\",studyId:\"rsi\"},operator:\"above\",right:50}. To compare with an indicator use {kind:\"operand\",operand:{kind:\"indicator\",studyId:\"ema\",params:{period:20}}}."
    • addedInput schema / properties / shortRules / items / properties / left / properties
      Added value: +{
      +  "expression": {
      +    "type": "string"
      +  },
      +  "field": {
      +    "enum": [
      +      "open",
      +      "high",
      +      "low",
      +      "close",
      +      "volume",
      +      "quoteVolume",
      +      "trades",
      +      "change1",
      +      "change5",
      +      "rangePercent"
      +    ],
      +    "type": "string"
      +  },
      +  "kind": {
      +    "enum": [
      +      "field",
      +      "indicator",
      +      "formula",
      +      "strategy"
      +    ],
      +    "type": "string"
      +  },
      +  "name": {
      +    "type": "string"
      +  },
      +  "parameters": {
      +    "additionalProperties": {
      +      "type": "number"
      +    },
      +    "type": "object"
      +  },
      +  "params": {
      +    "additionalProperties": {
      +      "type": [
      +        "number",
      +        "string",
      +        "boolean"
      +      ]
      +    },
      +    "type": "object"
      +  },
      +  "plotKey": {
      +    "description": "Optional; defaults to the first indicator output.",
      +    "type": "string"
      +  },
      +  "strategyId": {
      +    "type": "string"
      +  },
      +  "studyId": {
      +    "description": "Indicator id, e.g. rsi or ema.",
      +    "type": "string"
      +  }
      +}
    • addedInput schema / properties / shortRules / items / properties / right / anyOf
      Added value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "properties": {
      +      "kind": {
      +        "enum": [
      +          "constant",
      +          "operand"
      +        ],
      +        "type": "string"
      +      },
      +      "operand": {
      +        "properties": {
      +          "expression": {
      +            "type": "string"
      +          },
      +          "field": {
      +            "type": "string"
      +          },
      +          "kind": {
      +            "enum": [
      +              "field",
      +              "indicator",
      +              "formula",
      +              "strategy"
      +            ],
      +            "type": "string"
      +          },
      +          "params": {
      +            "type": "object"
      +          },
      +          "plotKey": {
      +            "type": "string"
      +          },
      +          "strategyId": {
      +            "type": "string"
      +          },
      +          "studyId": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "value": {
      +        "type": "number"
      +      }
      +    },
      +    "type": "object"
      +  }
      +]
    • changedInput schema / properties / shortRules / items / properties / right / description
      Previous value: -"A number, or another operand in the same form as left."New value: +"Use a number for a threshold: RSI >50 is {left:{kind:\"indicator\",studyId:\"rsi\"},operator:\"above\",right:50}. To compare with an indicator use {kind:\"operand\",operand:{kind:\"indicator\",studyId:\"ema\",params:{period:20}}}."
    • addedInput schema / properties / style
      Added value: +{
      +  "description": "scalp defaults to 5m; daytrade to 15m. Explicit timeframe overrides this.",
      +  "enum": [
      +    "scalp",
      +    "daytrade"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / timeframe / description
      Previous value: -"Discovery timeframe; normally 15m or 1h."New value: +"Default 5m for scalp, otherwise 15m; does not inherit the open chart."
    • removedInput schema / required
      Removed value: -[
      -  "longRules",
      -  "shortRules"
      -]
  2. Changed2 schema fields changed
    • addedInput schema / properties / exchange
      Added value: +{
      +  "description": "Defaults to the chart.",
      +  "enum": [
      +    "binance",
      +    "bybit",
      +    "okx",
      +    "hyperliquid"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / market
      Added value: +{
      +  "description": "Defaults to the chart. Perpetuals are futures.",
      +  "enum": [
      +    "spot",
      +    "futures"
      +  ],
      +  "type": "string"
      +}
  3. Changed4 schema fields changed
    • changedInput schema / properties / longRules / items / properties / right / description
      Previous value: -"{\"kind\":\"constant\",\"value\":30} or {\"kind\":\"operand\",\"operand\":{…}}"New value: +"A number, or another operand in the same form as left."
    • removedInput schema / properties / longRules / items / properties / right / type
      Removed value: -"object"
    • changedInput schema / properties / shortRules / items / properties / right / description
      Previous value: -"{\"kind\":\"constant\",\"value\":30} or {\"kind\":\"operand\",\"operand\":{…}}"New value: +"A number, or another operand in the same form as left."
    • removedInput schema / properties / shortRules / items / properties / right / type
      Removed value: -"object"
  4. First observed

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, openWorld, non-destructive, so safety is covered. The description adds meaningful behavior beyond that: rule-independent breadth is returned regardless of rules, 24h liquidity semantics are included, and 'Near misses never satisfy all rules' discloses strict AND matching that would otherwise surprise an agent reading a ranked list.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four tight sentences with the purpose and output shape front-loaded, then routing, then defaults, then a caveat. Nothing is padded, though the quoted '"scalp"' rendering is slightly awkward and the final caveat sentence could be folded into the routing sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter, rule-building scan with no output schema, the description covers purpose, output categories, default behavior, and the strict-match caveat. It stops short of characterizing the ranked-candidate fields or how breadth/liquidity are reported, which leaves some ambiguity about what a caller actually receives.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%, and the description fills the most consequential gaps: style defaults (scalp=5m, daytrade=15m) and the instruction to omit longRules/shortRules to fall back to transparent RSI/EMA defaults. It says nothing about limitPerSide, universeSize, manualSymbols, quote, or the rule-object syntax, which remain schema-only.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Run one symmetric long/short scan over the same top-volume universe') plus the outputs (breadth, 24h liquidity semantics, ranked directional candidates). It explicitly separates itself from screener_run and from the derivatives/order-flow deep-dive tools, so an agent can route without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit sequencing ('Use this first... then deep-dive only the shortlist'), an alternative with its selecting condition ('For explicit user filters use screener_run instead'), and a default path for a general scalp request (style:"scalp" with longRules/shortRules omitted). When-to-use, when-to-use-something-else, and the default invocation are all covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources