Browse Source

分数计算公式调整12。

skyffire 1 year ago
parent
commit
6c796ffeb8
1 changed files with 6 additions and 5 deletions
  1. 6 5
      src/rank.rs

+ 6 - 5
src/rank.rs

@@ -81,23 +81,24 @@ pub fn generate_rank_by_indicator_map(indicator_map: &MutexGuard<HashMap<String,
 
         // msv_score计算规则
         let mut msv_score = if msv_abs_total > Decimal::ZERO && epr_total > Decimal::ZERO {
-            ((Decimal::ONE + epr_total / msv_abs_total) * SIXTY).ln()
+            (Decimal::ONE + epr_total / msv_abs_total).ln() * SIXTY
         } else {
             Decimal::ZERO
         };
         msv_score.rescale(2);
 
         // liquidity_score
-        let mut liquidity_score = if liquidity_avg > Decimal::ZERO {
-            ((Decimal::ONE + liquidity_avg / Decimal::ONE_THOUSAND) * TWENTY).ln()
+        let liquidity_k = liquidity_avg / Decimal::ONE_THOUSAND;
+        let mut liquidity_score = if liquidity_k > Decimal::ONE_HUNDRED {
+            TWENTY + Decimal::ONE / (Decimal::ONE + Decimal::ONE_HUNDRED - liquidity_k)
         } else {
-            Decimal::ZERO
+            Decimal::TEN * liquidity_k.sqrt().unwrap()
         };
         liquidity_score.rescale(2);
 
         // frequency_score计算规则
         let mut frequency_score = if effective_count > Decimal::ZERO {
-            ((Decimal::ONE + effective_count) * TWENTY).ln()
+            (Decimal::ONE + effective_count).ln() * TWENTY
         } else {
             Decimal::ZERO
         };