Forráskód Böngészése

网络延迟限定值 从参数中获取

JiahengHe 1 éve
szülő
commit
8bdd84a6ed
2 módosított fájl, 10 hozzáadás és 4 törlés
  1. 4 1
      global/src/params.rs
  2. 6 3
      strategy/src/core.rs

+ 4 - 1
global/src/params.rs

@@ -54,6 +54,8 @@ pub struct Params {
     pub run_mode: i8,
     // 机器人id
     pub r_id: String,
+    // 网络延迟限制(ms)
+    pub network_delay_limit: i64,
 }
 
 impl Params {
@@ -101,7 +103,8 @@ impl Params {
             log_level: "info".to_string(),
             port: call_port,
             run_mode: 0,
-            r_id: "-1".to_string()
+            r_id: "-1".to_string(),
+            network_delay_limit: json_value["network_delay_limit"].as_i64().unwrap()
         };
         Ok(params)
     }

+ 6 - 3
strategy/src/core.rs

@@ -119,7 +119,9 @@ pub struct Core {
     // 交易交易所行情网络延迟
     pub time_distance: VecDeque<i64>,
     // 是否下开仓单
-    pub is_open: bool
+    pub is_open: bool,
+    // 网络延迟限制(ms)
+    pub network_delay_limit: i64,
 }
 
 impl Core {
@@ -258,6 +260,7 @@ impl Core {
             predict: Default::default(),
             time_distance: VecDeque::with_capacity(10),
             is_open: true,
+            network_delay_limit: params.network_delay_limit
         };
         for i in 0..=params.ref_exchange.len() - 1 {
             // 拼接不会消耗原字符串
@@ -632,8 +635,8 @@ impl Core {
 
         // 将总和转换为 f64 并计算平均值
         let avg = sum / count as i64;
-        // 延迟超过100毫秒 不下开仓单
-        if avg > 100 {
+        // 延迟超过预定毫秒 不下开仓单
+        if avg > self.network_delay_limit {
             self.is_open = false;
             info!("不允许开单");
             info!("time_distance: {:?}", self.time_distance);