拆分ST与星号ST风控语义
This commit is contained in:
@@ -202,6 +202,8 @@ pub struct CandidateEligibility {
|
||||
pub date: NaiveDate,
|
||||
pub symbol: String,
|
||||
pub is_st: bool,
|
||||
#[serde(default)]
|
||||
pub is_star_st: bool,
|
||||
pub is_new_listing: bool,
|
||||
pub is_paused: bool,
|
||||
pub allow_buy: bool,
|
||||
@@ -215,6 +217,7 @@ pub struct CandidateEligibility {
|
||||
impl CandidateEligibility {
|
||||
pub fn eligible_for_selection(&self) -> bool {
|
||||
!self.is_st
|
||||
&& !self.is_star_st
|
||||
&& !self.is_new_listing
|
||||
&& !self.is_paused
|
||||
&& !self.is_kcb
|
||||
@@ -3128,15 +3131,16 @@ fn read_candidates(path: &Path) -> Result<Vec<CandidateEligibility>, DataSetErro
|
||||
date: row.parse_date(0)?,
|
||||
symbol: row.get(1)?.to_string(),
|
||||
is_st: row.parse_bool(2)?,
|
||||
is_new_listing: row.parse_bool(3)?,
|
||||
is_paused: row.parse_bool(4)?,
|
||||
allow_buy: row.parse_bool(5)?,
|
||||
allow_sell: row.parse_bool(6)?,
|
||||
is_kcb: row.parse_optional_bool(7).unwrap_or(false),
|
||||
is_one_yuan: row.parse_optional_bool(8).unwrap_or(false),
|
||||
is_star_st: row.parse_bool(3)?,
|
||||
is_new_listing: row.parse_bool(4)?,
|
||||
is_paused: row.parse_bool(5)?,
|
||||
allow_buy: row.parse_bool(6)?,
|
||||
allow_sell: row.parse_bool(7)?,
|
||||
is_kcb: row.parse_optional_bool(8).unwrap_or(false),
|
||||
is_one_yuan: row.parse_optional_bool(9).unwrap_or(false),
|
||||
risk_level_code: row
|
||||
.fields
|
||||
.get(9)
|
||||
.get(10)
|
||||
.map(String::as_str)
|
||||
.map(str::trim)
|
||||
.filter(|value| !value.is_empty())
|
||||
@@ -4003,6 +4007,7 @@ mod tests {
|
||||
date,
|
||||
symbol: symbol.to_string(),
|
||||
is_st: false,
|
||||
is_star_st: false,
|
||||
is_new_listing: false,
|
||||
is_paused: false,
|
||||
allow_buy: true,
|
||||
@@ -4093,6 +4098,7 @@ mod tests {
|
||||
date,
|
||||
symbol: symbol.to_string(),
|
||||
is_st: false,
|
||||
is_star_st: false,
|
||||
is_new_listing: false,
|
||||
is_paused: false,
|
||||
allow_buy: true,
|
||||
|
||||
Reference in New Issue
Block a user