Browse Source

差价达到open_market,直接taker进去!

skyfffire 11 tháng trước cách đây
mục cha
commit
0c9279475d
2 tập tin đã thay đổi với 15 bổ sung2 xóa
  1. 3 0
      global/src/params.rs
  2. 12 2
      strategy/src/predictor.rs

+ 3 - 0
global/src/params.rs

@@ -24,6 +24,8 @@ pub struct Params {
     pub pair: String,
     // 开仓
     pub open: Decimal,
+    // 开仓
+    pub open_market: Decimal,
     // 平仓
     pub close: Decimal,
     // 杠杆大小
@@ -85,6 +87,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(),
+            open_market: Decimal::try_from(json_value["open_market"].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(),

+ 12 - 2
strategy/src/predictor.rs

@@ -457,9 +457,19 @@ impl Predictor {
         } else if is_close_short {
             self.bid_delta = self.mid_price * self.params.close;
         } else if is_open_long {
-            self.bid_delta = dec!(0);
+            let is_open_long_market = (self.fair_price - self.mid_price) / self.mid_price > self.params.open_market;
+            self.bid_delta = if is_open_long_market {
+                dec!(-1)
+            } else {
+                dec!(0)
+            };
         } else if is_open_short {
-            self.ask_delta = dec!(0);
+            let is_open_short_market = (self.mid_price - self.fair_price) / self.mid_price > self.params.open_market;
+            self.ask_delta = if is_open_short_market {
+                dec!(-1)
+            } else {
+                dec!(0)
+            }
         }
     }