skyffire 1 жил өмнө
parent
commit
d2cd146809
1 өөрчлөгдсөн 5 нэмэгдсэн , 1 устгасан
  1. 5 1
      src/symbol_filter.rs

+ 5 - 1
src/symbol_filter.rs

@@ -76,7 +76,11 @@ fn calc_volatility_div_price_diff(records: Value) -> Decimal {
         let volume = Decimal::from_str(record["volume"].as_str().unwrap().to_string().as_str()).unwrap();
         let mid = (record_high + record_low) / Decimal::TWO;
 
-        volatility += ((volume * mid).ln() * Decimal::ONE_HUNDRED * (record_high - record_low) / mid).ln();
+        volatility += if volume * mid == Decimal::ZERO {
+             Decimal::ZERO
+        } else {
+            ((volume * mid).ln() * Decimal::ONE_HUNDRED * (record_high - record_low) / mid).ln()
+        }
     }
 
     let mut vdpd = volatility;