Ver Fonte

trt指标更上去看看。

skyffire há 1 ano atrás
pai
commit
dc7e274312
1 ficheiros alterados com 13 adições e 3 exclusões
  1. 13 3
      src/msv.rs

+ 13 - 3
src/msv.rs

@@ -101,6 +101,7 @@ pub async fn generate_msv(query_value: Value) -> HttpResponse {
 pub fn generate_msv_by_trades(mut trades: Vec<Trade>, mills_back: Decimal, trt_mills_back: Decimal, start_time: i64, end_time: i64) -> Value {
     let mut msv_data: Vec<Vec<Decimal>> = vec![];
     let mut tr_data: Vec<Vec<Decimal>> = vec![];
+    let mut max_trt_count = Decimal::ZERO;
 
     const GAMMA: Decimal = dec!(0.5);
 
@@ -174,7 +175,7 @@ pub fn generate_msv_by_trades(mut trades: Vec<Trade>, mills_back: Decimal, trt_m
             // 生成速率曲线
             // 计算区间的预定价格
             // let mut trades_count = 0;
-            let mut high_rate = Decimal::ZERO;
+            let mut trt_count = Decimal::ZERO;
             let mut trt_range_index = index;
             loop {
                 // 第0个就不用计算
@@ -192,12 +193,21 @@ pub fn generate_msv_by_trades(mut trades: Vec<Trade>, mills_back: Decimal, trt_m
                 // 判断是否满足高速率条件
                 // trades_count += 1;
                 // if trades_count >= trt {
-                high_rate += Decimal::ONE;
+                trt_count += Decimal::ONE;
                 // }
 
                 trt_range_index -= 1;
             }
-            tr_data.push(vec![trade.time, high_rate]);
+
+            if trt_count > max_trt_count / dec!(0.732) {
+                tr_data.push(vec![trade.time, Decimal::ONE]);
+
+                if trt_count > max_trt_count {
+                    max_trt_count = trt_count;
+                }
+            } else {
+                tr_data.push(vec![trade.time, Decimal::ZERO]);
+            }
         }
     }