skyffire преди 1 година
родител
ревизия
b8194b57e1
променени са 4 файла, в които са добавени 16 реда и са изтрити 2 реда
  1. 1 1
      Cargo.toml
  2. 1 1
      exchanges/src/socket_tool.rs
  3. 3 0
      global/src/params.rs
  4. 11 0
      strategy/src/core.rs

+ 1 - 1
Cargo.toml

@@ -1,6 +1,6 @@
 [package]
 name = "as-rust"
-version = "3.2.4"
+version = "3.4.0"
 edition = "2021"
 
 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

+ 1 - 1
exchanges/src/socket_tool.rs

@@ -235,7 +235,7 @@ impl AbstractWsMode {
                     }
                 }
             ) {
-                Ok(o) => {
+                Ok(_) => {
                     trace!("发送指令-心跳:{:?}",h_type);
                 }
                 Err(k) => {

+ 3 - 0
global/src/params.rs

@@ -24,6 +24,8 @@ pub struct Params {
     pub pair: String,
     // 开仓
     pub open: Decimal,
+    // 低速率开仓距离
+    pub low_speed_open: Decimal,
     // 平仓
     pub close: Decimal,
     // 杠杆大小
@@ -81,6 +83,7 @@ impl Params {
             exchange: json_value["exchange"].as_str().unwrap().to_string(),
             pair: json_value["pair"].as_str().unwrap().to_string(),
             open: Decimal::try_from(json_value["open"].as_f64().unwrap_or_default()).unwrap(),
+            low_speed_open: Decimal::try_from(json_value["low_open"].as_f64().unwrap_or_default()).unwrap(),
             close: Decimal::try_from(json_value["close"].as_f64().unwrap_or_default()).unwrap(),
             lever_rate: Decimal::try_from(json_value["lever_rate"].as_f64().unwrap_or_default()).unwrap(),
             hold_coin: Decimal::try_from(json_value["hold_coin"].as_f64().unwrap_or_default()).unwrap(),

+ 11 - 0
strategy/src/core.rs

@@ -115,6 +115,12 @@ pub struct Core {
     pub agg_market: Vec<Decimal>,
     pub ref_price: Vec<Vec<Decimal>>,
     pub predict: Decimal,
+
+    // 低速更新的相关参数
+    pub low_speed_time_range: Decimal,                      // 低速判断应该回溯多少时间范围内的数据(分钟)
+    pub low_speed_rate: Decimal,                            // 低速界限,0.5代表最大值的50%
+    pub low_speed_trade_time_vec: Vec<Decimal>,             // 低速的交易时间数组,长度就是时间范围内有多少条交易
+    pub low_speed_max_trades_count: usize,                  // 从开机到现在的一定时间范围内的最大交易次数
 }
 
 impl Core {
@@ -251,6 +257,11 @@ impl Core {
             agg_market: vec![],
             ref_price: vec![],
             predict: Default::default(),
+            // 低速率改进的相关参数
+            low_speed_time_range: Decimal::ONE,
+            low_speed_rate: dec!(0.168),
+            low_speed_trade_time_vec: vec![],
+            low_speed_max_trades_count: 0,
         };
         for i in 0..=params.ref_exchange.len() - 1 {
             // 拼接不会消耗原字符串