瀏覽代碼

open_activate参数的加入

skyfffire 10 月之前
父節點
當前提交
ded9f5e09d
共有 2 個文件被更改,包括 10 次插入10 次删除
  1. 3 3
      global/src/params.rs
  2. 7 7
      strategy/src/predictor.rs

+ 3 - 3
global/src/params.rs

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

+ 7 - 7
strategy/src/predictor.rs

@@ -332,11 +332,11 @@ impl Predictor {
             if !self.fair_price_focus.is_zero() {
                 let focus_rate = (self.fair_price - self.fair_price_focus) / self.fair_price_focus;
 
-                if self.fair_rate_focus > Decimal::ZERO && focus_rate < Decimal::NEGATIVE_ONE * self.params.open / Decimal::TWO {
+                if self.fair_rate_focus > Decimal::ZERO && focus_rate < Decimal::NEGATIVE_ONE * self.params.open_activate / Decimal::TWO {
                     self.fair_rate_focus = Decimal::ZERO;
                 }
 
-                if self.fair_rate_focus < Decimal::ZERO && focus_rate > self.params.open / Decimal::TWO {
+                if self.fair_rate_focus < Decimal::ZERO && focus_rate > self.params.open_activate / Decimal::TWO {
                     self.fair_rate_focus = Decimal::ZERO;
                 }
             }
@@ -344,7 +344,7 @@ impl Predictor {
             // 更新程序关注的变化幅度焦点
             if self.fair_rate_focus.is_zero() {
                 // 只有有强度的rate才有资格被称为针
-                if rate.abs() > self.params.open {
+                if rate.abs() > self.params.open_activate {
                     // 向上涨,并且fair下穿mid,视为观测阶段开始
                     if rate > Decimal::ZERO && self.spread_sma_1000 > Decimal::ZERO {
                         self.fair_rate_focus = rate;
@@ -433,7 +433,7 @@ impl Predictor {
                 //
                 // self.ask_delta = self.mid_price * close_rate * self.t_diff;
                 self.ask_delta = self.mid_price * self.params.close;
-            } else if self.spread_sma < Decimal::ZERO {
+            } else if self.mid_price > self.fair_price {
                 self.ask_delta = self.mid_price * self.params.close;
             }
 
@@ -446,7 +446,7 @@ impl Predictor {
                 //
                 // self.bid_delta = self.mid_price * close_rate * self.t_diff;
                 self.bid_delta = self.mid_price * self.params.close;
-            } else if self.spread_sma > Decimal::ZERO {
+            } else if self.mid_price < self.fair_price {
                 self.bid_delta = self.mid_price * self.params.close;
             }
 
@@ -459,7 +459,7 @@ impl Predictor {
             //     dec!(0)
             // };
 
-            self.bid_delta = dec!(0)
+            self.bid_delta = self.params.open * self.mid_price;
         } else if is_open_short {
             // let is_open_short_market = self.spread_sma_1000 - self.spread_sma < self.params.open_market * Decimal::NEGATIVE_ONE;
             // self.ask_delta = if is_open_short_market {
@@ -468,7 +468,7 @@ impl Predictor {
             //     dec!(0)
             // }
 
-            self.ask_delta = dec!(0)
+            self.ask_delta = self.params.open * self.mid_price;
         }
     }