Kaynağa Gözat

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

skyffire 10 ay önce
ebeveyn
işleme
678a6dc8bf
1 değiştirilmiş dosya ile 2 ekleme ve 1 silme
  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
         };
 
         // ==================== 波动逻辑计算 ====================