Explorar o código

公平价格(仿真)以及它的ema,fix7

skyffire hai 10 meses
pai
achega
678a6dc8bf
Modificáronse 1 ficheiros con 2 adicións e 1 borrados
  1. 2 1
      src/msv.rs

+ 2 - 1
src/msv.rs

@@ -113,6 +113,7 @@ pub fn generate_msv_by_trades(mut trades: Vec<Trade>, mills_back: Decimal, simpl
     let mut fair_price_simulation_ema = Decimal::ZERO;
 
     const GAMMA: Decimal = dec!(0.5);
+    let gamma_fair: Decimal = Decimal::ONE / Decimal::from_i64(trades.len().to_i64().unwrap() / (end_time - start_time)).unwrap();
 
     // ================== 计算每个点的具体波动率以及回溯幅度 ===================
     trades.sort_by(|a, b| Decimal::from_str(a.id.as_str()).unwrap().cmp(&Decimal::from_str(b.id.as_str()).unwrap()));
@@ -201,7 +202,7 @@ pub fn generate_msv_by_trades(mut trades: Vec<Trade>, mills_back: Decimal, simpl
         fair_price_simulation_ema = if fair_price_simulation_ema.is_zero() {
             fair_price
         } else {
-            fair_price_simulation_ema * dec!(0.999967) + fair_price * dec!(0.000033)
+            fair_price_simulation_ema * (Decimal::ONE - gamma_fair) + fair_price * gamma_fair
         };
 
         // ==================== 波动逻辑计算 ====================