Browse Source

分数计算公式调整1。

skyffire 1 year ago
parent
commit
8159770b52
1 changed files with 4 additions and 4 deletions
  1. 4 4
      src/rank.rs

+ 4 - 4
src/rank.rs

@@ -25,7 +25,7 @@ pub struct Rank {
 const TWENTY: Decimal = dec!(20);
 const SIXTY: Decimal = dec!(60);
 const TWO_HUNDRED: Decimal = dec!(200);
-const TEN_THOUSAND: Decimal = dec!(10000);
+// const TEN_THOUSAND: Decimal = dec!(10000);
 
 // 根据最终的msv计算排行榜
 pub fn generate_rank_by_indicator_map(indicator_map: &MutexGuard<HashMap<String, Indicators>>) -> Value {
@@ -81,18 +81,18 @@ pub fn generate_rank_by_indicator_map(indicator_map: &MutexGuard<HashMap<String,
 
         // msv_score计算规则
         let mut msv_score = if msv_abs_total > Decimal::ZERO {
-            effective_count * (epr_total / msv_abs_total) * SIXTY * msv_abs_avg
+            effective_count * (epr_total / msv_abs_total) * SIXTY * msv_abs_max
         } else {
             Decimal::ZERO
         };
         msv_score.rescale(2);
 
         // liquidity_score
-        let mut liquidity_score = (liquidity_avg / Decimal::ONE_THOUSAND) * TWENTY;
+        let mut liquidity_score = (liquidity_avg / Decimal::ONE_THOUSAND) * TWENTY * msv_abs_max;
         liquidity_score.rescale(2);
 
         // frequency_score计算规则
-        let mut frequency_score = (effective_count / Decimal::ONE_HUNDRED) * TWENTY;
+        let mut frequency_score = (effective_count / Decimal::ONE_HUNDRED) * TWENTY * msv_abs_max;
         frequency_score.rescale(2);
 
         let score = msv_score + liquidity_score + frequency_score;