瀏覽代碼

修改回溯时间交易量处理

gepangpang 1 年之前
父節點
當前提交
81cc4d54e1
共有 1 個文件被更改,包括 12 次插入10 次删除
  1. 12 10
      src/export/html.rs

+ 12 - 10
src/export/html.rs

@@ -4,7 +4,7 @@ use std::str::FromStr;
 use chrono::NaiveDateTime;
 use handlebars::Handlebars;
 use rust_decimal::Decimal;
-use rust_decimal::prelude::ToPrimitive;
+use rust_decimal::prelude::{FromPrimitive, ToPrimitive};
 use uuid::Uuid;
 use rust_decimal_macros::dec;
 use serde::{Deserialize, Serialize};
@@ -47,15 +47,17 @@ pub fn export_html(export_info: Vec<ExportExchangeTickerInfo>, start_at: &str, e
             let mut short_volume = Decimal::ONE;
             let mut long_volume = Decimal::ONE;
             let mut sum_volume = Decimal::ONE;
-            for recall_trades in export_exchange_ticker_info.recall_ticker_info.clone() {
-                if recall_trades.create_time <= trades.create_time {
-                    let size = Decimal::from_str(&recall_trades.size).unwrap();
-                    volume += size;
-                    sum_volume += size.abs();
-                    if size > dec!(0) { long_volume += size } else { short_volume += size.abs() }
-                } else {
-                    break;
-                }
+            let mut recall_ticker_info: Vec<Trades> = export_exchange_ticker_info.recall_ticker_info.iter().filter(|recall_trades| {
+                let recall_create_time = Decimal::from_str(&recall_trades.create_time).unwrap();
+                let create_time = Decimal::from_str(&trades.create_time).unwrap();
+                let recall_time = Decimal::from_i64(config.recall_time).unwrap();
+                recall_create_time <= create_time && create_time - recall_create_time <= recall_time
+            }).cloned().collect();
+            for recall_trades in recall_ticker_info.clone() {
+                let size = Decimal::from_str(&recall_trades.size).unwrap();
+                volume += size;
+                sum_volume += size.abs();
+                if size > dec!(0) { long_volume += size } else { short_volume += size.abs() }
             };
             if long_volume / sum_volume >= dec!(0.7) || short_volume / sum_volume >= dec!(0.7) {
                 // 新增订单流主动性数据