skyfffire преди 1 година
родител
ревизия
e6b58c3b80
променени са 2 файла, в които са добавени 8 реда и са изтрити 8 реда
  1. 5 5
      strategy/src/avellaneda_stoikov.rs
  2. 3 3
      strategy/src/strategy.rs

+ 5 - 5
strategy/src/avellaneda_stoikov.rs

@@ -178,9 +178,9 @@ impl AvellanedaStoikov {
         // let s_upper = (a1.price - b1.price) / mid;
         // let f_t = Decimal::ZERO;
         // let s = (s_upper + f_t) / Decimal::TWO;
-
+        //
         // let a_upper_t = dec!(0.6);
-        // let c_t = dec!(0.4);
+        // let c_t = dec!(0);
         // let theta = a_upper_t * s + c_t;
         // let fair_price = mid + theta * (i_upper * (i_upper.powd(Decimal::TWO) + Decimal::ONE)) / Decimal::TWO;
 
@@ -227,7 +227,7 @@ impl AvellanedaStoikov {
     }
 
     pub fn update_sigma_square(&mut self) {
-        self.sigma_square = self.spread_max * dec!(0.5);
+        self.sigma_square = self.spread_max * dec!(0.3);
         self.sigma_square.rescale(10);
     }
 
@@ -270,12 +270,12 @@ impl AvellanedaStoikov {
 
     pub fn update_optimal_ask_and_bid(&mut self) {
         self.optimal_ask_price = if self.ask_delta == Decimal::NEGATIVE_ONE {
-            self.ref_price
+            self.fair_price_vec[0]
         } else {
             max(self.ref_price + self.ask_delta, self.ask_price)
         };
         self.optimal_bid_price = if self.bid_delta == Decimal::NEGATIVE_ONE {
-            self.ref_price
+            self.fair_price_vec[0]
         } else {
             min(self.ref_price - self.bid_delta, self.bid_price)
         };

+ 3 - 3
strategy/src/strategy.rs

@@ -471,8 +471,8 @@ impl Strategy {
         let delta_bid = predictor.ask_delta.clone();
 
         // 开仓相关
-        let avoid_ask = min(dec!(0.001), (delta_ask / predictor.ref_price) * dec!(0.1));
-        let avoid_bid = min(dec!(0.001), (delta_bid / predictor.ref_price) * dec!(0.1));
+        let avoid_ask = min(dec!(0.001), delta_ask / predictor.ref_price);
+        let avoid_bid = min(dec!(0.001), delta_bid / predictor.ref_price);
 
         // 用于判断价格是否出界
         self.open_dist = vec![
@@ -1110,7 +1110,7 @@ impl Strategy {
         self.fix_price(predictor);
 
         self._cancel_open(&mut command, local_orders);              // 撤单命令处理
-        // self._post_open(&mut command, local_orders, predictor);     // 限价单命令处理
+        self._post_open(&mut command, local_orders, predictor);     // 限价单命令处理
         self._check_local_orders(&mut command, local_orders);       // 固定时间检查超时订单
         self._update_in_cancel(&mut command, local_orders);         // 更新撤单队列,是一个filter
         self._check_request_limit(&mut command);                    // 限制频率,移除不合规则之订单,是一个filter