futu-unusual-technical-signal-alerts
About futu-unusual-technical-signal-alerts
This Futu skill uses the official futu CLI to find technical signals for a specified stock over a chosen window and organize them by signal class. It is intended for event-focused anomaly checks rather than routine technical overviews.
Key features
- 01Detects indicator and candlestick alerts
- 02Filters by time window and indicator
- 03Normalizes stock symbols
- 04Groups results by signal class
- 05Explicitly reports no anomaly
Use cases
- 01Check recent technical alerts for a stock
- 02Filter for MACD or RSI signals
- 03Review candlestick patterns by date
- 04Produce a structured alert summary
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ futunnopen/ futu-agent-hub --skill futu-unusual-technical-signal-alertsAfter installing, type/futu-unusual-technical-signal-alertsin Claude Code to confirm it loaded.
Details
From the project README技术面异动 · Technical Signal Alerts
Detects technical signal alerts for a specific stock and formats the result as a structured Technical Signal Alerts summary.
This skill is for unusual-move detection rather than a regular technical overview. Focus on concrete alert events within the requested window. Do not add extra market commentary, fundamentals-based explanations, or investment advice.
If the user only says a broad request such as 英伟达异动, NVDA 异动, 腾讯有没有异常 and does not specify a dimension, treat it as a bundled 异动 request. In that case, use this skill together with futu-unusual-capital-flows and futu-unusual-derivatives-activity.
Prerequisite: Futu CLI
This skill calls futu unusual technical-signals (OAuth REST via the official CLI). Do not use OpenD, futu-api, or removed futuapi scripts.
Before the workflow, follow CLI runtime: probe futu auth status --format json silently. If the CLI is missing or the user is not logged in, stop and resolve before calling unusual commands. If futu unusual is not recognized, say Unusual skills need a newer CLI — see repo docs/migration-gaps-and-rest-api.md.
Workflow
1. Parse User Input
Extract the following from the user's request:
stock_target: stock code, Chinese stock name, English company name, or ticker explicitly mentioned by the usertime_range: default7; if the user says最近 3 天/过去两周/last 5 days, convert it to a natural-day integerindicator_filters: optional; only extract when the user clearly asks for one or more specific indicatorslanguage_id: infer from the user's language
If the target stock is missing, ask a follow-up question instead of guessing.
2. Normalize the Stock Target into a Standard Symbol
Before calling the CLI, convert the user-mentioned stock target into a standard symbol such as US.NVDA, HK.00700, SH.600519, or SZ.000001.
Normalization rules:
- If the user already gives a fully qualified symbol like
US.NVDAorHK.00700, use it directly. - If the user gives a Chinese company name, English company name, or common ticker, map it to the matching market-prefixed symbol.
- If the symbol is ambiguous, ask a follow-up question instead of guessing.
Common mappings:
| User mention | Standard symbol |
|---|---|
| 腾讯 | HK.00700 |
| 阿里巴巴、阿里 | HK.09988 |
| 苹果、Apple | US.AAPL |
| 特斯拉、Tesla | US.TSLA |
| 英伟达、NVIDIA | US.NVDA |
| 微软、Microsoft | US.MSFT |
| 谷歌、Google、Alphabet | US.GOOG |
| 亚马逊、Amazon | US.AMZN |
| Meta、脸书、Facebook | US.META |
| 台积电、TSM | US.TSM |
| 贵州茅台、茅台 | SH.600519 |
| 宁德时代 | SZ.300750 |
Ticker inference guidance:
NVDA,AAPL,TSLA,MSFT,GOOG,METAusually mean US stocks, so normalize toUS.NVDA,US.AAPL,US.TSLA,US.MSFT,US.GOOG,US.META.00700by itself is ambiguous in plain text; when the context clearly refers to Tencent, normalize toHK.00700.- If the same company has both HK and US listings and the user does not specify the market, ask a clarifying question.
3. Map Technical Intent to indicator_filters
Prefer these canonical indicator_filters values when the user clearly asks about a subset:
CCIKDJBIASARBRVRPSYOSCWMSRMACDBOLLMARSI6RSI12RSI24
Selection guidance:
- If the user asks a broad technical question and does not limit indicators, omit
indicator_filters. - If the user asks about
MACD,金叉, or死叉, includeMACD. - If the user asks about
RSIor超买超卖, includeRSI6,RSI12, andRSI24. - If the user asks about
ARBR, include bothARandBR. - If the user asks about
BIAS24or乖离率, includeBIAS. - If the user asks about one specific indicator, only pass that indicator's backend filter value when possible.
4. Infer language_id
Use the following language mapping:
0: Simplified Chinese1: Traditional Chinese2: English4: Thai5: Japanese
Default strategy:
- Chinese user ->
0 - Traditional Chinese request ->
1 - English user ->
2 - If unclear, default to
0
5. Call the CLI
After extracting and normalizing the parameters, run (repeat --indicator-filters for each filter, or pass a comma-separated list if the CLI accepts it):
futu unusual technical-signals <STANDARD_SYMBOL> --time-range <DAYS> [--indicator-filters <FILTER> ...] [--language-id <ID>] --format json --source skill
Examples:
futu unusual technical-signals US.NVDA --time-range 7 --format json --source skill
futu unusual technical-signals HK.00700 --time-range 7 --indicator-filters MACD RSI6 RSI12 RSI24 --language-id 0 --format json --source skill
futu unusual technical-signals SH.600519 --time-range 14 --indicator-filters BOLL MA --format json --source skill
6. Check the Result
- If the CLI exits successfully, use the JSON to build a structured Technical Signal Alerts summary.
- If the CLI returns an error, surface the error message and do not fabricate results.
- If a requested indicator has no anomaly in the window, explicitly say
No anomaly.
Parameters
Required
stock_symbol: standard market-prefixed symbol, such asUS.NVDA,HK.00700,SH.600519,SZ.000001
Optional
time_range: natural day window, default7indicator_filters: list of specific technical dimensions to inspect; omit for full scanlanguage_id: output language, default0
Output Rules
Present output by signal class. The response should cover:
Candlestick Patterns- requested indicator classes, or the full set returned by the interface
Formatting rules:
- Always display
Time Rangeas an absolute date range in the formatYYYY.M.D - YYYY.M.D. Calculate the start date from the current date minustime_rangedays (e.g., if today is 2026.4.24 and time_range is 7, writeTime Range: 2026.4.18 - 2026.4.24). - Show each class separately.
- If one class has multiple abnormal dates in the window, list them all in the same class.
- If one class has no anomaly in the window, write
No anomaly. - Preserve dates, pattern names, signal direction, probabilities, support/resistance, and interpretation from the tool output.
- Do not merge multiple indicator classes into one sentence.
- Do not invent thresholds or explanations beyond the returned content.
- If the user only asked about a subset of indicators, keep only
Candlestick Patternsplus the requested indicator classes.
Preferred Response Template
Time Range: {YYYY.M.D - YYYY.M.D}
- Candlestick Patterns: {anomaly description or "No anomaly"}
- MACD: {anomaly description or "No anomaly"}
- RSI: {anomaly description or "No anomaly"}
- CCI: {anomaly description or "No anomaly"}
- KDJ: {anomaly description or "No anomaly"}
- BIAS: {anomaly description or "No anomaly"}
- ARBR: {anomaly description or "No anomaly"}
- VR: {anomaly description or "No anomaly"}
- PSY: {anomaly description or "No anomaly"}
- OSC: {anomaly description or "No anomaly"}
- WMSR: {anomaly description or "No anomaly"}
- BOLL: {anomaly description or "No anomaly"}
- MA: {anomaly description or "No anomaly"}
When the user only asks for a subset, keep only Candlestick Patterns plus the requested classes.
Behavior Rules
- Always normalize the user-mentioned stock target into a standard symbol before calling the CLI.
- If the target stock is missing, ask a follow-up question.
- If the market is ambiguous, ask a follow-up question instead of guessing.
- If the user asks a broad technical question, omit
indicator_filtersand use the full interface. - Do not output raw JSON by default when talking to the user, even if the CLI returns JSON.
- Do not interpret the result as investment advice or trading guidance.
- Do not invent extra signal explanations beyond what the interface returns.
Example User Requests
Broad technical anomaly check
- "英伟达最近 7 天有什么技术面异动?"
- "看看腾讯最近的技术信号"
- "帮我查一下 Apple 最近有没有技术面异常"
Mapped request:
{
"stock_symbol": "US.NVDA",
"time_range": 7,
"language_id": 0
}
MACD and RSI only
- "00700 最近 7 天 MACD 和 RSI 有没有异常?"
- "看看 NVDA 的 MACD、RSI 信号"
Mapped request:
{
"stock_symbol": "HK.00700",
"time_range": 7,
"indicator_filters": ["MACD", "RSI6", "RSI12", "RSI24"],
"language_id": 0
}
ARBR only
- "腾讯最近 ARBR 有异动吗?"
Mapped request:
{
"stock_symbol": "HK.00700",
"time_range": 7,
"indicator_filters": ["AR", "BR"],
"language_id": 0
}
Example Interpretation Style
Time Range: 2026.4.2-2026.4.9
- Candlestick Patterns: On 4.5, a "bullish continuation triangle" formed, created by gradually lower highs and gradually higher lows, indicating that after forces converged the bulls took control and a breakout may lead to a further advance. The upside probability is 84.5%, support is 2.41, and resistance is 2.52.
- MACD: No anomaly
- RSI: On 4.2, RSI formed a golden cross, suggesting a potential upward leg; on 4.8, RSI formed a death cross, implying a possible downtrend.
- CCI: On 4.3, CCI broke above +100 and entered overbought territory, flagging near-term pullback risk.
- KDJ: On 4.6, the three KDJ lines formed a golden cross below 20, producing an oversold rebound signal.