1#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4pub struct PropertyBasic {
5 #[prost(enumeration = "PropertyNameBasic", optional, tag = "1")]
6 pub name: ::core::option::Option<i32>,
7}
8#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
9pub struct PropertySimple {
10 #[prost(enumeration = "PropertyNameSimple", optional, tag = "1")]
11 pub name: ::core::option::Option<i32>,
12}
13#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
14pub struct PropertyCumulative {
15 #[prost(enumeration = "PropertyNameCumulative", optional, tag = "1")]
16 pub name: ::core::option::Option<i32>,
17 #[prost(uint32, optional, tag = "2", default = "1")]
18 pub days: ::core::option::Option<u32>,
19 #[prost(int32, optional, tag = "3")]
21 pub period_average: ::core::option::Option<i32>,
22}
23#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
24pub struct PropertyFinancial {
25 #[prost(enumeration = "PropertyNameFinancial", optional, tag = "1")]
26 pub name: ::core::option::Option<i32>,
27 #[prost(enumeration = "Term", optional, tag = "2")]
28 pub term: ::core::option::Option<i32>,
29 #[prost(int64, optional, tag = "3")]
31 pub duration: ::core::option::Option<i64>,
32 #[prost(int32, optional, tag = "4")]
34 pub year: ::core::option::Option<i32>,
35 #[prost(int32, optional, tag = "5")]
37 pub period_average: ::core::option::Option<i32>,
38}
39#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
40pub struct PropertyIndicator {
41 #[prost(enumeration = "Indicator", optional, tag = "1")]
42 pub name: ::core::option::Option<i32>,
43 #[prost(enumeration = "Period", optional, tag = "2")]
44 pub period: ::core::option::Option<i32>,
45 #[prost(int64, repeated, packed = "false", tag = "3")]
47 pub indicator_params: ::prost::alloc::vec::Vec<i64>,
48}
49#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
50pub struct PropertyFeatured {
51 #[prost(int32, optional, tag = "1")]
53 pub name: ::core::option::Option<i32>,
54 #[prost(enumeration = "Period", optional, tag = "2")]
56 pub period: ::core::option::Option<i32>,
57 #[prost(int32, optional, tag = "3")]
59 pub range_period: ::core::option::Option<i32>,
60}
61#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
62pub struct PropertyBroker {
63 #[prost(int32, optional, tag = "1")]
65 pub name: ::core::option::Option<i32>,
66 #[prost(int32, optional, tag = "2")]
68 pub days: ::core::option::Option<i32>,
69 #[prost(string, optional, tag = "3")]
74 pub param: ::core::option::Option<::prost::alloc::string::String>,
75}
76#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
78pub struct ResultPropertyBasic {
79 #[prost(string, required, tag = "1")]
80 pub value: ::prost::alloc::string::String,
81 #[prost(message, required, tag = "2")]
82 pub property: PropertyBasic,
83}
84#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
85pub struct ResultPropertySimple {
86 #[prost(int64, required, tag = "1")]
87 pub value: i64,
88 #[prost(message, required, tag = "2")]
89 pub property: PropertySimple,
90}
91#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
92pub struct ResultPropertyCumulative {
93 #[prost(int64, required, tag = "1")]
94 pub value: i64,
95 #[prost(message, required, tag = "2")]
96 pub property: PropertyCumulative,
97}
98#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
99pub struct ResultPropertyFinancial {
100 #[prost(int64, required, tag = "1")]
101 pub value: i64,
102 #[prost(message, required, tag = "2")]
103 pub property: PropertyFinancial,
104 #[prost(uint32, optional, tag = "3")]
105 pub end_time: ::core::option::Option<u32>,
106}
107#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
108pub struct ResultPropertyIndicator {
109 #[prost(int64, required, tag = "1")]
110 pub value: i64,
111 #[prost(message, required, tag = "2")]
112 pub property: PropertyIndicator,
113}
114#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
115pub struct ResultPropertyFeatured {
116 #[prost(int64, optional, tag = "1")]
117 pub value: ::core::option::Option<i64>,
118 #[prost(message, optional, tag = "2")]
119 pub property: ::core::option::Option<PropertyFeatured>,
120}
121#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
122pub struct ResultPropertyBroker {
123 #[prost(int64, optional, tag = "1")]
131 pub value: ::core::option::Option<i64>,
132 #[prost(message, optional, tag = "2")]
133 pub property: ::core::option::Option<PropertyBroker>,
134}
135#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
137pub struct Bounary {
138 #[prost(int64, required, tag = "1")]
140 pub value: i64,
141 #[prost(bool, required, tag = "2")]
143 pub includes: bool,
144}
145#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
147pub struct Interval {
148 #[prost(message, optional, tag = "1")]
150 pub lower: ::core::option::Option<Bounary>,
151 #[prost(message, optional, tag = "2")]
153 pub upper: ::core::option::Option<Bounary>,
154}
155#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
157pub struct QueryPropertySimple {
158 #[prost(message, required, tag = "1")]
159 pub property: PropertySimple,
160 #[prost(message, optional, tag = "2")]
162 pub lower: ::core::option::Option<Bounary>,
163 #[prost(message, optional, tag = "3")]
165 pub upper: ::core::option::Option<Bounary>,
166}
167#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
169pub struct QueryPropertyCumulative {
170 #[prost(message, required, tag = "1")]
171 pub property: PropertyCumulative,
172 #[prost(message, optional, tag = "2")]
174 pub lower: ::core::option::Option<Bounary>,
175 #[prost(message, optional, tag = "3")]
177 pub upper: ::core::option::Option<Bounary>,
178 #[prost(int32, optional, tag = "4")]
180 pub continuous_period: ::core::option::Option<i32>,
181}
182#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
184pub struct QueryPropertyFinancial {
185 #[prost(message, required, tag = "1")]
186 pub property: PropertyFinancial,
187 #[prost(message, optional, tag = "2")]
189 pub lower: ::core::option::Option<Bounary>,
190 #[prost(message, optional, tag = "3")]
192 pub upper: ::core::option::Option<Bounary>,
193 #[prost(int32, optional, tag = "4")]
195 pub continuous_period: ::core::option::Option<i32>,
196}
197#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
199pub struct QueryIndicatorPositional {
200 #[prost(enumeration = "Position", required, tag = "1")]
201 pub position: i32,
202 #[prost(enumeration = "Period", required, tag = "2")]
203 pub period: i32,
204 #[prost(enumeration = "Indicator", required, tag = "3")]
205 pub first_indicator: i32,
206 #[prost(enumeration = "Indicator", optional, tag = "4")]
207 pub second_indicator: ::core::option::Option<i32>,
208 #[prost(int64, optional, tag = "5")]
209 pub second_value: ::core::option::Option<i64>,
210 #[prost(int64, repeated, packed = "false", tag = "6")]
212 pub first_indicator_params: ::prost::alloc::vec::Vec<i64>,
213 #[prost(int64, repeated, packed = "false", tag = "7")]
215 pub second_indicator_params: ::prost::alloc::vec::Vec<i64>,
216 #[prost(int32, optional, tag = "8")]
218 pub continuous_period: ::core::option::Option<i32>,
219}
220#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
222pub struct QueryIndicatorPattern {
223 #[prost(enumeration = "Pattern", required, tag = "1")]
224 pub pattern: i32,
225 #[prost(enumeration = "Period", required, tag = "2")]
226 pub period: i32,
227 #[prost(int32, optional, tag = "3")]
229 pub continuous_period: ::core::option::Option<i32>,
230}
231#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
232pub struct QueryPropertyFeatured {
233 #[prost(message, optional, tag = "1")]
234 pub property: ::core::option::Option<PropertyFeatured>,
235 #[prost(message, optional, tag = "2")]
237 pub lower: ::core::option::Option<Bounary>,
238 #[prost(message, optional, tag = "3")]
240 pub upper: ::core::option::Option<Bounary>,
241}
242#[derive(Clone, PartialEq, ::prost::Message)]
243pub struct QueryPropertyBroker {
244 #[prost(message, optional, tag = "1")]
248 pub property: ::core::option::Option<PropertyBroker>,
249 #[prost(message, repeated, tag = "2")]
251 pub intervals: ::prost::alloc::vec::Vec<Interval>,
252}
253#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
254pub struct QueryKlinePattern {
255 #[prost(enumeration = "KlinePattern", optional, tag = "1")]
256 pub kline_pattern: ::core::option::Option<i32>,
257 #[prost(enumeration = "Period", optional, tag = "2")]
258 pub period: ::core::option::Option<i32>,
259 #[prost(int32, optional, tag = "3")]
261 pub continuous_period: ::core::option::Option<i32>,
262}
263#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
265pub struct Sort {
266 #[prost(enumeration = "SortDirection", required, tag = "1")]
267 pub direction: i32,
268 #[prost(message, optional, tag = "2")]
269 pub basic_property: ::core::option::Option<PropertyBasic>,
270 #[prost(message, optional, tag = "3")]
271 pub simple_property: ::core::option::Option<PropertySimple>,
272 #[prost(message, optional, tag = "4")]
273 pub cumulative_property: ::core::option::Option<PropertyCumulative>,
274 #[prost(message, optional, tag = "5")]
275 pub financial_property: ::core::option::Option<PropertyFinancial>,
276 #[prost(message, optional, tag = "6")]
277 pub indicator_property: ::core::option::Option<PropertyIndicator>,
278 #[prost(message, optional, tag = "7")]
279 pub featured_property: ::core::option::Option<PropertyFeatured>,
280 #[prost(message, optional, tag = "8")]
281 pub broker_property: ::core::option::Option<PropertyBroker>,
282}
283#[derive(Clone, PartialEq, ::prost::Message)]
285pub struct ScreenRequest {
286 #[prost(enumeration = "Market", required, tag = "1")]
288 pub market: i32,
289 #[prost(uint64, repeated, packed = "false", tag = "2")]
291 pub exchanges: ::prost::alloc::vec::Vec<u64>,
292 #[prost(uint64, repeated, packed = "false", tag = "3")]
294 pub categories: ::prost::alloc::vec::Vec<u64>,
295 #[prost(uint64, repeated, packed = "false", tag = "11")]
297 pub watchlist_stock_ids: ::prost::alloc::vec::Vec<u64>,
298 #[prost(bool, optional, tag = "12", default = "false")]
300 pub use_watchlist_stocks: ::core::option::Option<bool>,
301 #[prost(bool, optional, tag = "16")]
303 pub has_adr: ::core::option::Option<bool>,
304 #[prost(bool, optional, tag = "17")]
306 pub has_option: ::core::option::Option<bool>,
307 #[prost(bool, optional, tag = "18")]
309 pub has_warrant: ::core::option::Option<bool>,
310 #[prost(bool, optional, tag = "19")]
312 pub has_future: ::core::option::Option<bool>,
313 #[prost(bool, optional, tag = "20")]
315 pub has_ah_stock: ::core::option::Option<bool>,
316 #[prost(message, repeated, tag = "4")]
318 pub simple_property_queries: ::prost::alloc::vec::Vec<QueryPropertySimple>,
319 #[prost(message, repeated, tag = "5")]
321 pub cumulative_property_queries: ::prost::alloc::vec::Vec<QueryPropertyCumulative>,
322 #[prost(message, repeated, tag = "6")]
324 pub financial_property_queries: ::prost::alloc::vec::Vec<QueryPropertyFinancial>,
325 #[prost(message, repeated, tag = "7")]
327 pub indicator_positional_queries: ::prost::alloc::vec::Vec<QueryIndicatorPositional>,
328 #[prost(message, repeated, tag = "8")]
330 pub indicator_pattern_queries: ::prost::alloc::vec::Vec<QueryIndicatorPattern>,
331 #[prost(message, repeated, tag = "13")]
333 pub featured_property_queries: ::prost::alloc::vec::Vec<QueryPropertyFeatured>,
334 #[prost(message, repeated, tag = "14")]
336 pub broker_holdings_queries: ::prost::alloc::vec::Vec<QueryPropertyBroker>,
337 #[prost(message, repeated, tag = "15")]
339 pub kline_pattern_queries: ::prost::alloc::vec::Vec<QueryKlinePattern>,
340 #[prost(uint32, optional, tag = "9")]
342 pub limit: ::core::option::Option<u32>,
343 #[prost(message, optional, tag = "10")]
345 pub sort: ::core::option::Option<Sort>,
346}
347#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
348pub struct ScreenResponse {
349 #[prost(int32, required, tag = "1")]
350 pub result_code: i32,
351 #[prost(uint64, repeated, packed = "false", tag = "2")]
352 pub stock_ids: ::prost::alloc::vec::Vec<u64>,
353}
354#[derive(Clone, PartialEq, ::prost::Message)]
356pub struct RetrieveRequest {
357 #[prost(uint64, repeated, packed = "false", tag = "1")]
358 pub stock_ids: ::prost::alloc::vec::Vec<u64>,
359 #[prost(message, repeated, tag = "2")]
360 pub basic_properties: ::prost::alloc::vec::Vec<PropertyBasic>,
361 #[prost(message, repeated, tag = "3")]
362 pub simple_properties: ::prost::alloc::vec::Vec<PropertySimple>,
363 #[prost(message, repeated, tag = "4")]
364 pub cumulative_properties: ::prost::alloc::vec::Vec<PropertyCumulative>,
365 #[prost(message, repeated, tag = "5")]
366 pub financial_properties: ::prost::alloc::vec::Vec<PropertyFinancial>,
367 #[prost(message, repeated, tag = "6")]
368 pub indicator_properties: ::prost::alloc::vec::Vec<PropertyIndicator>,
369 #[prost(message, repeated, tag = "7")]
370 pub featured_properties: ::prost::alloc::vec::Vec<PropertyFeatured>,
371 #[prost(message, repeated, tag = "8")]
372 pub broker_properties: ::prost::alloc::vec::Vec<PropertyBroker>,
373}
374#[derive(Clone, PartialEq, ::prost::Message)]
375pub struct RetrieveResponse {
376 #[prost(int32, required, tag = "1")]
377 pub result_code: i32,
378 #[prost(message, repeated, tag = "2")]
379 pub items: ::prost::alloc::vec::Vec<retrieve_response::Item>,
380}
381pub mod retrieve_response {
383 #[derive(Clone, PartialEq, ::prost::Message)]
384 pub struct Item {
385 #[prost(uint64, required, tag = "1")]
386 pub stock_id: u64,
387 #[prost(message, repeated, tag = "2")]
388 pub basic_property_results: ::prost::alloc::vec::Vec<super::ResultPropertyBasic>,
389 #[prost(message, repeated, tag = "3")]
390 pub simple_property_results: ::prost::alloc::vec::Vec<
391 super::ResultPropertySimple,
392 >,
393 #[prost(message, repeated, tag = "4")]
394 pub cumulative_property_results: ::prost::alloc::vec::Vec<
395 super::ResultPropertyCumulative,
396 >,
397 #[prost(message, repeated, tag = "5")]
398 pub financial_property_results: ::prost::alloc::vec::Vec<
399 super::ResultPropertyFinancial,
400 >,
401 #[prost(message, repeated, tag = "6")]
402 pub indicator_property_results: ::prost::alloc::vec::Vec<
403 super::ResultPropertyIndicator,
404 >,
405 #[prost(message, repeated, tag = "7")]
406 pub featured_property_results: ::prost::alloc::vec::Vec<
407 super::ResultPropertyFeatured,
408 >,
409 #[prost(message, repeated, tag = "8")]
410 pub broker_property_results: ::prost::alloc::vec::Vec<
411 super::ResultPropertyBroker,
412 >,
413 }
414}
415#[derive(Clone, PartialEq, ::prost::Message)]
417pub struct ScreenAndRetrieveRequest {
418 #[prost(message, optional, tag = "1")]
420 pub screen_queries: ::core::option::Option<
421 screen_and_retrieve_request::ScreenQueries,
422 >,
423 #[prost(message, optional, tag = "2")]
425 pub retrieve_properties: ::core::option::Option<
426 screen_and_retrieve_request::RetrieveProperties,
427 >,
428 #[prost(uint64, repeated, packed = "false", tag = "3")]
430 pub watchlist_stock_ids: ::prost::alloc::vec::Vec<u64>,
431 #[prost(bool, optional, tag = "4")]
433 pub use_watchlist_stocks: ::core::option::Option<bool>,
434 #[prost(message, optional, tag = "5")]
436 pub sort: ::core::option::Option<Sort>,
437 #[prost(int32, optional, tag = "6")]
439 pub data_from: ::core::option::Option<i32>,
440 #[prost(int32, optional, tag = "7")]
442 pub data_max_count: ::core::option::Option<i32>,
443}
444pub mod screen_and_retrieve_request {
446 #[derive(Clone, PartialEq, ::prost::Message)]
448 pub struct ScreenQueries {
449 #[prost(enumeration = "super::Market", optional, tag = "1")]
451 pub market: ::core::option::Option<i32>,
452 #[prost(uint64, repeated, packed = "false", tag = "2")]
454 pub exchanges: ::prost::alloc::vec::Vec<u64>,
455 #[prost(uint64, repeated, packed = "false", tag = "3")]
457 pub categories: ::prost::alloc::vec::Vec<u64>,
458 #[prost(message, repeated, tag = "4")]
460 pub simple_property_queries: ::prost::alloc::vec::Vec<
461 super::QueryPropertySimple,
462 >,
463 #[prost(message, repeated, tag = "5")]
465 pub cumulative_property_queries: ::prost::alloc::vec::Vec<
466 super::QueryPropertyCumulative,
467 >,
468 #[prost(message, repeated, tag = "6")]
470 pub financial_property_queries: ::prost::alloc::vec::Vec<
471 super::QueryPropertyFinancial,
472 >,
473 #[prost(message, repeated, tag = "7")]
475 pub indicator_positional_queries: ::prost::alloc::vec::Vec<
476 super::QueryIndicatorPositional,
477 >,
478 #[prost(message, repeated, tag = "8")]
480 pub indicator_pattern_queries: ::prost::alloc::vec::Vec<
481 super::QueryIndicatorPattern,
482 >,
483 #[prost(message, repeated, tag = "9")]
485 pub featured_property_queries: ::prost::alloc::vec::Vec<
486 super::QueryPropertyFeatured,
487 >,
488 #[prost(message, repeated, tag = "10")]
490 pub broker_holdings_queries: ::prost::alloc::vec::Vec<
491 super::QueryPropertyBroker,
492 >,
493 #[prost(message, repeated, tag = "11")]
495 pub kline_pattern_queries: ::prost::alloc::vec::Vec<super::QueryKlinePattern>,
496 #[prost(bool, optional, tag = "12")]
498 pub has_adr: ::core::option::Option<bool>,
499 #[prost(bool, optional, tag = "13")]
501 pub has_option: ::core::option::Option<bool>,
502 #[prost(bool, optional, tag = "14")]
504 pub has_warrant: ::core::option::Option<bool>,
505 #[prost(bool, optional, tag = "15")]
507 pub has_future: ::core::option::Option<bool>,
508 #[prost(bool, optional, tag = "16")]
510 pub has_ah_stock: ::core::option::Option<bool>,
511 }
512 #[derive(Clone, PartialEq, ::prost::Message)]
514 pub struct RetrieveProperties {
515 #[prost(message, repeated, tag = "1")]
517 pub basic_properties: ::prost::alloc::vec::Vec<super::PropertyBasic>,
518 #[prost(message, repeated, tag = "2")]
520 pub simple_properties: ::prost::alloc::vec::Vec<super::PropertySimple>,
521 #[prost(message, repeated, tag = "3")]
523 pub cumulative_properties: ::prost::alloc::vec::Vec<super::PropertyCumulative>,
524 #[prost(message, repeated, tag = "4")]
526 pub financial_properties: ::prost::alloc::vec::Vec<super::PropertyFinancial>,
527 #[prost(message, repeated, tag = "5")]
529 pub indicator_properties: ::prost::alloc::vec::Vec<super::PropertyIndicator>,
530 #[prost(message, repeated, tag = "6")]
532 pub featured_properties: ::prost::alloc::vec::Vec<super::PropertyFeatured>,
533 #[prost(message, repeated, tag = "7")]
535 pub broker_properties: ::prost::alloc::vec::Vec<super::PropertyBroker>,
536 }
537}
538#[derive(Clone, PartialEq, ::prost::Message)]
539pub struct ScreenAndRetrieveResponse {
540 #[prost(int32, optional, tag = "1")]
542 pub result_code: ::core::option::Option<i32>,
543 #[prost(message, repeated, tag = "2")]
545 pub items: ::prost::alloc::vec::Vec<screen_and_retrieve_response::Item>,
546 #[prost(bool, optional, tag = "3")]
548 pub if_last_page: ::core::option::Option<bool>,
549 #[prost(int32, optional, tag = "4")]
551 pub all_count: ::core::option::Option<i32>,
552}
553pub mod screen_and_retrieve_response {
555 #[derive(Clone, PartialEq, ::prost::Message)]
556 pub struct Item {
557 #[prost(uint64, optional, tag = "1")]
559 pub stock_id: ::core::option::Option<u64>,
560 #[prost(message, repeated, tag = "2")]
562 pub basic_property_results: ::prost::alloc::vec::Vec<super::ResultPropertyBasic>,
563 #[prost(message, repeated, tag = "3")]
565 pub simple_property_results: ::prost::alloc::vec::Vec<
566 super::ResultPropertySimple,
567 >,
568 #[prost(message, repeated, tag = "4")]
570 pub cumulative_property_results: ::prost::alloc::vec::Vec<
571 super::ResultPropertyCumulative,
572 >,
573 #[prost(message, repeated, tag = "5")]
575 pub financial_property_results: ::prost::alloc::vec::Vec<
576 super::ResultPropertyFinancial,
577 >,
578 #[prost(message, repeated, tag = "6")]
580 pub indicator_property_results: ::prost::alloc::vec::Vec<
581 super::ResultPropertyIndicator,
582 >,
583 #[prost(message, repeated, tag = "7")]
585 pub featured_property_results: ::prost::alloc::vec::Vec<
586 super::ResultPropertyFeatured,
587 >,
588 #[prost(message, repeated, tag = "8")]
590 pub broker_property_results: ::prost::alloc::vec::Vec<
591 super::ResultPropertyBroker,
592 >,
593 }
594}
595#[derive(Clone, PartialEq, ::prost::Message)]
597pub struct Strategy {
598 #[prost(string, optional, tag = "1")]
600 pub id: ::core::option::Option<::prost::alloc::string::String>,
601 #[prost(string, required, tag = "2")]
603 pub name: ::prost::alloc::string::String,
604 #[prost(message, required, tag = "3")]
606 pub detail: strategy::Detail,
607 #[prost(uint32, optional, tag = "4")]
609 pub created_time: ::core::option::Option<u32>,
610 #[prost(uint32, optional, tag = "5")]
612 pub modified_time: ::core::option::Option<u32>,
613}
614pub mod strategy {
616 #[derive(Clone, PartialEq, ::prost::Message)]
617 pub struct Detail {
618 #[prost(enumeration = "super::Market", optional, tag = "1")]
620 pub market: ::core::option::Option<i32>,
621 #[prost(uint64, repeated, packed = "false", tag = "2")]
623 pub exchanges: ::prost::alloc::vec::Vec<u64>,
624 #[prost(uint64, repeated, packed = "false", tag = "3")]
626 pub categories: ::prost::alloc::vec::Vec<u64>,
627 #[prost(bool, optional, tag = "9")]
629 pub use_watchlist_stocks: ::core::option::Option<bool>,
630 #[prost(message, repeated, tag = "4")]
632 pub simple_property_queries: ::prost::alloc::vec::Vec<
633 super::QueryPropertySimple,
634 >,
635 #[prost(message, repeated, tag = "5")]
637 pub cumulative_property_queries: ::prost::alloc::vec::Vec<
638 super::QueryPropertyCumulative,
639 >,
640 #[prost(message, repeated, tag = "6")]
642 pub financial_property_queries: ::prost::alloc::vec::Vec<
643 super::QueryPropertyFinancial,
644 >,
645 #[prost(message, repeated, tag = "7")]
647 pub indicator_positional_queries: ::prost::alloc::vec::Vec<
648 super::QueryIndicatorPositional,
649 >,
650 #[prost(message, repeated, tag = "8")]
652 pub indicator_pattern_queries: ::prost::alloc::vec::Vec<
653 super::QueryIndicatorPattern,
654 >,
655 #[prost(message, repeated, tag = "10")]
657 pub featured_property_queries: ::prost::alloc::vec::Vec<
658 super::QueryPropertyFeatured,
659 >,
660 #[prost(message, repeated, tag = "11")]
662 pub broker_holdings_queries: ::prost::alloc::vec::Vec<
663 super::QueryPropertyBroker,
664 >,
665 #[prost(message, repeated, tag = "12")]
667 pub kline_pattern_queries: ::prost::alloc::vec::Vec<super::QueryKlinePattern>,
668 #[prost(bool, optional, tag = "13")]
670 pub has_adr: ::core::option::Option<bool>,
671 #[prost(bool, optional, tag = "14")]
673 pub has_option: ::core::option::Option<bool>,
674 #[prost(bool, optional, tag = "15")]
676 pub has_warrant: ::core::option::Option<bool>,
677 #[prost(bool, optional, tag = "16")]
679 pub has_future: ::core::option::Option<bool>,
680 #[prost(bool, optional, tag = "17")]
682 pub has_ah_stock: ::core::option::Option<bool>,
683 }
684}
685#[derive(Clone, PartialEq, ::prost::Message)]
687pub struct SaveRequest {
688 #[prost(message, required, tag = "1")]
690 pub strategy: Strategy,
691 #[prost(uint32, optional, tag = "2", default = "1")]
693 pub version: ::core::option::Option<u32>,
694}
695#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
696pub struct SaveResponse {
697 #[prost(int32, required, tag = "1")]
698 pub result_code: i32,
699 #[prost(string, optional, tag = "2")]
701 pub strategy_id: ::core::option::Option<::prost::alloc::string::String>,
702}
703#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
705pub struct RemoveRequest {
706 #[prost(string, required, tag = "1")]
708 pub strategy_id: ::prost::alloc::string::String,
709}
710#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
711pub struct RemoveResponse {
712 #[prost(int32, required, tag = "1")]
713 pub result_code: i32,
714}
715#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
717pub struct LoadRequest {
718 #[prost(uint32, optional, tag = "1")]
720 pub sequence: ::core::option::Option<u32>,
721}
722#[derive(Clone, PartialEq, ::prost::Message)]
723pub struct LoadResponse {
724 #[prost(int32, required, tag = "1")]
725 pub result_code: i32,
726 #[prost(bool, optional, tag = "2")]
728 pub expired: ::core::option::Option<bool>,
729 #[prost(uint32, optional, tag = "3")]
731 pub sequence: ::core::option::Option<u32>,
732 #[prost(message, repeated, tag = "4")]
734 pub strategies: ::prost::alloc::vec::Vec<Strategy>,
735}
736#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
738#[repr(i32)]
739pub enum Market {
740 MktUnknown = 0,
742 MktHk = 1,
744 MktUs = 2,
746 MktCn = 3,
748 MktSg = 4,
750 MktCa = 5,
752 MktAu = 6,
754}
755impl Market {
756 pub fn as_str_name(&self) -> &'static str {
761 match self {
762 Self::MktUnknown => "MKT_UNKNOWN",
763 Self::MktHk => "MKT_HK",
764 Self::MktUs => "MKT_US",
765 Self::MktCn => "MKT_CN",
766 Self::MktSg => "MKT_SG",
767 Self::MktCa => "MKT_CA",
768 Self::MktAu => "MKT_AU",
769 }
770 }
771 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
773 match value {
774 "MKT_UNKNOWN" => Some(Self::MktUnknown),
775 "MKT_HK" => Some(Self::MktHk),
776 "MKT_US" => Some(Self::MktUs),
777 "MKT_CN" => Some(Self::MktCn),
778 "MKT_SG" => Some(Self::MktSg),
779 "MKT_CA" => Some(Self::MktCa),
780 "MKT_AU" => Some(Self::MktAu),
781 _ => None,
782 }
783 }
784}
785#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
786#[repr(i32)]
787pub enum ResultCode {
788 ServerFault = -100,
790 BadRequest = -99,
792 Success = 0,
794}
795impl ResultCode {
796 pub fn as_str_name(&self) -> &'static str {
801 match self {
802 Self::ServerFault => "RESULT_CODE_SERVER_FAULT",
803 Self::BadRequest => "RESULT_CODE_BAD_REQUEST",
804 Self::Success => "RESULT_CODE_SUCCESS",
805 }
806 }
807 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
809 match value {
810 "RESULT_CODE_SERVER_FAULT" => Some(Self::ServerFault),
811 "RESULT_CODE_BAD_REQUEST" => Some(Self::BadRequest),
812 "RESULT_CODE_SUCCESS" => Some(Self::Success),
813 _ => None,
814 }
815 }
816}
817#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
818#[repr(i32)]
819pub enum Term {
820 Unknown = 0,
822 Q1 = 1,
824 Q2 = 2,
826 Q3 = 3,
828 Q4 = 4,
830 Q6 = 6,
832 Q9 = 9,
834 QLatest = 10,
836 Annual = 100,
838}
839impl Term {
840 pub fn as_str_name(&self) -> &'static str {
845 match self {
846 Self::Unknown => "TERM_UNKNOWN",
847 Self::Q1 => "TERM_Q1",
848 Self::Q2 => "TERM_Q2",
849 Self::Q3 => "TERM_Q3",
850 Self::Q4 => "TERM_Q4",
851 Self::Q6 => "TERM_Q6",
852 Self::Q9 => "TERM_Q9",
853 Self::QLatest => "TERM_Q_LATEST",
854 Self::Annual => "TERM_ANNUAL",
855 }
856 }
857 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
859 match value {
860 "TERM_UNKNOWN" => Some(Self::Unknown),
861 "TERM_Q1" => Some(Self::Q1),
862 "TERM_Q2" => Some(Self::Q2),
863 "TERM_Q3" => Some(Self::Q3),
864 "TERM_Q4" => Some(Self::Q4),
865 "TERM_Q6" => Some(Self::Q6),
866 "TERM_Q9" => Some(Self::Q9),
867 "TERM_Q_LATEST" => Some(Self::QLatest),
868 "TERM_ANNUAL" => Some(Self::Annual),
869 _ => None,
870 }
871 }
872}
873#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
875#[repr(i32)]
876pub enum Period {
877 Unknown = 0,
879 Minute1 = 1,
881 Hour1 = 5,
883 Day1 = 11,
885 Week1 = 21,
887 Month1 = 31,
889}
890impl Period {
891 pub fn as_str_name(&self) -> &'static str {
896 match self {
897 Self::Unknown => "PERIOD_UNKNOWN",
898 Self::Minute1 => "PERIOD_MINUTE_1",
899 Self::Hour1 => "PERIOD_HOUR_1",
900 Self::Day1 => "PERIOD_DAY_1",
901 Self::Week1 => "PERIOD_WEEK_1",
902 Self::Month1 => "PERIOD_MONTH_1",
903 }
904 }
905 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
907 match value {
908 "PERIOD_UNKNOWN" => Some(Self::Unknown),
909 "PERIOD_MINUTE_1" => Some(Self::Minute1),
910 "PERIOD_HOUR_1" => Some(Self::Hour1),
911 "PERIOD_DAY_1" => Some(Self::Day1),
912 "PERIOD_WEEK_1" => Some(Self::Week1),
913 "PERIOD_MONTH_1" => Some(Self::Month1),
914 _ => None,
915 }
916 }
917}
918#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
920#[repr(i32)]
921pub enum RangePeriod {
922 RangeThreeMonths = 1,
926 RangeSixMonths = 2,
928 RangeOneYear = 3,
930 RangeThreeYears = 4,
932}
933impl RangePeriod {
934 pub fn as_str_name(&self) -> &'static str {
939 match self {
940 Self::RangeThreeMonths => "RANGE_THREE_MONTHS",
941 Self::RangeSixMonths => "RANGE_SIX_MONTHS",
942 Self::RangeOneYear => "RANGE_ONE_YEAR",
943 Self::RangeThreeYears => "RANGE_THREE_YEARS",
944 }
945 }
946 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
948 match value {
949 "RANGE_THREE_MONTHS" => Some(Self::RangeThreeMonths),
950 "RANGE_SIX_MONTHS" => Some(Self::RangeSixMonths),
951 "RANGE_ONE_YEAR" => Some(Self::RangeOneYear),
952 "RANGE_THREE_YEARS" => Some(Self::RangeThreeYears),
953 _ => None,
954 }
955 }
956}
957#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
959#[repr(i32)]
960pub enum PropertyNameBasic {
961 PropertyBasicUnknown = 0,
962 PropertyBasicInfoCode = 1101,
964 PropertyBasicInfoName = 1102,
966 PropertyBasicInfoIndustry = 1103,
968}
969impl PropertyNameBasic {
970 pub fn as_str_name(&self) -> &'static str {
975 match self {
976 Self::PropertyBasicUnknown => "PROPERTY_BASIC_UNKNOWN",
977 Self::PropertyBasicInfoCode => "PROPERTY_BASIC_INFO_CODE",
978 Self::PropertyBasicInfoName => "PROPERTY_BASIC_INFO_NAME",
979 Self::PropertyBasicInfoIndustry => "PROPERTY_BASIC_INFO_INDUSTRY",
980 }
981 }
982 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
984 match value {
985 "PROPERTY_BASIC_UNKNOWN" => Some(Self::PropertyBasicUnknown),
986 "PROPERTY_BASIC_INFO_CODE" => Some(Self::PropertyBasicInfoCode),
987 "PROPERTY_BASIC_INFO_NAME" => Some(Self::PropertyBasicInfoName),
988 "PROPERTY_BASIC_INFO_INDUSTRY" => Some(Self::PropertyBasicInfoIndustry),
989 _ => None,
990 }
991 }
992}
993#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
994#[repr(i32)]
995pub enum PropertyNameSimple {
996 PropertySimpleUnknown = 0,
998 PropertySimpleBusinessLongMarginAllowed = 2101,
1000 PropertySimpleBusinessLongMarginMortgageRate = 2102,
1002 PropertySimpleBusinessShortMarginAllowed = 2103,
1004 PropertySimpleBusinessShortMarginInterestRate = 2104,
1006 PropertySimpleBusinessLongMarginBailRate = 2105,
1008 PropertySimpleBusinessShortMarginBailRate = 2106,
1010 PropertySimpleQuotePrice = 2201,
1012 PropertySimpleQuotePriceTodayOpen = 2202,
1014 PropertySimpleQuotePriceLastClose = 2203,
1016 PropertySimpleQuotePriceTodayHigh = 2204,
1018 PropertySimpleQuotePriceTodayLow = 2205,
1020 PropertySimpleQuotePriceChangeRate = 2206,
1022 PropertySimpleQuotePriceBid = 2207,
1024 PropertySimpleQuotePriceAsk = 2208,
1026 PropertySimpleQuotePriceTo52weekHighRatio = 2209,
1028 PropertySimpleQuotePriceTo52weekLowRatio = 2210,
1030 PropertySimpleQuotePriceTodayHighTo52weekHighRatio = 2211,
1032 PropertySimpleQuotePriceTodayLowTo52weekLowRatio = 2212,
1034 PropertySimpleQuotePriceChangeIn5min = 2213,
1036 PropertySimpleQuotePriceChangeFromBeginningOfThisYear = 2214,
1038 PropertySimpleQuoteVolumeBid = 2215,
1040 PropertySimpleQuoteVolumeAsk = 2216,
1042 PropertySimpleQuoteVolumeRatio = 2217,
1044 PropertySimpleQuoteBidAskRatio = 2218,
1046 PropertySimpleQuoteLotPrice = 2219,
1048 PropertySimpleInfoMarketCapital = 2301,
1050 PropertySimpleInfoPeAnnual = 2302,
1052 PropertySimpleInfoPeTtm = 2303,
1054 PropertySimpleInfoPb = 2304,
1056 PropertySimpleInfoDividendRatio = 2305,
1058 PropertySimpleInfoListedDate = 2306,
1060 PropertySimpleInfoListedDays = 2307,
1062 PropertySimpleQuoteBeforePrice = 2401,
1066 PropertySimpleQuoteBeforePriceChange = 2402,
1068 PropertySimpleQuoteBeforePriceChangePercentage = 2403,
1070 PropertySimpleQuoteBeforeVolume = 2404,
1072 PropertySimpleQuoteBeforeTurnover = 2405,
1074 PropertySimpleQuoteAfterPrice = 2406,
1076 PropertySimpleQuoteAfterPriceChange = 2407,
1078 PropertySimpleQuoteAfterPriceChangePercentage = 2408,
1080 PropertySimpleQuoteAfterVolume = 2409,
1082 PropertySimpleQuoteAfterTurnover = 2410,
1084}
1085impl PropertyNameSimple {
1086 pub fn as_str_name(&self) -> &'static str {
1091 match self {
1092 Self::PropertySimpleUnknown => "PROPERTY_SIMPLE_UNKNOWN",
1093 Self::PropertySimpleBusinessLongMarginAllowed => {
1094 "PROPERTY_SIMPLE_BUSINESS_LONG_MARGIN_ALLOWED"
1095 }
1096 Self::PropertySimpleBusinessLongMarginMortgageRate => {
1097 "PROPERTY_SIMPLE_BUSINESS_LONG_MARGIN_MORTGAGE_RATE"
1098 }
1099 Self::PropertySimpleBusinessShortMarginAllowed => {
1100 "PROPERTY_SIMPLE_BUSINESS_SHORT_MARGIN_ALLOWED"
1101 }
1102 Self::PropertySimpleBusinessShortMarginInterestRate => {
1103 "PROPERTY_SIMPLE_BUSINESS_SHORT_MARGIN_INTEREST_RATE"
1104 }
1105 Self::PropertySimpleBusinessLongMarginBailRate => {
1106 "PROPERTY_SIMPLE_BUSINESS_LONG_MARGIN_BAIL_RATE"
1107 }
1108 Self::PropertySimpleBusinessShortMarginBailRate => {
1109 "PROPERTY_SIMPLE_BUSINESS_SHORT_MARGIN_BAIL_RATE"
1110 }
1111 Self::PropertySimpleQuotePrice => "PROPERTY_SIMPLE_QUOTE_PRICE",
1112 Self::PropertySimpleQuotePriceTodayOpen => {
1113 "PROPERTY_SIMPLE_QUOTE_PRICE_TODAY_OPEN"
1114 }
1115 Self::PropertySimpleQuotePriceLastClose => {
1116 "PROPERTY_SIMPLE_QUOTE_PRICE_LAST_CLOSE"
1117 }
1118 Self::PropertySimpleQuotePriceTodayHigh => {
1119 "PROPERTY_SIMPLE_QUOTE_PRICE_TODAY_HIGH"
1120 }
1121 Self::PropertySimpleQuotePriceTodayLow => {
1122 "PROPERTY_SIMPLE_QUOTE_PRICE_TODAY_LOW"
1123 }
1124 Self::PropertySimpleQuotePriceChangeRate => {
1125 "PROPERTY_SIMPLE_QUOTE_PRICE_CHANGE_RATE"
1126 }
1127 Self::PropertySimpleQuotePriceBid => "PROPERTY_SIMPLE_QUOTE_PRICE_BID",
1128 Self::PropertySimpleQuotePriceAsk => "PROPERTY_SIMPLE_QUOTE_PRICE_ASK",
1129 Self::PropertySimpleQuotePriceTo52weekHighRatio => {
1130 "PROPERTY_SIMPLE_QUOTE_PRICE_TO_52WEEK_HIGH_RATIO"
1131 }
1132 Self::PropertySimpleQuotePriceTo52weekLowRatio => {
1133 "PROPERTY_SIMPLE_QUOTE_PRICE_TO_52WEEK_LOW_RATIO"
1134 }
1135 Self::PropertySimpleQuotePriceTodayHighTo52weekHighRatio => {
1136 "PROPERTY_SIMPLE_QUOTE_PRICE_TODAY_HIGH_TO_52WEEK_HIGH_RATIO"
1137 }
1138 Self::PropertySimpleQuotePriceTodayLowTo52weekLowRatio => {
1139 "PROPERTY_SIMPLE_QUOTE_PRICE_TODAY_LOW_TO_52WEEK_LOW_RATIO"
1140 }
1141 Self::PropertySimpleQuotePriceChangeIn5min => {
1142 "PROPERTY_SIMPLE_QUOTE_PRICE_CHANGE_IN_5MIN"
1143 }
1144 Self::PropertySimpleQuotePriceChangeFromBeginningOfThisYear => {
1145 "PROPERTY_SIMPLE_QUOTE_PRICE_CHANGE_FROM_BEGINNING_OF_THIS_YEAR"
1146 }
1147 Self::PropertySimpleQuoteVolumeBid => "PROPERTY_SIMPLE_QUOTE_VOLUME_BID",
1148 Self::PropertySimpleQuoteVolumeAsk => "PROPERTY_SIMPLE_QUOTE_VOLUME_ASK",
1149 Self::PropertySimpleQuoteVolumeRatio => "PROPERTY_SIMPLE_QUOTE_VOLUME_RATIO",
1150 Self::PropertySimpleQuoteBidAskRatio => "PROPERTY_SIMPLE_QUOTE_BID_ASK_RATIO",
1151 Self::PropertySimpleQuoteLotPrice => "PROPERTY_SIMPLE_QUOTE_LOT_PRICE",
1152 Self::PropertySimpleInfoMarketCapital => {
1153 "PROPERTY_SIMPLE_INFO_MARKET_CAPITAL"
1154 }
1155 Self::PropertySimpleInfoPeAnnual => "PROPERTY_SIMPLE_INFO_PE_ANNUAL",
1156 Self::PropertySimpleInfoPeTtm => "PROPERTY_SIMPLE_INFO_PE_TTM",
1157 Self::PropertySimpleInfoPb => "PROPERTY_SIMPLE_INFO_PB",
1158 Self::PropertySimpleInfoDividendRatio => {
1159 "PROPERTY_SIMPLE_INFO_DIVIDEND_RATIO"
1160 }
1161 Self::PropertySimpleInfoListedDate => "PROPERTY_SIMPLE_INFO_LISTED_DATE",
1162 Self::PropertySimpleInfoListedDays => "PROPERTY_SIMPLE_INFO_LISTED_DAYS",
1163 Self::PropertySimpleQuoteBeforePrice => "PROPERTY_SIMPLE_QUOTE_BEFORE_PRICE",
1164 Self::PropertySimpleQuoteBeforePriceChange => {
1165 "PROPERTY_SIMPLE_QUOTE_BEFORE_PRICE_CHANGE"
1166 }
1167 Self::PropertySimpleQuoteBeforePriceChangePercentage => {
1168 "PROPERTY_SIMPLE_QUOTE_BEFORE_PRICE_CHANGE_PERCENTAGE"
1169 }
1170 Self::PropertySimpleQuoteBeforeVolume => {
1171 "PROPERTY_SIMPLE_QUOTE_BEFORE_VOLUME"
1172 }
1173 Self::PropertySimpleQuoteBeforeTurnover => {
1174 "PROPERTY_SIMPLE_QUOTE_BEFORE_TURNOVER"
1175 }
1176 Self::PropertySimpleQuoteAfterPrice => "PROPERTY_SIMPLE_QUOTE_AFTER_PRICE",
1177 Self::PropertySimpleQuoteAfterPriceChange => {
1178 "PROPERTY_SIMPLE_QUOTE_AFTER_PRICE_CHANGE"
1179 }
1180 Self::PropertySimpleQuoteAfterPriceChangePercentage => {
1181 "PROPERTY_SIMPLE_QUOTE_AFTER_PRICE_CHANGE_PERCENTAGE"
1182 }
1183 Self::PropertySimpleQuoteAfterVolume => "PROPERTY_SIMPLE_QUOTE_AFTER_VOLUME",
1184 Self::PropertySimpleQuoteAfterTurnover => {
1185 "PROPERTY_SIMPLE_QUOTE_AFTER_TURNOVER"
1186 }
1187 }
1188 }
1189 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1191 match value {
1192 "PROPERTY_SIMPLE_UNKNOWN" => Some(Self::PropertySimpleUnknown),
1193 "PROPERTY_SIMPLE_BUSINESS_LONG_MARGIN_ALLOWED" => {
1194 Some(Self::PropertySimpleBusinessLongMarginAllowed)
1195 }
1196 "PROPERTY_SIMPLE_BUSINESS_LONG_MARGIN_MORTGAGE_RATE" => {
1197 Some(Self::PropertySimpleBusinessLongMarginMortgageRate)
1198 }
1199 "PROPERTY_SIMPLE_BUSINESS_SHORT_MARGIN_ALLOWED" => {
1200 Some(Self::PropertySimpleBusinessShortMarginAllowed)
1201 }
1202 "PROPERTY_SIMPLE_BUSINESS_SHORT_MARGIN_INTEREST_RATE" => {
1203 Some(Self::PropertySimpleBusinessShortMarginInterestRate)
1204 }
1205 "PROPERTY_SIMPLE_BUSINESS_LONG_MARGIN_BAIL_RATE" => {
1206 Some(Self::PropertySimpleBusinessLongMarginBailRate)
1207 }
1208 "PROPERTY_SIMPLE_BUSINESS_SHORT_MARGIN_BAIL_RATE" => {
1209 Some(Self::PropertySimpleBusinessShortMarginBailRate)
1210 }
1211 "PROPERTY_SIMPLE_QUOTE_PRICE" => Some(Self::PropertySimpleQuotePrice),
1212 "PROPERTY_SIMPLE_QUOTE_PRICE_TODAY_OPEN" => {
1213 Some(Self::PropertySimpleQuotePriceTodayOpen)
1214 }
1215 "PROPERTY_SIMPLE_QUOTE_PRICE_LAST_CLOSE" => {
1216 Some(Self::PropertySimpleQuotePriceLastClose)
1217 }
1218 "PROPERTY_SIMPLE_QUOTE_PRICE_TODAY_HIGH" => {
1219 Some(Self::PropertySimpleQuotePriceTodayHigh)
1220 }
1221 "PROPERTY_SIMPLE_QUOTE_PRICE_TODAY_LOW" => {
1222 Some(Self::PropertySimpleQuotePriceTodayLow)
1223 }
1224 "PROPERTY_SIMPLE_QUOTE_PRICE_CHANGE_RATE" => {
1225 Some(Self::PropertySimpleQuotePriceChangeRate)
1226 }
1227 "PROPERTY_SIMPLE_QUOTE_PRICE_BID" => Some(Self::PropertySimpleQuotePriceBid),
1228 "PROPERTY_SIMPLE_QUOTE_PRICE_ASK" => Some(Self::PropertySimpleQuotePriceAsk),
1229 "PROPERTY_SIMPLE_QUOTE_PRICE_TO_52WEEK_HIGH_RATIO" => {
1230 Some(Self::PropertySimpleQuotePriceTo52weekHighRatio)
1231 }
1232 "PROPERTY_SIMPLE_QUOTE_PRICE_TO_52WEEK_LOW_RATIO" => {
1233 Some(Self::PropertySimpleQuotePriceTo52weekLowRatio)
1234 }
1235 "PROPERTY_SIMPLE_QUOTE_PRICE_TODAY_HIGH_TO_52WEEK_HIGH_RATIO" => {
1236 Some(Self::PropertySimpleQuotePriceTodayHighTo52weekHighRatio)
1237 }
1238 "PROPERTY_SIMPLE_QUOTE_PRICE_TODAY_LOW_TO_52WEEK_LOW_RATIO" => {
1239 Some(Self::PropertySimpleQuotePriceTodayLowTo52weekLowRatio)
1240 }
1241 "PROPERTY_SIMPLE_QUOTE_PRICE_CHANGE_IN_5MIN" => {
1242 Some(Self::PropertySimpleQuotePriceChangeIn5min)
1243 }
1244 "PROPERTY_SIMPLE_QUOTE_PRICE_CHANGE_FROM_BEGINNING_OF_THIS_YEAR" => {
1245 Some(Self::PropertySimpleQuotePriceChangeFromBeginningOfThisYear)
1246 }
1247 "PROPERTY_SIMPLE_QUOTE_VOLUME_BID" => {
1248 Some(Self::PropertySimpleQuoteVolumeBid)
1249 }
1250 "PROPERTY_SIMPLE_QUOTE_VOLUME_ASK" => {
1251 Some(Self::PropertySimpleQuoteVolumeAsk)
1252 }
1253 "PROPERTY_SIMPLE_QUOTE_VOLUME_RATIO" => {
1254 Some(Self::PropertySimpleQuoteVolumeRatio)
1255 }
1256 "PROPERTY_SIMPLE_QUOTE_BID_ASK_RATIO" => {
1257 Some(Self::PropertySimpleQuoteBidAskRatio)
1258 }
1259 "PROPERTY_SIMPLE_QUOTE_LOT_PRICE" => Some(Self::PropertySimpleQuoteLotPrice),
1260 "PROPERTY_SIMPLE_INFO_MARKET_CAPITAL" => {
1261 Some(Self::PropertySimpleInfoMarketCapital)
1262 }
1263 "PROPERTY_SIMPLE_INFO_PE_ANNUAL" => Some(Self::PropertySimpleInfoPeAnnual),
1264 "PROPERTY_SIMPLE_INFO_PE_TTM" => Some(Self::PropertySimpleInfoPeTtm),
1265 "PROPERTY_SIMPLE_INFO_PB" => Some(Self::PropertySimpleInfoPb),
1266 "PROPERTY_SIMPLE_INFO_DIVIDEND_RATIO" => {
1267 Some(Self::PropertySimpleInfoDividendRatio)
1268 }
1269 "PROPERTY_SIMPLE_INFO_LISTED_DATE" => {
1270 Some(Self::PropertySimpleInfoListedDate)
1271 }
1272 "PROPERTY_SIMPLE_INFO_LISTED_DAYS" => {
1273 Some(Self::PropertySimpleInfoListedDays)
1274 }
1275 "PROPERTY_SIMPLE_QUOTE_BEFORE_PRICE" => {
1276 Some(Self::PropertySimpleQuoteBeforePrice)
1277 }
1278 "PROPERTY_SIMPLE_QUOTE_BEFORE_PRICE_CHANGE" => {
1279 Some(Self::PropertySimpleQuoteBeforePriceChange)
1280 }
1281 "PROPERTY_SIMPLE_QUOTE_BEFORE_PRICE_CHANGE_PERCENTAGE" => {
1282 Some(Self::PropertySimpleQuoteBeforePriceChangePercentage)
1283 }
1284 "PROPERTY_SIMPLE_QUOTE_BEFORE_VOLUME" => {
1285 Some(Self::PropertySimpleQuoteBeforeVolume)
1286 }
1287 "PROPERTY_SIMPLE_QUOTE_BEFORE_TURNOVER" => {
1288 Some(Self::PropertySimpleQuoteBeforeTurnover)
1289 }
1290 "PROPERTY_SIMPLE_QUOTE_AFTER_PRICE" => {
1291 Some(Self::PropertySimpleQuoteAfterPrice)
1292 }
1293 "PROPERTY_SIMPLE_QUOTE_AFTER_PRICE_CHANGE" => {
1294 Some(Self::PropertySimpleQuoteAfterPriceChange)
1295 }
1296 "PROPERTY_SIMPLE_QUOTE_AFTER_PRICE_CHANGE_PERCENTAGE" => {
1297 Some(Self::PropertySimpleQuoteAfterPriceChangePercentage)
1298 }
1299 "PROPERTY_SIMPLE_QUOTE_AFTER_VOLUME" => {
1300 Some(Self::PropertySimpleQuoteAfterVolume)
1301 }
1302 "PROPERTY_SIMPLE_QUOTE_AFTER_TURNOVER" => {
1303 Some(Self::PropertySimpleQuoteAfterTurnover)
1304 }
1305 _ => None,
1306 }
1307 }
1308}
1309#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1310#[repr(i32)]
1311pub enum PropertyNameCumulative {
1312 PropertyCumulativeUnknown = 0,
1314 PropertyCumulativeQuotePriceChange = 3101,
1316 PropertyCumulativeQuotePriceChangePercentage = 3102,
1318 PropertyCumulativeQuotePriceAmplitude = 3103,
1320 PropertyCumulativeQuoteAverageVolume = 3104,
1322 PropertyCumulativeQuoteAverageTurnover = 3105,
1324 PropertyCumulativeQuoteTurnoverRatio = 3106,
1326 PropertyCumulativeQuotePriceTodayHighToNDaysHighRatio = 3107,
1328 PropertyCumulativeQuotePriceTodayLowToNDaysLowRatio = 3108,
1330}
1331impl PropertyNameCumulative {
1332 pub fn as_str_name(&self) -> &'static str {
1337 match self {
1338 Self::PropertyCumulativeUnknown => "PROPERTY_CUMULATIVE_UNKNOWN",
1339 Self::PropertyCumulativeQuotePriceChange => {
1340 "PROPERTY_CUMULATIVE_QUOTE_PRICE_CHANGE"
1341 }
1342 Self::PropertyCumulativeQuotePriceChangePercentage => {
1343 "PROPERTY_CUMULATIVE_QUOTE_PRICE_CHANGE_PERCENTAGE"
1344 }
1345 Self::PropertyCumulativeQuotePriceAmplitude => {
1346 "PROPERTY_CUMULATIVE_QUOTE_PRICE_AMPLITUDE"
1347 }
1348 Self::PropertyCumulativeQuoteAverageVolume => {
1349 "PROPERTY_CUMULATIVE_QUOTE_AVERAGE_VOLUME"
1350 }
1351 Self::PropertyCumulativeQuoteAverageTurnover => {
1352 "PROPERTY_CUMULATIVE_QUOTE_AVERAGE_TURNOVER"
1353 }
1354 Self::PropertyCumulativeQuoteTurnoverRatio => {
1355 "PROPERTY_CUMULATIVE_QUOTE_TURNOVER_RATIO"
1356 }
1357 Self::PropertyCumulativeQuotePriceTodayHighToNDaysHighRatio => {
1358 "PROPERTY_CUMULATIVE_QUOTE_PRICE_TODAY_HIGH_TO_N_DAYS_HIGH_RATIO"
1359 }
1360 Self::PropertyCumulativeQuotePriceTodayLowToNDaysLowRatio => {
1361 "PROPERTY_CUMULATIVE_QUOTE_PRICE_TODAY_LOW_TO_N_DAYS_LOW_RATIO"
1362 }
1363 }
1364 }
1365 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1367 match value {
1368 "PROPERTY_CUMULATIVE_UNKNOWN" => Some(Self::PropertyCumulativeUnknown),
1369 "PROPERTY_CUMULATIVE_QUOTE_PRICE_CHANGE" => {
1370 Some(Self::PropertyCumulativeQuotePriceChange)
1371 }
1372 "PROPERTY_CUMULATIVE_QUOTE_PRICE_CHANGE_PERCENTAGE" => {
1373 Some(Self::PropertyCumulativeQuotePriceChangePercentage)
1374 }
1375 "PROPERTY_CUMULATIVE_QUOTE_PRICE_AMPLITUDE" => {
1376 Some(Self::PropertyCumulativeQuotePriceAmplitude)
1377 }
1378 "PROPERTY_CUMULATIVE_QUOTE_AVERAGE_VOLUME" => {
1379 Some(Self::PropertyCumulativeQuoteAverageVolume)
1380 }
1381 "PROPERTY_CUMULATIVE_QUOTE_AVERAGE_TURNOVER" => {
1382 Some(Self::PropertyCumulativeQuoteAverageTurnover)
1383 }
1384 "PROPERTY_CUMULATIVE_QUOTE_TURNOVER_RATIO" => {
1385 Some(Self::PropertyCumulativeQuoteTurnoverRatio)
1386 }
1387 "PROPERTY_CUMULATIVE_QUOTE_PRICE_TODAY_HIGH_TO_N_DAYS_HIGH_RATIO" => {
1388 Some(Self::PropertyCumulativeQuotePriceTodayHighToNDaysHighRatio)
1389 }
1390 "PROPERTY_CUMULATIVE_QUOTE_PRICE_TODAY_LOW_TO_N_DAYS_LOW_RATIO" => {
1391 Some(Self::PropertyCumulativeQuotePriceTodayLowToNDaysLowRatio)
1392 }
1393 _ => None,
1394 }
1395 }
1396}
1397#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1398#[repr(i32)]
1399pub enum PropertyNameFinancial {
1400 PropertyFinancialUnknown = 0,
1404 PropertyFinancialNetProfit = 4101,
1406 PropertyFinancialNetProfitGrowth = 4102,
1408 PropertyFinancialGrossProfit = 4103,
1410 PropertyFinancialGrossProfitGrowth = 4104,
1412 PropertyFinancialRevenue = 4105,
1414 PropertyFinancialRevenueGrowth = 4106,
1416 PropertyFinancialNetProfitRatio = 4107,
1418 PropertyFinancialGrossProfitRatio = 4108,
1420 PropertyFinancialDebtToAssetsRatio = 4109,
1422 PropertyFinancialReturnToNetAssetsRatio = 4110,
1424 PropertyFinancialEbitda = 4201,
1428 PropertyFinancialRoic = 4202,
1430 PropertyFinancialEbitMargin = 4203,
1432 PropertyFinancialEbitdaMargin = 4204,
1434 PropertyFinancialFinancialCostRate = 4205,
1436 PropertyFinancialEbitTtm = 4206,
1438 PropertyFinancialOperatingProfitTtm = 4207,
1440 PropertyFinancialShareholdersProfitTtm = 4208,
1442 PropertyFinancialRoaTtm = 4209,
1444 PropertyFinancialOperatingMarginTtm = 4210,
1446 PropertyFinancialNetProfitCashCoverTtm = 4211,
1448 PropertyFinancialRdExpenseRatio = 4212,
1450 PropertyFinancialSellingExpenseRatio = 4213,
1452 PropertyFinancialManageExpenseRatio = 4214,
1454 PropertyFinancialOperatingProfitRate = 4215,
1456 PropertyFinancialProfitBeforeTaxRate = 4216,
1458 PropertyFinancialDividendsTtm = 4217,
1460 PropertyFinancialDividendsLfy = 4218,
1462 PropertyFinancialDividendsTtmRatio = 4219,
1464 PropertyFinancialDividendsLfyRatio = 4220,
1466 PropertyFinancialCurrentRatio = 4301,
1470 PropertyFinancialQuickRatio = 4302,
1472 PropertyFinancialLongTermDebtShareholdersRatio = 4303,
1474 PropertyFinancialFinancialLeverage = 4304,
1476 PropertyFinancialInterestBearingDebtRatio = 4305,
1478 PropertyFinancialCashAndCashEquivalents = 4401,
1482 PropertyFinancialCurrentAssetRatio = 4402,
1484 PropertyFinancialCurrentDebtRatio = 4403,
1486 PropertyFinancialEquityMultiplier = 4404,
1488 PropertyFinancialPropertyRatio = 4405,
1490 PropertyFinancialAccountsReceviable = 4501,
1494 PropertyFinancialTotalAssetTurnover = 4502,
1496 PropertyFinancialFixedAssetTurnover = 4503,
1498 PropertyFinancialInventoryTurnover = 4504,
1500 PropertyFinancialOperatingCashFlowTtm = 4505,
1502 PropertyFinancialMoneyTurnoverCycle = 4506,
1504 PropertyFinancialAccountsReceivableRate = 4507,
1506 PropertyFinancialFreeCashFlowIncomeRatio = 4508,
1508 PropertyFinancialFreeCashFlowParentCompanyNetProfitRatio = 4509,
1510 PropertyFinancialTurnoverRateCurrentAssetsRatio = 4510,
1512 PropertyFinancialEbitGrowthRate = 4601,
1516 PropertyFinancialOperatingProfitGrowthRate = 4602,
1518 PropertyFinancialTotalAssetsGrowthRate = 4603,
1520 PropertyFinancialProfitToShareholdersGrowthRate = 4604,
1522 PropertyFinancialProfitBeforeTaxGrowthRate = 4605,
1524 PropertyFinancialEpsGrowthRate = 4606,
1526 PropertyFinancialRoeGrowthRate = 4607,
1528 PropertyFinancialRoicGrowthRate = 4608,
1530 PropertyFinancialNocfGrowthRate = 4609,
1532 PropertyFinancialNocfPerShareGrowthRate = 4610,
1534 PropertyFinancialOperatingRevenueCashCover = 4701,
1538 PropertyFinancialOperatingProfitToTotalProfit = 4702,
1540 PropertyFinancialBasicEps = 4801,
1544 PropertyFinancialDilutedEps = 4802,
1546 PropertyFinancialNocfPerShare = 4803,
1548 PropertyFinancialTotalShare = 4901,
1552 PropertyFinancialFloatShare = 4902,
1554 PropertyFinancialFloatMarketCap = 4903,
1556 PropertyFinancialPsTtm = 4904,
1558 PropertyFinancialPriceCashFlowRatioTtm = 4905,
1560}
1561impl PropertyNameFinancial {
1562 pub fn as_str_name(&self) -> &'static str {
1567 match self {
1568 Self::PropertyFinancialUnknown => "PROPERTY_FINANCIAL_UNKNOWN",
1569 Self::PropertyFinancialNetProfit => "PROPERTY_FINANCIAL_NET_PROFIT",
1570 Self::PropertyFinancialNetProfitGrowth => {
1571 "PROPERTY_FINANCIAL_NET_PROFIT_GROWTH"
1572 }
1573 Self::PropertyFinancialGrossProfit => "PROPERTY_FINANCIAL_GROSS_PROFIT",
1574 Self::PropertyFinancialGrossProfitGrowth => {
1575 "PROPERTY_FINANCIAL_GROSS_PROFIT_GROWTH"
1576 }
1577 Self::PropertyFinancialRevenue => "PROPERTY_FINANCIAL_REVENUE",
1578 Self::PropertyFinancialRevenueGrowth => "PROPERTY_FINANCIAL_REVENUE_GROWTH",
1579 Self::PropertyFinancialNetProfitRatio => {
1580 "PROPERTY_FINANCIAL_NET_PROFIT_RATIO"
1581 }
1582 Self::PropertyFinancialGrossProfitRatio => {
1583 "PROPERTY_FINANCIAL_GROSS_PROFIT_RATIO"
1584 }
1585 Self::PropertyFinancialDebtToAssetsRatio => {
1586 "PROPERTY_FINANCIAL_DEBT_TO_ASSETS_RATIO"
1587 }
1588 Self::PropertyFinancialReturnToNetAssetsRatio => {
1589 "PROPERTY_FINANCIAL_RETURN_TO_NET_ASSETS_RATIO"
1590 }
1591 Self::PropertyFinancialEbitda => "PROPERTY_FINANCIAL_EBITDA",
1592 Self::PropertyFinancialRoic => "PROPERTY_FINANCIAL_ROIC",
1593 Self::PropertyFinancialEbitMargin => "PROPERTY_FINANCIAL_EBIT_MARGIN",
1594 Self::PropertyFinancialEbitdaMargin => "PROPERTY_FINANCIAL_EBITDA_MARGIN",
1595 Self::PropertyFinancialFinancialCostRate => {
1596 "PROPERTY_FINANCIAL_FINANCIAL_COST_RATE"
1597 }
1598 Self::PropertyFinancialEbitTtm => "PROPERTY_FINANCIAL_EBIT_TTM",
1599 Self::PropertyFinancialOperatingProfitTtm => {
1600 "PROPERTY_FINANCIAL_OPERATING_PROFIT_TTM"
1601 }
1602 Self::PropertyFinancialShareholdersProfitTtm => {
1603 "PROPERTY_FINANCIAL_SHAREHOLDERS_PROFIT_TTM"
1604 }
1605 Self::PropertyFinancialRoaTtm => "PROPERTY_FINANCIAL_ROA_TTM",
1606 Self::PropertyFinancialOperatingMarginTtm => {
1607 "PROPERTY_FINANCIAL_OPERATING_MARGIN_TTM"
1608 }
1609 Self::PropertyFinancialNetProfitCashCoverTtm => {
1610 "PROPERTY_FINANCIAL_NET_PROFIT_CASH_COVER_TTM"
1611 }
1612 Self::PropertyFinancialRdExpenseRatio => {
1613 "PROPERTY_FINANCIAL_RD_EXPENSE_RATIO"
1614 }
1615 Self::PropertyFinancialSellingExpenseRatio => {
1616 "PROPERTY_FINANCIAL_SELLING_EXPENSE_RATIO"
1617 }
1618 Self::PropertyFinancialManageExpenseRatio => {
1619 "PROPERTY_FINANCIAL_MANAGE_EXPENSE_RATIO"
1620 }
1621 Self::PropertyFinancialOperatingProfitRate => {
1622 "PROPERTY_FINANCIAL_OPERATING_PROFIT_RATE"
1623 }
1624 Self::PropertyFinancialProfitBeforeTaxRate => {
1625 "PROPERTY_FINANCIAL_PROFIT_BEFORE_TAX_RATE"
1626 }
1627 Self::PropertyFinancialDividendsTtm => "PROPERTY_FINANCIAL_DIVIDENDS_TTM",
1628 Self::PropertyFinancialDividendsLfy => "PROPERTY_FINANCIAL_DIVIDENDS_LFY",
1629 Self::PropertyFinancialDividendsTtmRatio => {
1630 "PROPERTY_FINANCIAL_DIVIDENDS_TTM_RATIO"
1631 }
1632 Self::PropertyFinancialDividendsLfyRatio => {
1633 "PROPERTY_FINANCIAL_DIVIDENDS_LFY_RATIO"
1634 }
1635 Self::PropertyFinancialCurrentRatio => "PROPERTY_FINANCIAL_CURRENT_RATIO",
1636 Self::PropertyFinancialQuickRatio => "PROPERTY_FINANCIAL_QUICK_RATIO",
1637 Self::PropertyFinancialLongTermDebtShareholdersRatio => {
1638 "PROPERTY_FINANCIAL_LONG_TERM_DEBT_SHAREHOLDERS_RATIO"
1639 }
1640 Self::PropertyFinancialFinancialLeverage => {
1641 "PROPERTY_FINANCIAL_FINANCIAL_LEVERAGE"
1642 }
1643 Self::PropertyFinancialInterestBearingDebtRatio => {
1644 "PROPERTY_FINANCIAL_INTEREST_BEARING_DEBT_RATIO"
1645 }
1646 Self::PropertyFinancialCashAndCashEquivalents => {
1647 "PROPERTY_FINANCIAL_CASH_AND_CASH_EQUIVALENTS"
1648 }
1649 Self::PropertyFinancialCurrentAssetRatio => {
1650 "PROPERTY_FINANCIAL_CURRENT_ASSET_RATIO"
1651 }
1652 Self::PropertyFinancialCurrentDebtRatio => {
1653 "PROPERTY_FINANCIAL_CURRENT_DEBT_RATIO"
1654 }
1655 Self::PropertyFinancialEquityMultiplier => {
1656 "PROPERTY_FINANCIAL_EQUITY_MULTIPLIER"
1657 }
1658 Self::PropertyFinancialPropertyRatio => "PROPERTY_FINANCIAL_PROPERTY_RATIO",
1659 Self::PropertyFinancialAccountsReceviable => {
1660 "PROPERTY_FINANCIAL_ACCOUNTS_RECEVIABLE"
1661 }
1662 Self::PropertyFinancialTotalAssetTurnover => {
1663 "PROPERTY_FINANCIAL_TOTAL_ASSET_TURNOVER"
1664 }
1665 Self::PropertyFinancialFixedAssetTurnover => {
1666 "PROPERTY_FINANCIAL_FIXED_ASSET_TURNOVER"
1667 }
1668 Self::PropertyFinancialInventoryTurnover => {
1669 "PROPERTY_FINANCIAL_INVENTORY_TURNOVER"
1670 }
1671 Self::PropertyFinancialOperatingCashFlowTtm => {
1672 "PROPERTY_FINANCIAL_OPERATING_CASH_FLOW_TTM"
1673 }
1674 Self::PropertyFinancialMoneyTurnoverCycle => {
1675 "PROPERTY_FINANCIAL_MONEY_TURNOVER_CYCLE"
1676 }
1677 Self::PropertyFinancialAccountsReceivableRate => {
1678 "PROPERTY_FINANCIAL_ACCOUNTS_RECEIVABLE_RATE"
1679 }
1680 Self::PropertyFinancialFreeCashFlowIncomeRatio => {
1681 "PROPERTY_FINANCIAL_FREE_CASH_FLOW_INCOME_RATIO"
1682 }
1683 Self::PropertyFinancialFreeCashFlowParentCompanyNetProfitRatio => {
1684 "PROPERTY_FINANCIAL_FREE_CASH_FLOW_PARENT_COMPANY_NET_PROFIT_RATIO"
1685 }
1686 Self::PropertyFinancialTurnoverRateCurrentAssetsRatio => {
1687 "PROPERTY_FINANCIAL_TURNOVER_RATE_CURRENT_ASSETS_RATIO"
1688 }
1689 Self::PropertyFinancialEbitGrowthRate => {
1690 "PROPERTY_FINANCIAL_EBIT_GROWTH_RATE"
1691 }
1692 Self::PropertyFinancialOperatingProfitGrowthRate => {
1693 "PROPERTY_FINANCIAL_OPERATING_PROFIT_GROWTH_RATE"
1694 }
1695 Self::PropertyFinancialTotalAssetsGrowthRate => {
1696 "PROPERTY_FINANCIAL_TOTAL_ASSETS_GROWTH_RATE"
1697 }
1698 Self::PropertyFinancialProfitToShareholdersGrowthRate => {
1699 "PROPERTY_FINANCIAL_PROFIT_TO_SHAREHOLDERS_GROWTH_RATE"
1700 }
1701 Self::PropertyFinancialProfitBeforeTaxGrowthRate => {
1702 "PROPERTY_FINANCIAL_PROFIT_BEFORE_TAX_GROWTH_RATE"
1703 }
1704 Self::PropertyFinancialEpsGrowthRate => "PROPERTY_FINANCIAL_EPS_GROWTH_RATE",
1705 Self::PropertyFinancialRoeGrowthRate => "PROPERTY_FINANCIAL_ROE_GROWTH_RATE",
1706 Self::PropertyFinancialRoicGrowthRate => {
1707 "PROPERTY_FINANCIAL_ROIC_GROWTH_RATE"
1708 }
1709 Self::PropertyFinancialNocfGrowthRate => {
1710 "PROPERTY_FINANCIAL_NOCF_GROWTH_RATE"
1711 }
1712 Self::PropertyFinancialNocfPerShareGrowthRate => {
1713 "PROPERTY_FINANCIAL_NOCF_PER_SHARE_GROWTH_RATE"
1714 }
1715 Self::PropertyFinancialOperatingRevenueCashCover => {
1716 "PROPERTY_FINANCIAL_OPERATING_REVENUE_CASH_COVER"
1717 }
1718 Self::PropertyFinancialOperatingProfitToTotalProfit => {
1719 "PROPERTY_FINANCIAL_OPERATING_PROFIT_TO_TOTAL_PROFIT"
1720 }
1721 Self::PropertyFinancialBasicEps => "PROPERTY_FINANCIAL_BASIC_EPS",
1722 Self::PropertyFinancialDilutedEps => "PROPERTY_FINANCIAL_DILUTED_EPS",
1723 Self::PropertyFinancialNocfPerShare => "PROPERTY_FINANCIAL_NOCF_PER_SHARE",
1724 Self::PropertyFinancialTotalShare => "PROPERTY_FINANCIAL_TOTAL_SHARE",
1725 Self::PropertyFinancialFloatShare => "PROPERTY_FINANCIAL_FLOAT_SHARE",
1726 Self::PropertyFinancialFloatMarketCap => {
1727 "PROPERTY_FINANCIAL_FLOAT_MARKET_CAP"
1728 }
1729 Self::PropertyFinancialPsTtm => "PROPERTY_FINANCIAL_PS_TTM",
1730 Self::PropertyFinancialPriceCashFlowRatioTtm => {
1731 "PROPERTY_FINANCIAL_PRICE_CASH_FLOW_RATIO_TTM"
1732 }
1733 }
1734 }
1735 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1737 match value {
1738 "PROPERTY_FINANCIAL_UNKNOWN" => Some(Self::PropertyFinancialUnknown),
1739 "PROPERTY_FINANCIAL_NET_PROFIT" => Some(Self::PropertyFinancialNetProfit),
1740 "PROPERTY_FINANCIAL_NET_PROFIT_GROWTH" => {
1741 Some(Self::PropertyFinancialNetProfitGrowth)
1742 }
1743 "PROPERTY_FINANCIAL_GROSS_PROFIT" => Some(Self::PropertyFinancialGrossProfit),
1744 "PROPERTY_FINANCIAL_GROSS_PROFIT_GROWTH" => {
1745 Some(Self::PropertyFinancialGrossProfitGrowth)
1746 }
1747 "PROPERTY_FINANCIAL_REVENUE" => Some(Self::PropertyFinancialRevenue),
1748 "PROPERTY_FINANCIAL_REVENUE_GROWTH" => {
1749 Some(Self::PropertyFinancialRevenueGrowth)
1750 }
1751 "PROPERTY_FINANCIAL_NET_PROFIT_RATIO" => {
1752 Some(Self::PropertyFinancialNetProfitRatio)
1753 }
1754 "PROPERTY_FINANCIAL_GROSS_PROFIT_RATIO" => {
1755 Some(Self::PropertyFinancialGrossProfitRatio)
1756 }
1757 "PROPERTY_FINANCIAL_DEBT_TO_ASSETS_RATIO" => {
1758 Some(Self::PropertyFinancialDebtToAssetsRatio)
1759 }
1760 "PROPERTY_FINANCIAL_RETURN_TO_NET_ASSETS_RATIO" => {
1761 Some(Self::PropertyFinancialReturnToNetAssetsRatio)
1762 }
1763 "PROPERTY_FINANCIAL_EBITDA" => Some(Self::PropertyFinancialEbitda),
1764 "PROPERTY_FINANCIAL_ROIC" => Some(Self::PropertyFinancialRoic),
1765 "PROPERTY_FINANCIAL_EBIT_MARGIN" => Some(Self::PropertyFinancialEbitMargin),
1766 "PROPERTY_FINANCIAL_EBITDA_MARGIN" => {
1767 Some(Self::PropertyFinancialEbitdaMargin)
1768 }
1769 "PROPERTY_FINANCIAL_FINANCIAL_COST_RATE" => {
1770 Some(Self::PropertyFinancialFinancialCostRate)
1771 }
1772 "PROPERTY_FINANCIAL_EBIT_TTM" => Some(Self::PropertyFinancialEbitTtm),
1773 "PROPERTY_FINANCIAL_OPERATING_PROFIT_TTM" => {
1774 Some(Self::PropertyFinancialOperatingProfitTtm)
1775 }
1776 "PROPERTY_FINANCIAL_SHAREHOLDERS_PROFIT_TTM" => {
1777 Some(Self::PropertyFinancialShareholdersProfitTtm)
1778 }
1779 "PROPERTY_FINANCIAL_ROA_TTM" => Some(Self::PropertyFinancialRoaTtm),
1780 "PROPERTY_FINANCIAL_OPERATING_MARGIN_TTM" => {
1781 Some(Self::PropertyFinancialOperatingMarginTtm)
1782 }
1783 "PROPERTY_FINANCIAL_NET_PROFIT_CASH_COVER_TTM" => {
1784 Some(Self::PropertyFinancialNetProfitCashCoverTtm)
1785 }
1786 "PROPERTY_FINANCIAL_RD_EXPENSE_RATIO" => {
1787 Some(Self::PropertyFinancialRdExpenseRatio)
1788 }
1789 "PROPERTY_FINANCIAL_SELLING_EXPENSE_RATIO" => {
1790 Some(Self::PropertyFinancialSellingExpenseRatio)
1791 }
1792 "PROPERTY_FINANCIAL_MANAGE_EXPENSE_RATIO" => {
1793 Some(Self::PropertyFinancialManageExpenseRatio)
1794 }
1795 "PROPERTY_FINANCIAL_OPERATING_PROFIT_RATE" => {
1796 Some(Self::PropertyFinancialOperatingProfitRate)
1797 }
1798 "PROPERTY_FINANCIAL_PROFIT_BEFORE_TAX_RATE" => {
1799 Some(Self::PropertyFinancialProfitBeforeTaxRate)
1800 }
1801 "PROPERTY_FINANCIAL_DIVIDENDS_TTM" => {
1802 Some(Self::PropertyFinancialDividendsTtm)
1803 }
1804 "PROPERTY_FINANCIAL_DIVIDENDS_LFY" => {
1805 Some(Self::PropertyFinancialDividendsLfy)
1806 }
1807 "PROPERTY_FINANCIAL_DIVIDENDS_TTM_RATIO" => {
1808 Some(Self::PropertyFinancialDividendsTtmRatio)
1809 }
1810 "PROPERTY_FINANCIAL_DIVIDENDS_LFY_RATIO" => {
1811 Some(Self::PropertyFinancialDividendsLfyRatio)
1812 }
1813 "PROPERTY_FINANCIAL_CURRENT_RATIO" => {
1814 Some(Self::PropertyFinancialCurrentRatio)
1815 }
1816 "PROPERTY_FINANCIAL_QUICK_RATIO" => Some(Self::PropertyFinancialQuickRatio),
1817 "PROPERTY_FINANCIAL_LONG_TERM_DEBT_SHAREHOLDERS_RATIO" => {
1818 Some(Self::PropertyFinancialLongTermDebtShareholdersRatio)
1819 }
1820 "PROPERTY_FINANCIAL_FINANCIAL_LEVERAGE" => {
1821 Some(Self::PropertyFinancialFinancialLeverage)
1822 }
1823 "PROPERTY_FINANCIAL_INTEREST_BEARING_DEBT_RATIO" => {
1824 Some(Self::PropertyFinancialInterestBearingDebtRatio)
1825 }
1826 "PROPERTY_FINANCIAL_CASH_AND_CASH_EQUIVALENTS" => {
1827 Some(Self::PropertyFinancialCashAndCashEquivalents)
1828 }
1829 "PROPERTY_FINANCIAL_CURRENT_ASSET_RATIO" => {
1830 Some(Self::PropertyFinancialCurrentAssetRatio)
1831 }
1832 "PROPERTY_FINANCIAL_CURRENT_DEBT_RATIO" => {
1833 Some(Self::PropertyFinancialCurrentDebtRatio)
1834 }
1835 "PROPERTY_FINANCIAL_EQUITY_MULTIPLIER" => {
1836 Some(Self::PropertyFinancialEquityMultiplier)
1837 }
1838 "PROPERTY_FINANCIAL_PROPERTY_RATIO" => {
1839 Some(Self::PropertyFinancialPropertyRatio)
1840 }
1841 "PROPERTY_FINANCIAL_ACCOUNTS_RECEVIABLE" => {
1842 Some(Self::PropertyFinancialAccountsReceviable)
1843 }
1844 "PROPERTY_FINANCIAL_TOTAL_ASSET_TURNOVER" => {
1845 Some(Self::PropertyFinancialTotalAssetTurnover)
1846 }
1847 "PROPERTY_FINANCIAL_FIXED_ASSET_TURNOVER" => {
1848 Some(Self::PropertyFinancialFixedAssetTurnover)
1849 }
1850 "PROPERTY_FINANCIAL_INVENTORY_TURNOVER" => {
1851 Some(Self::PropertyFinancialInventoryTurnover)
1852 }
1853 "PROPERTY_FINANCIAL_OPERATING_CASH_FLOW_TTM" => {
1854 Some(Self::PropertyFinancialOperatingCashFlowTtm)
1855 }
1856 "PROPERTY_FINANCIAL_MONEY_TURNOVER_CYCLE" => {
1857 Some(Self::PropertyFinancialMoneyTurnoverCycle)
1858 }
1859 "PROPERTY_FINANCIAL_ACCOUNTS_RECEIVABLE_RATE" => {
1860 Some(Self::PropertyFinancialAccountsReceivableRate)
1861 }
1862 "PROPERTY_FINANCIAL_FREE_CASH_FLOW_INCOME_RATIO" => {
1863 Some(Self::PropertyFinancialFreeCashFlowIncomeRatio)
1864 }
1865 "PROPERTY_FINANCIAL_FREE_CASH_FLOW_PARENT_COMPANY_NET_PROFIT_RATIO" => {
1866 Some(Self::PropertyFinancialFreeCashFlowParentCompanyNetProfitRatio)
1867 }
1868 "PROPERTY_FINANCIAL_TURNOVER_RATE_CURRENT_ASSETS_RATIO" => {
1869 Some(Self::PropertyFinancialTurnoverRateCurrentAssetsRatio)
1870 }
1871 "PROPERTY_FINANCIAL_EBIT_GROWTH_RATE" => {
1872 Some(Self::PropertyFinancialEbitGrowthRate)
1873 }
1874 "PROPERTY_FINANCIAL_OPERATING_PROFIT_GROWTH_RATE" => {
1875 Some(Self::PropertyFinancialOperatingProfitGrowthRate)
1876 }
1877 "PROPERTY_FINANCIAL_TOTAL_ASSETS_GROWTH_RATE" => {
1878 Some(Self::PropertyFinancialTotalAssetsGrowthRate)
1879 }
1880 "PROPERTY_FINANCIAL_PROFIT_TO_SHAREHOLDERS_GROWTH_RATE" => {
1881 Some(Self::PropertyFinancialProfitToShareholdersGrowthRate)
1882 }
1883 "PROPERTY_FINANCIAL_PROFIT_BEFORE_TAX_GROWTH_RATE" => {
1884 Some(Self::PropertyFinancialProfitBeforeTaxGrowthRate)
1885 }
1886 "PROPERTY_FINANCIAL_EPS_GROWTH_RATE" => {
1887 Some(Self::PropertyFinancialEpsGrowthRate)
1888 }
1889 "PROPERTY_FINANCIAL_ROE_GROWTH_RATE" => {
1890 Some(Self::PropertyFinancialRoeGrowthRate)
1891 }
1892 "PROPERTY_FINANCIAL_ROIC_GROWTH_RATE" => {
1893 Some(Self::PropertyFinancialRoicGrowthRate)
1894 }
1895 "PROPERTY_FINANCIAL_NOCF_GROWTH_RATE" => {
1896 Some(Self::PropertyFinancialNocfGrowthRate)
1897 }
1898 "PROPERTY_FINANCIAL_NOCF_PER_SHARE_GROWTH_RATE" => {
1899 Some(Self::PropertyFinancialNocfPerShareGrowthRate)
1900 }
1901 "PROPERTY_FINANCIAL_OPERATING_REVENUE_CASH_COVER" => {
1902 Some(Self::PropertyFinancialOperatingRevenueCashCover)
1903 }
1904 "PROPERTY_FINANCIAL_OPERATING_PROFIT_TO_TOTAL_PROFIT" => {
1905 Some(Self::PropertyFinancialOperatingProfitToTotalProfit)
1906 }
1907 "PROPERTY_FINANCIAL_BASIC_EPS" => Some(Self::PropertyFinancialBasicEps),
1908 "PROPERTY_FINANCIAL_DILUTED_EPS" => Some(Self::PropertyFinancialDilutedEps),
1909 "PROPERTY_FINANCIAL_NOCF_PER_SHARE" => {
1910 Some(Self::PropertyFinancialNocfPerShare)
1911 }
1912 "PROPERTY_FINANCIAL_TOTAL_SHARE" => Some(Self::PropertyFinancialTotalShare),
1913 "PROPERTY_FINANCIAL_FLOAT_SHARE" => Some(Self::PropertyFinancialFloatShare),
1914 "PROPERTY_FINANCIAL_FLOAT_MARKET_CAP" => {
1915 Some(Self::PropertyFinancialFloatMarketCap)
1916 }
1917 "PROPERTY_FINANCIAL_PS_TTM" => Some(Self::PropertyFinancialPsTtm),
1918 "PROPERTY_FINANCIAL_PRICE_CASH_FLOW_RATIO_TTM" => {
1919 Some(Self::PropertyFinancialPriceCashFlowRatioTtm)
1920 }
1921 _ => None,
1922 }
1923 }
1924}
1925#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1926#[repr(i32)]
1927pub enum Indicator {
1928 Unknown = 0,
1930 Price = 1,
1932 Ma5 = 11,
1934 Ma10 = 12,
1936 Ma20 = 13,
1938 Ma30 = 14,
1940 Ma60 = 15,
1942 Ma120 = 16,
1944 Ma250 = 17,
1946 Ma = 18,
1948 Ema5 = 21,
1950 Ema10 = 22,
1952 Ema20 = 23,
1954 Ema30 = 24,
1956 Ema60 = 25,
1958 Ema120 = 26,
1960 Ema250 = 27,
1962 Ema = 28,
1964 Kdj933K = 31,
1966 Kdj933D = 32,
1968 Kdj933J = 33,
1970 KdjK = 34,
1972 KdjD = 35,
1974 KdjJ = 36,
1976 Macd12269Dif = 41,
1978 Macd12269Dea = 42,
1980 Macd12269Macd = 43,
1982 MacdDif = 44,
1984 MacdDea = 45,
1986 MacdMacd = 46,
1988 Rsi12 = 51,
1990 Rsi = 52,
1992 Boll202Upper = 61,
1994 Boll202Middle = 62,
1996 Boll202Lower = 63,
1998 BollUpper = 64,
2000 BollMiddle = 65,
2002 BollLower = 66,
2004}
2005impl Indicator {
2006 pub fn as_str_name(&self) -> &'static str {
2011 match self {
2012 Self::Unknown => "INDICATOR_UNKNOWN",
2013 Self::Price => "INDICATOR_PRICE",
2014 Self::Ma5 => "INDICATOR_MA5",
2015 Self::Ma10 => "INDICATOR_MA10",
2016 Self::Ma20 => "INDICATOR_MA20",
2017 Self::Ma30 => "INDICATOR_MA30",
2018 Self::Ma60 => "INDICATOR_MA60",
2019 Self::Ma120 => "INDICATOR_MA120",
2020 Self::Ma250 => "INDICATOR_MA250",
2021 Self::Ma => "INDICATOR_MA",
2022 Self::Ema5 => "INDICATOR_EMA5",
2023 Self::Ema10 => "INDICATOR_EMA10",
2024 Self::Ema20 => "INDICATOR_EMA20",
2025 Self::Ema30 => "INDICATOR_EMA30",
2026 Self::Ema60 => "INDICATOR_EMA60",
2027 Self::Ema120 => "INDICATOR_EMA120",
2028 Self::Ema250 => "INDICATOR_EMA250",
2029 Self::Ema => "INDICATOR_EMA",
2030 Self::Kdj933K => "INDICATOR_KDJ_9_3_3_K",
2031 Self::Kdj933D => "INDICATOR_KDJ_9_3_3_D",
2032 Self::Kdj933J => "INDICATOR_KDJ_9_3_3_J",
2033 Self::KdjK => "INDICATOR_KDJ_K",
2034 Self::KdjD => "INDICATOR_KDJ_D",
2035 Self::KdjJ => "INDICATOR_KDJ_J",
2036 Self::Macd12269Dif => "INDICATOR_MACD_12_26_9_DIF",
2037 Self::Macd12269Dea => "INDICATOR_MACD_12_26_9_DEA",
2038 Self::Macd12269Macd => "INDICATOR_MACD_12_26_9_MACD",
2039 Self::MacdDif => "INDICATOR_MACD_DIF",
2040 Self::MacdDea => "INDICATOR_MACD_DEA",
2041 Self::MacdMacd => "INDICATOR_MACD_MACD",
2042 Self::Rsi12 => "INDICATOR_RSI_12",
2043 Self::Rsi => "INDICATOR_RSI",
2044 Self::Boll202Upper => "INDICATOR_BOLL_20_2_UPPER",
2045 Self::Boll202Middle => "INDICATOR_BOLL_20_2_MIDDLE",
2046 Self::Boll202Lower => "INDICATOR_BOLL_20_2_LOWER",
2047 Self::BollUpper => "INDICATOR_BOLL_UPPER",
2048 Self::BollMiddle => "INDICATOR_BOLL_MIDDLE",
2049 Self::BollLower => "INDICATOR_BOLL_LOWER",
2050 }
2051 }
2052 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2054 match value {
2055 "INDICATOR_UNKNOWN" => Some(Self::Unknown),
2056 "INDICATOR_PRICE" => Some(Self::Price),
2057 "INDICATOR_MA5" => Some(Self::Ma5),
2058 "INDICATOR_MA10" => Some(Self::Ma10),
2059 "INDICATOR_MA20" => Some(Self::Ma20),
2060 "INDICATOR_MA30" => Some(Self::Ma30),
2061 "INDICATOR_MA60" => Some(Self::Ma60),
2062 "INDICATOR_MA120" => Some(Self::Ma120),
2063 "INDICATOR_MA250" => Some(Self::Ma250),
2064 "INDICATOR_MA" => Some(Self::Ma),
2065 "INDICATOR_EMA5" => Some(Self::Ema5),
2066 "INDICATOR_EMA10" => Some(Self::Ema10),
2067 "INDICATOR_EMA20" => Some(Self::Ema20),
2068 "INDICATOR_EMA30" => Some(Self::Ema30),
2069 "INDICATOR_EMA60" => Some(Self::Ema60),
2070 "INDICATOR_EMA120" => Some(Self::Ema120),
2071 "INDICATOR_EMA250" => Some(Self::Ema250),
2072 "INDICATOR_EMA" => Some(Self::Ema),
2073 "INDICATOR_KDJ_9_3_3_K" => Some(Self::Kdj933K),
2074 "INDICATOR_KDJ_9_3_3_D" => Some(Self::Kdj933D),
2075 "INDICATOR_KDJ_9_3_3_J" => Some(Self::Kdj933J),
2076 "INDICATOR_KDJ_K" => Some(Self::KdjK),
2077 "INDICATOR_KDJ_D" => Some(Self::KdjD),
2078 "INDICATOR_KDJ_J" => Some(Self::KdjJ),
2079 "INDICATOR_MACD_12_26_9_DIF" => Some(Self::Macd12269Dif),
2080 "INDICATOR_MACD_12_26_9_DEA" => Some(Self::Macd12269Dea),
2081 "INDICATOR_MACD_12_26_9_MACD" => Some(Self::Macd12269Macd),
2082 "INDICATOR_MACD_DIF" => Some(Self::MacdDif),
2083 "INDICATOR_MACD_DEA" => Some(Self::MacdDea),
2084 "INDICATOR_MACD_MACD" => Some(Self::MacdMacd),
2085 "INDICATOR_RSI_12" => Some(Self::Rsi12),
2086 "INDICATOR_RSI" => Some(Self::Rsi),
2087 "INDICATOR_BOLL_20_2_UPPER" => Some(Self::Boll202Upper),
2088 "INDICATOR_BOLL_20_2_MIDDLE" => Some(Self::Boll202Middle),
2089 "INDICATOR_BOLL_20_2_LOWER" => Some(Self::Boll202Lower),
2090 "INDICATOR_BOLL_UPPER" => Some(Self::BollUpper),
2091 "INDICATOR_BOLL_MIDDLE" => Some(Self::BollMiddle),
2092 "INDICATOR_BOLL_LOWER" => Some(Self::BollLower),
2093 _ => None,
2094 }
2095 }
2096}
2097#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2098#[repr(i32)]
2099pub enum Pattern {
2100 Unknown = 0,
2102 MaAlignmentLong = 1,
2104 MaAlignmentShort = 2,
2106 EmaAlignmentLong = 3,
2108 EmaAlignmentShort = 4,
2110 KdjGoldCrossLow = 11,
2112 KdjDeathCrossHigh = 12,
2114 KdjTopDivergence = 13,
2116 KdjBottomDivergence = 14,
2118 MacdGoldCrossLow = 21,
2120 MacdDeathCrossHigh = 22,
2122 MacdTopDivergence = 23,
2124 MacdBottomDivergence = 24,
2126 RsiGoldCrossLow = 31,
2128 RsiDeathCrossHigh = 32,
2130 RsiTopDivergence = 33,
2132 RsiBottomDivergence = 34,
2134 BollBreakUpper = 41,
2136 BollBreakLower = 42,
2138 BollCrossMiddleUp = 43,
2140 BollCrossMiddleDown = 44,
2142}
2143impl Pattern {
2144 pub fn as_str_name(&self) -> &'static str {
2149 match self {
2150 Self::Unknown => "PATTERN_UNKNOWN",
2151 Self::MaAlignmentLong => "PATTERN_MA_ALIGNMENT_LONG",
2152 Self::MaAlignmentShort => "PATTERN_MA_ALIGNMENT_SHORT",
2153 Self::EmaAlignmentLong => "PATTERN_EMA_ALIGNMENT_LONG",
2154 Self::EmaAlignmentShort => "PATTERN_EMA_ALIGNMENT_SHORT",
2155 Self::KdjGoldCrossLow => "PATTERN_KDJ_GOLD_CROSS_LOW",
2156 Self::KdjDeathCrossHigh => "PATTERN_KDJ_DEATH_CROSS_HIGH",
2157 Self::KdjTopDivergence => "PATTERN_KDJ_TOP_DIVERGENCE",
2158 Self::KdjBottomDivergence => "PATTERN_KDJ_BOTTOM_DIVERGENCE",
2159 Self::MacdGoldCrossLow => "PATTERN_MACD_GOLD_CROSS_LOW",
2160 Self::MacdDeathCrossHigh => "PATTERN_MACD_DEATH_CROSS_HIGH",
2161 Self::MacdTopDivergence => "PATTERN_MACD_TOP_DIVERGENCE",
2162 Self::MacdBottomDivergence => "PATTERN_MACD_BOTTOM_DIVERGENCE",
2163 Self::RsiGoldCrossLow => "PATTERN_RSI_GOLD_CROSS_LOW",
2164 Self::RsiDeathCrossHigh => "PATTERN_RSI_DEATH_CROSS_HIGH",
2165 Self::RsiTopDivergence => "PATTERN_RSI_TOP_DIVERGENCE",
2166 Self::RsiBottomDivergence => "PATTERN_RSI_BOTTOM_DIVERGENCE",
2167 Self::BollBreakUpper => "PATTERN_BOLL_BREAK_UPPER",
2168 Self::BollBreakLower => "PATTERN_BOLL_BREAK_LOWER",
2169 Self::BollCrossMiddleUp => "PATTERN_BOLL_CROSS_MIDDLE_UP",
2170 Self::BollCrossMiddleDown => "PATTERN_BOLL_CROSS_MIDDLE_DOWN",
2171 }
2172 }
2173 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2175 match value {
2176 "PATTERN_UNKNOWN" => Some(Self::Unknown),
2177 "PATTERN_MA_ALIGNMENT_LONG" => Some(Self::MaAlignmentLong),
2178 "PATTERN_MA_ALIGNMENT_SHORT" => Some(Self::MaAlignmentShort),
2179 "PATTERN_EMA_ALIGNMENT_LONG" => Some(Self::EmaAlignmentLong),
2180 "PATTERN_EMA_ALIGNMENT_SHORT" => Some(Self::EmaAlignmentShort),
2181 "PATTERN_KDJ_GOLD_CROSS_LOW" => Some(Self::KdjGoldCrossLow),
2182 "PATTERN_KDJ_DEATH_CROSS_HIGH" => Some(Self::KdjDeathCrossHigh),
2183 "PATTERN_KDJ_TOP_DIVERGENCE" => Some(Self::KdjTopDivergence),
2184 "PATTERN_KDJ_BOTTOM_DIVERGENCE" => Some(Self::KdjBottomDivergence),
2185 "PATTERN_MACD_GOLD_CROSS_LOW" => Some(Self::MacdGoldCrossLow),
2186 "PATTERN_MACD_DEATH_CROSS_HIGH" => Some(Self::MacdDeathCrossHigh),
2187 "PATTERN_MACD_TOP_DIVERGENCE" => Some(Self::MacdTopDivergence),
2188 "PATTERN_MACD_BOTTOM_DIVERGENCE" => Some(Self::MacdBottomDivergence),
2189 "PATTERN_RSI_GOLD_CROSS_LOW" => Some(Self::RsiGoldCrossLow),
2190 "PATTERN_RSI_DEATH_CROSS_HIGH" => Some(Self::RsiDeathCrossHigh),
2191 "PATTERN_RSI_TOP_DIVERGENCE" => Some(Self::RsiTopDivergence),
2192 "PATTERN_RSI_BOTTOM_DIVERGENCE" => Some(Self::RsiBottomDivergence),
2193 "PATTERN_BOLL_BREAK_UPPER" => Some(Self::BollBreakUpper),
2194 "PATTERN_BOLL_BREAK_LOWER" => Some(Self::BollBreakLower),
2195 "PATTERN_BOLL_CROSS_MIDDLE_UP" => Some(Self::BollCrossMiddleUp),
2196 "PATTERN_BOLL_CROSS_MIDDLE_DOWN" => Some(Self::BollCrossMiddleDown),
2197 _ => None,
2198 }
2199 }
2200}
2201#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2203#[repr(i32)]
2204pub enum Featured {
2205 ChipsProfitRatio = 5101,
2209 ChipsIntervalCoincidence = 5102,
2211 IndicatorAnalysisStatus = 5201,
2215 PublicOpinionIndexStatus = 5301,
2219 AnalysisLevelStatus = 5401,
2223 CompanyValuationOverHistPercentilePb = 5501,
2227 CompanyValuationOverHistPercentilePe = 5502,
2229 CompanyValuationOverHistPercentilePs = 5503,
2231 CompanyValuationIndustryRankPb = 5504,
2233 CompanyValuetionIndustryRankPe = 5505,
2235 CompanyValuetionIndustryRankPs = 5506,
2237 CompanyValuationMarketRankPb = 5507,
2239 CompanyValuationMarketRankPe = 5508,
2241 CompanyValuationMarketRankPs = 5509,
2243}
2244impl Featured {
2245 pub fn as_str_name(&self) -> &'static str {
2250 match self {
2251 Self::ChipsProfitRatio => "FEATURED_CHIPS_PROFIT_RATIO",
2252 Self::ChipsIntervalCoincidence => "FEATURED_CHIPS_INTERVAL_COINCIDENCE",
2253 Self::IndicatorAnalysisStatus => "FEATURED_INDICATOR_ANALYSIS_STATUS",
2254 Self::PublicOpinionIndexStatus => "FEATURED_PUBLIC_OPINION_INDEX_STATUS",
2255 Self::AnalysisLevelStatus => "FEATURED_ANALYSIS_LEVEL_STATUS",
2256 Self::CompanyValuationOverHistPercentilePb => {
2257 "FEATURED_COMPANY_VALUATION_OVER_HIST_PERCENTILE_PB"
2258 }
2259 Self::CompanyValuationOverHistPercentilePe => {
2260 "FEATURED_COMPANY_VALUATION_OVER_HIST_PERCENTILE_PE"
2261 }
2262 Self::CompanyValuationOverHistPercentilePs => {
2263 "FEATURED_COMPANY_VALUATION_OVER_HIST_PERCENTILE_PS"
2264 }
2265 Self::CompanyValuationIndustryRankPb => {
2266 "FEATURED_COMPANY_VALUATION_INDUSTRY_RANK_PB"
2267 }
2268 Self::CompanyValuetionIndustryRankPe => {
2269 "FEATURED_COMPANY_VALUETION_INDUSTRY_RANK_PE"
2270 }
2271 Self::CompanyValuetionIndustryRankPs => {
2272 "FEATURED_COMPANY_VALUETION_INDUSTRY_RANK_PS"
2273 }
2274 Self::CompanyValuationMarketRankPb => {
2275 "FEATURED_COMPANY_VALUATION_MARKET_RANK_PB"
2276 }
2277 Self::CompanyValuationMarketRankPe => {
2278 "FEATURED_COMPANY_VALUATION_MARKET_RANK_PE"
2279 }
2280 Self::CompanyValuationMarketRankPs => {
2281 "FEATURED_COMPANY_VALUATION_MARKET_RANK_PS"
2282 }
2283 }
2284 }
2285 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2287 match value {
2288 "FEATURED_CHIPS_PROFIT_RATIO" => Some(Self::ChipsProfitRatio),
2289 "FEATURED_CHIPS_INTERVAL_COINCIDENCE" => Some(Self::ChipsIntervalCoincidence),
2290 "FEATURED_INDICATOR_ANALYSIS_STATUS" => Some(Self::IndicatorAnalysisStatus),
2291 "FEATURED_PUBLIC_OPINION_INDEX_STATUS" => {
2292 Some(Self::PublicOpinionIndexStatus)
2293 }
2294 "FEATURED_ANALYSIS_LEVEL_STATUS" => Some(Self::AnalysisLevelStatus),
2295 "FEATURED_COMPANY_VALUATION_OVER_HIST_PERCENTILE_PB" => {
2296 Some(Self::CompanyValuationOverHistPercentilePb)
2297 }
2298 "FEATURED_COMPANY_VALUATION_OVER_HIST_PERCENTILE_PE" => {
2299 Some(Self::CompanyValuationOverHistPercentilePe)
2300 }
2301 "FEATURED_COMPANY_VALUATION_OVER_HIST_PERCENTILE_PS" => {
2302 Some(Self::CompanyValuationOverHistPercentilePs)
2303 }
2304 "FEATURED_COMPANY_VALUATION_INDUSTRY_RANK_PB" => {
2305 Some(Self::CompanyValuationIndustryRankPb)
2306 }
2307 "FEATURED_COMPANY_VALUETION_INDUSTRY_RANK_PE" => {
2308 Some(Self::CompanyValuetionIndustryRankPe)
2309 }
2310 "FEATURED_COMPANY_VALUETION_INDUSTRY_RANK_PS" => {
2311 Some(Self::CompanyValuetionIndustryRankPs)
2312 }
2313 "FEATURED_COMPANY_VALUATION_MARKET_RANK_PB" => {
2314 Some(Self::CompanyValuationMarketRankPb)
2315 }
2316 "FEATURED_COMPANY_VALUATION_MARKET_RANK_PE" => {
2317 Some(Self::CompanyValuationMarketRankPe)
2318 }
2319 "FEATURED_COMPANY_VALUATION_MARKET_RANK_PS" => {
2320 Some(Self::CompanyValuationMarketRankPs)
2321 }
2322 _ => None,
2323 }
2324 }
2325}
2326#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2328#[repr(i32)]
2329pub enum Broker {
2330 ConcentratedDistributionHoldings = 6101,
2332 HoldingsChange = 6102,
2334 Num = 6103,
2336 Rank = 6104,
2338 HoldingsNum = 6105,
2340 CentralTradeHoldingsRatio = 6106,
2342 CentralTradeHoldingsChange = 6107,
2344}
2345impl Broker {
2346 pub fn as_str_name(&self) -> &'static str {
2351 match self {
2352 Self::ConcentratedDistributionHoldings => {
2353 "BROKER_CONCENTRATED_DISTRIBUTION_HOLDINGS"
2354 }
2355 Self::HoldingsChange => "BROKER_HOLDINGS_CHANGE",
2356 Self::Num => "BROKER_NUM",
2357 Self::Rank => "BROKER_RANK",
2358 Self::HoldingsNum => "BROKER_HOLDINGS_NUM",
2359 Self::CentralTradeHoldingsRatio => "BROKER_CENTRAL_TRADE_HOLDINGS_RATIO",
2360 Self::CentralTradeHoldingsChange => "BROKER_CENTRAL_TRADE_HOLDINGS_CHANGE",
2361 }
2362 }
2363 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2365 match value {
2366 "BROKER_CONCENTRATED_DISTRIBUTION_HOLDINGS" => {
2367 Some(Self::ConcentratedDistributionHoldings)
2368 }
2369 "BROKER_HOLDINGS_CHANGE" => Some(Self::HoldingsChange),
2370 "BROKER_NUM" => Some(Self::Num),
2371 "BROKER_RANK" => Some(Self::Rank),
2372 "BROKER_HOLDINGS_NUM" => Some(Self::HoldingsNum),
2373 "BROKER_CENTRAL_TRADE_HOLDINGS_RATIO" => {
2374 Some(Self::CentralTradeHoldingsRatio)
2375 }
2376 "BROKER_CENTRAL_TRADE_HOLDINGS_CHANGE" => {
2377 Some(Self::CentralTradeHoldingsChange)
2378 }
2379 _ => None,
2380 }
2381 }
2382}
2383#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2385#[repr(i32)]
2386pub enum KlinePattern {
2387 TripleBottom = 7101,
2389 HornBottom = 7102,
2391 DoubleBottom = 7103,
2393 HeadAndSholdersBottom = 7104,
2395 BullishSymmetricalTriangle = 7105,
2397 BullishFlag = 7106,
2399 BullishContinuousDiamond = 7107,
2401 ArcBottom = 7108,
2403 BullishSustainedWedge = 7109,
2405 BullishContinuousTriangle = 7110,
2407 HornTop = 7201,
2409 BearishSustainedWedge = 7202,
2411 BearishContinuousTriangle = 7203,
2413 DoubleTop = 7204,
2415 BearishSymmetricalTriangle = 7205,
2417 BearishFlag = 7206,
2419 HeadAndShouldersTop = 7207,
2421 TripleTop = 7208,
2423 BearishContinuousDiamond = 7209,
2425 ArcTop = 7210,
2427}
2428impl KlinePattern {
2429 pub fn as_str_name(&self) -> &'static str {
2434 match self {
2435 Self::TripleBottom => "KLINE_PATTERN_TRIPLE_BOTTOM",
2436 Self::HornBottom => "KLINE_PATTERN_HORN_BOTTOM",
2437 Self::DoubleBottom => "KLINE_PATTERN_DOUBLE_BOTTOM",
2438 Self::HeadAndSholdersBottom => "KLINE_PATTERN_HEAD_AND_SHOLDERS_BOTTOM",
2439 Self::BullishSymmetricalTriangle => {
2440 "KLINE_PATTERN_BULLISH_SYMMETRICAL_TRIANGLE"
2441 }
2442 Self::BullishFlag => "KLINE_PATTERN_BULLISH_FLAG",
2443 Self::BullishContinuousDiamond => "KLINE_PATTERN_BULLISH_CONTINUOUS_DIAMOND",
2444 Self::ArcBottom => "KLINE_PATTERN_ARC_BOTTOM",
2445 Self::BullishSustainedWedge => "KLINE_PATTERN_BULLISH_SUSTAINED_WEDGE",
2446 Self::BullishContinuousTriangle => {
2447 "KLINE_PATTERN_BULLISH_CONTINUOUS_TRIANGLE"
2448 }
2449 Self::HornTop => "KLINE_PATTERN_HORN_TOP",
2450 Self::BearishSustainedWedge => "KLINE_PATTERN_BEARISH_SUSTAINED_WEDGE",
2451 Self::BearishContinuousTriangle => {
2452 "KLINE_PATTERN_BEARISH_CONTINUOUS_TRIANGLE"
2453 }
2454 Self::DoubleTop => "KLINE_PATTERN_DOUBLE_TOP",
2455 Self::BearishSymmetricalTriangle => {
2456 "KLINE_PATTERN_BEARISH_SYMMETRICAL_TRIANGLE"
2457 }
2458 Self::BearishFlag => "KLINE_PATTERN_BEARISH_FLAG",
2459 Self::HeadAndShouldersTop => "KLINE_PATTERN_HEAD_AND_SHOULDERS_TOP",
2460 Self::TripleTop => "KLINE_PATTERN_TRIPLE_TOP",
2461 Self::BearishContinuousDiamond => "KLINE_PATTERN_BEARISH_CONTINUOUS_DIAMOND",
2462 Self::ArcTop => "KLINE_PATTERN_ARC_TOP",
2463 }
2464 }
2465 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2467 match value {
2468 "KLINE_PATTERN_TRIPLE_BOTTOM" => Some(Self::TripleBottom),
2469 "KLINE_PATTERN_HORN_BOTTOM" => Some(Self::HornBottom),
2470 "KLINE_PATTERN_DOUBLE_BOTTOM" => Some(Self::DoubleBottom),
2471 "KLINE_PATTERN_HEAD_AND_SHOLDERS_BOTTOM" => Some(Self::HeadAndSholdersBottom),
2472 "KLINE_PATTERN_BULLISH_SYMMETRICAL_TRIANGLE" => {
2473 Some(Self::BullishSymmetricalTriangle)
2474 }
2475 "KLINE_PATTERN_BULLISH_FLAG" => Some(Self::BullishFlag),
2476 "KLINE_PATTERN_BULLISH_CONTINUOUS_DIAMOND" => {
2477 Some(Self::BullishContinuousDiamond)
2478 }
2479 "KLINE_PATTERN_ARC_BOTTOM" => Some(Self::ArcBottom),
2480 "KLINE_PATTERN_BULLISH_SUSTAINED_WEDGE" => Some(Self::BullishSustainedWedge),
2481 "KLINE_PATTERN_BULLISH_CONTINUOUS_TRIANGLE" => {
2482 Some(Self::BullishContinuousTriangle)
2483 }
2484 "KLINE_PATTERN_HORN_TOP" => Some(Self::HornTop),
2485 "KLINE_PATTERN_BEARISH_SUSTAINED_WEDGE" => Some(Self::BearishSustainedWedge),
2486 "KLINE_PATTERN_BEARISH_CONTINUOUS_TRIANGLE" => {
2487 Some(Self::BearishContinuousTriangle)
2488 }
2489 "KLINE_PATTERN_DOUBLE_TOP" => Some(Self::DoubleTop),
2490 "KLINE_PATTERN_BEARISH_SYMMETRICAL_TRIANGLE" => {
2491 Some(Self::BearishSymmetricalTriangle)
2492 }
2493 "KLINE_PATTERN_BEARISH_FLAG" => Some(Self::BearishFlag),
2494 "KLINE_PATTERN_HEAD_AND_SHOULDERS_TOP" => Some(Self::HeadAndShouldersTop),
2495 "KLINE_PATTERN_TRIPLE_TOP" => Some(Self::TripleTop),
2496 "KLINE_PATTERN_BEARISH_CONTINUOUS_DIAMOND" => {
2497 Some(Self::BearishContinuousDiamond)
2498 }
2499 "KLINE_PATTERN_ARC_TOP" => Some(Self::ArcTop),
2500 _ => None,
2501 }
2502 }
2503}
2504#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2505#[repr(i32)]
2506pub enum Position {
2507 Unknown = 0,
2509 Over = 1,
2511 Below = 2,
2513 CrossUp = 3,
2515 CrossDown = 4,
2517}
2518impl Position {
2519 pub fn as_str_name(&self) -> &'static str {
2524 match self {
2525 Self::Unknown => "POSITION_UNKNOWN",
2526 Self::Over => "POSITION_OVER",
2527 Self::Below => "POSITION_BELOW",
2528 Self::CrossUp => "POSITION_CROSS_UP",
2529 Self::CrossDown => "POSITION_CROSS_DOWN",
2530 }
2531 }
2532 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2534 match value {
2535 "POSITION_UNKNOWN" => Some(Self::Unknown),
2536 "POSITION_OVER" => Some(Self::Over),
2537 "POSITION_BELOW" => Some(Self::Below),
2538 "POSITION_CROSS_UP" => Some(Self::CrossUp),
2539 "POSITION_CROSS_DOWN" => Some(Self::CrossDown),
2540 _ => None,
2541 }
2542 }
2543}
2544#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2546#[repr(i32)]
2547pub enum SortDirection {
2548 Ascending = 1,
2549 Descending = 2,
2550}
2551impl SortDirection {
2552 pub fn as_str_name(&self) -> &'static str {
2557 match self {
2558 Self::Ascending => "SORT_DIRECTION_ASCENDING",
2559 Self::Descending => "SORT_DIRECTION_DESCENDING",
2560 }
2561 }
2562 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2564 match value {
2565 "SORT_DIRECTION_ASCENDING" => Some(Self::Ascending),
2566 "SORT_DIRECTION_DESCENDING" => Some(Self::Descending),
2567 _ => None,
2568 }
2569 }
2570}