Explorar el Código

优化预估利润算法

skyffire hace 1 año
padre
commit
23743f5124
Se han modificado 1 ficheros con 5 adiciones y 2 borrados
  1. 5 2
      src/msv.rs

+ 5 - 2
src/msv.rs

@@ -145,7 +145,8 @@ pub fn generate_msv_by_trades(mut trades: Vec<Trade>, mills_back: Decimal, simpl
         }
 
         // 获取到range毫秒以后的预定价格,计算回去的幅度
-        let mut future_ref_price = ref_price;
+        let mut future_ref_price_sum = trade.price;
+        let mut future_ref_count = Decimal::ONE;
         let mut future_range_index = index;
         loop {
             // 下标合法性判断
@@ -160,10 +161,12 @@ pub fn generate_msv_by_trades(mut trades: Vec<Trade>, mills_back: Decimal, simpl
             if range_time > mills_back {
                 break;
             }
-            future_ref_price = future_ref_price * GAMMA + flag_trade.price * (Decimal::ONE - GAMMA);
+            future_ref_price_sum += flag_trade.price;
 
             future_range_index += 1;
+            future_ref_count += Decimal::ONE;
         }
+        let future_ref_price = future_ref_price_sum / future_ref_count;
 
         // 计算过去至多100条数据的sigma值 sigma^2 = (1 / (tn-t0))*sum((S(tk) - S(tk-1)) ^ 2)
         let mut sigma_index = index - 1;