瀏覽代碼

实验quant层

skyffire 1 年之前
父節點
當前提交
6d6f641992
共有 4 個文件被更改,包括 12 次插入4 次删除
  1. 1 1
      exchanges/src/socket_tool.rs
  2. 8 0
      global/src/trace_stack.rs
  3. 1 3
      standard/src/gate_swap.rs
  4. 2 0
      strategy/src/quant.rs

+ 1 - 1
exchanges/src/socket_tool.rs

@@ -13,7 +13,7 @@ use tokio::net::TcpStream;
 use tokio::sync::Mutex;
 use tokio_tungstenite::{connect_async, MaybeTlsStream, WebSocketStream};
 use tokio_tungstenite::tungstenite::{Error, Message};
-use tracing::{info, trace};
+use tracing::{trace};
 
 use crate::proxy;
 use crate::proxy::{ProxyEnum, ProxyResponseEnum};

+ 8 - 0
global/src/trace_stack.rs

@@ -101,6 +101,10 @@ impl fmt::Display for TraceStack {
             msg.push_str(format!("本地总耗时{}微秒  ", self.before_send - self.after_network).as_str());
         }
 
+        if self.after_network != 0 && self.after_strategy != 0 {
+            msg.push_str(format!("直到quant{}微秒  ", self.after_strategy - self.after_network).as_str());
+        }
+
         if self.before_network != 0 && self.after_network != 0 {
             msg.push_str(format!("数据生成+到达rust耗时{}毫秒  ", (self.after_network - self.before_network).to_f64().unwrap() / 1000.0).as_str());
         }
@@ -113,6 +117,10 @@ impl fmt::Display for TraceStack {
             msg.push_str(format!("数据格式化耗时{}微秒  ", self.after_format - self.before_format).as_str());
         }
 
+        if self.after_quant != 0 && self.before_quant != 0 {
+            msg.push_str(format!("quant执行耗时{}微秒  ", self.after_quant - self.before_quant).as_str());
+        }
+
         if self.after_strategy != 0 && self.before_strategy != 0 {
             msg.push_str(format!("计算层执行耗时{}微秒  ", self.after_strategy - self.before_strategy).as_str());
         }

+ 1 - 3
standard/src/gate_swap.rs

@@ -8,7 +8,7 @@ use rust_decimal::prelude::{FromPrimitive, ToPrimitive};
 use serde_json::json;
 use futures::stream::FuturesUnordered;
 use futures::{TryStreamExt};
-use tracing::{error, debug, trace, info};
+use tracing::{error, debug, trace};
 use crate::{Platform, ExchangeEnum, Account, Position, Ticker, Market, Order, OrderCommand, PositionModeEnum};
 use exchanges::gate_swap_rest::GateSwapRest;
 use global::trace_stack::TraceStack;
@@ -587,8 +587,6 @@ impl Platform for GateSwap {
                         // 记录此订单完成时间
                         ts.on_after_send();
 
-                        info!("{}", ts.to_string());
-
                         result.trace_stack = ts;
 
                         result_sd.send(result).await.unwrap();

+ 2 - 0
strategy/src/quant.rs

@@ -662,6 +662,7 @@ impl Quant {
             if self.mode_signal == 0 && self.ready == 1 && flag == 1 {
                 // 更新交易数据
                 self.update_trade_msg();
+                trace_stack.on_after_quant();
                 // 触发事件撤单逻辑
                 // 更新策略时间
                 self.strategy.local_time = Utc::now().timestamp_millis();
@@ -670,6 +671,7 @@ impl Quant {
                 trace_stack.on_before_strategy();
                 let orders = self.strategy.on_time(&self.trade_msg);
                 trace_stack.on_after_strategy();
+                info!("{}", trace_stack.to_string());
                 if orders.is_not_empty() {
                     // debug!("触发onTick");
                     self._update_local_orders(&orders);