futu_mcp/tool_args/qot/
screen_unusual.rs1use rmcp::schemars;
4use serde::Deserialize;
5use serde_json::Value;
6
7#[derive(Debug, Deserialize, schemars::JsonSchema)]
8#[serde(deny_unknown_fields)]
9pub struct StockScreenReq {
10 #[schemars(
11 description = "Full Qot_StockScreen C2S JSON object. Use snake_case generated proto fields, e.g. filter_list/retrieve_list/page_from/page_count."
12 )]
13 pub c2s: Value,
14}
15
16#[derive(Debug, Deserialize, schemars::JsonSchema)]
17#[serde(deny_unknown_fields)]
18pub struct OptionScreenReq {
19 #[schemars(
20 description = "Full Qot_OptionScreen C2S JSON object. Use snake_case generated proto fields, e.g. market_category_list/filter_list/sort_list/page_from/page_count."
21 )]
22 pub c2s: Value,
23}
24
25#[derive(Debug, Deserialize, schemars::JsonSchema)]
26#[serde(deny_unknown_fields)]
27pub struct WarrantScreenReq {
28 #[schemars(
29 description = "Full Qot_WarrantScreen C2S JSON object. Use snake_case generated proto fields, e.g. market_type/filter_list/sort_list/page_from/page_count."
30 )]
31 pub c2s: Value,
32}
33
34#[derive(Debug, Deserialize, schemars::JsonSchema)]
35#[serde(deny_unknown_fields)]
36pub struct TechnicalUnusualReq {
37 #[schemars(
38 description = "Stock symbol accepted by Futu SkillWrap, e.g. HK.00700 / US.AAPL \
39 (alias: symbol / code / stock / security)"
40 )]
41 #[serde(alias = "symbol", alias = "code", alias = "stock", alias = "security")]
42 pub stock_symbol: String,
43 #[schemars(description = "Time range in calendar days; omit or <=0 uses backend default 7")]
44 #[serde(default, alias = "timeRange")]
45 pub time_range: Option<i32>,
46 #[schemars(description = "Optional technical indicator filters; omitted means all")]
47 #[serde(default, alias = "indicatorFilters")]
48 pub indicator_filters: Vec<String>,
49 #[schemars(description = "Language id: 0=simplified Chinese, 1=traditional, 2=English")]
50 #[serde(default, alias = "languageId")]
51 pub language_id: Option<i32>,
52}
53
54#[derive(Debug, Deserialize, schemars::JsonSchema)]
55#[serde(deny_unknown_fields)]
56pub struct FinancialUnusualReq {
57 #[schemars(
58 description = "Stock symbol accepted by Futu SkillWrap, e.g. HK.00700 / US.AAPL \
59 (alias: symbol / code / stock / security)"
60 )]
61 #[serde(alias = "symbol", alias = "code", alias = "stock", alias = "security")]
62 pub stock_symbol: String,
63 #[schemars(description = "Time range in calendar days; omit or <=0 uses backend default 7")]
64 #[serde(default, alias = "timeRange")]
65 pub time_range: Option<i32>,
66 #[schemars(description = "Optional financial analysis dimensions; omitted means all")]
67 #[serde(default, alias = "analysisDimensions")]
68 pub analysis_dimensions: Vec<String>,
69 #[schemars(description = "Language id: 0=simplified Chinese, 1=traditional, 2=English")]
70 #[serde(default, alias = "languageId")]
71 pub language_id: Option<i32>,
72}
73
74#[derive(Debug, Deserialize, schemars::JsonSchema)]
75#[serde(deny_unknown_fields)]
76pub struct DerivativeUnusualReq {
77 #[schemars(
78 description = "Stock symbol accepted by Futu SkillWrap, e.g. HK.00700 / US.AAPL \
79 (alias: symbol / code / stock / security)"
80 )]
81 #[serde(alias = "symbol", alias = "code", alias = "stock", alias = "security")]
82 pub stock_symbol: String,
83 #[schemars(description = "Time range in calendar days; omit or <=0 uses backend default 7")]
84 #[serde(default, alias = "timeRange")]
85 pub time_range: Option<i32>,
86 #[schemars(description = "Optional derivative analysis dimensions; omitted means all")]
87 #[serde(default, alias = "analysisDimensions")]
88 pub analysis_dimensions: Vec<String>,
89 #[schemars(description = "Language id: 0=simplified Chinese, 1=traditional, 2=English")]
90 #[serde(default, alias = "languageId")]
91 pub language_id: Option<i32>,
92}