|
|
@@ -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) {
|
|
|
// 新增订单流主动性数据
|