Browse Source

no warning

skyffire 1 year ago
parent
commit
8bdd779187
1 changed files with 84 additions and 84 deletions
  1. 84 84
      strategy/src/avellaneda_stoikov.rs

+ 84 - 84
strategy/src/avellaneda_stoikov.rs

@@ -287,90 +287,90 @@ impl AvellanedaStoikov {
         }
     }
 
-    fn calc_flow_ratio(_prev_flow_ratio: &Decimal, min_volume: &Decimal, trades: &mut FixedTimeRangeDeque<Trade>) -> Decimal {
-        // let mut flow_in_value = Decimal::ZERO;
-        // let mut flow_out_value = Decimal::ZERO;
-        // for (index, trade_iter) in trades.deque.iter().enumerate() {
-        //     if index == 0 {
-        //         continue
-        //     }
-        //
-        //     let prev_trade_iter = trades.deque.get(index - 1).unwrap();
-        //     let trade = trade_iter;
-        //     if trade.price > prev_trade_iter.price {
-        //         flow_in_value += trade.value * (prev_trade_iter.price - trade.price).abs();
-        //         // flow_in_value += Decimal::ONE;
-        //     } else if trade.price < prev_trade_iter.price {
-        //         flow_out_value += trade.value * (prev_trade_iter.price - trade.price).abs();
-        //         // flow_out_value += Decimal::ONE;
-        //     } else {
-        //         // if trade.size > Decimal::ZERO {
-        //         //     flow_in_value += trade.value;
-        //         // } else {
-        //         //     flow_out_value += trade.value;
-        //         // }
-        //     }
-        //
-        //     // if trade_iter.size > Decimal::ZERO {
-        //     //     flow_in_value += trade_iter.value;
-        //     // } else {
-        //     //     flow_out_value += trade_iter.value;
-        //     // }
-        // }
-
-        // if self.trade_vec.deque.len() > 1 {
-        //     let prev_trade_iter = self.trade_vec.deque.get(self.trade_vec.deque.len() - 2).unwrap();
-        //     if trade.price > prev_trade_iter.price {
-        //         self.flow_in_value += trade.value;
-        //     } else if trade.price < prev_trade_iter.price {
-        //         self.flow_out_value += trade.value;
-        //     } else {
-        //         // if trade.size > Decimal::ZERO {
-        //         //     self.flow_in_value += trade.value;
-        //         // } else {
-        //         //     self.flow_out_value += trade.value;
-        //         // }
-        //     }
-        //
-        //     // if trade.size > Decimal::ZERO {
-        //     //     self.flow_in_value += trade.value;
-        //     // } else {
-        //     //     self.flow_out_value += trade.value;
-        //     // }
-        //
-        //     if self.flow_out_value + self.flow_in_value > dec!(2_000_000) {
-        //         self.flow_out_value = self.flow_out_value * dec!(0.618);
-        //         self.flow_in_value = self.flow_in_value * dec!(0.618);
-        //     }
-        // }
-        // else {
-        //     if trade.size > Decimal::ZERO {
-        //         self.flow_in_value += trade.value;
-        //     } else {
-        //         self.flow_out_value += trade.value;
-        //     }
-        // }
-
-        let mut flow_in_value = Decimal::ZERO;
-        let mut flow_out_value = Decimal::ZERO;
-        for trade_iter in trades.deque.iter() {
-            if trade_iter.size > Decimal::ZERO {
-                flow_in_value += trade_iter.value;
-            } else {
-                flow_out_value += trade_iter.value;
-            }
-        }
-
-        // 使用EMA來更新資金流,確保平滑性
-        // let a = Decimal::TWO / dec!(50);
-        if flow_out_value + flow_in_value > *min_volume {
-            // let now = (flow_in_value - flow_out_value) / (flow_out_value + flow_in_value);
-            // a * now + (Decimal::ONE - a) * prev_flow_ratio
-            (flow_in_value - flow_out_value) / (flow_out_value + flow_in_value)
-        } else {
-            Decimal::ZERO
-        }
-    }
+    // fn calc_flow_ratio(_prev_flow_ratio: &Decimal, min_volume: &Decimal, trades: &mut FixedTimeRangeDeque<Trade>) -> Decimal {
+    //     // let mut flow_in_value = Decimal::ZERO;
+    //     // let mut flow_out_value = Decimal::ZERO;
+    //     // for (index, trade_iter) in trades.deque.iter().enumerate() {
+    //     //     if index == 0 {
+    //     //         continue
+    //     //     }
+    //     //
+    //     //     let prev_trade_iter = trades.deque.get(index - 1).unwrap();
+    //     //     let trade = trade_iter;
+    //     //     if trade.price > prev_trade_iter.price {
+    //     //         flow_in_value += trade.value * (prev_trade_iter.price - trade.price).abs();
+    //     //         // flow_in_value += Decimal::ONE;
+    //     //     } else if trade.price < prev_trade_iter.price {
+    //     //         flow_out_value += trade.value * (prev_trade_iter.price - trade.price).abs();
+    //     //         // flow_out_value += Decimal::ONE;
+    //     //     } else {
+    //     //         // if trade.size > Decimal::ZERO {
+    //     //         //     flow_in_value += trade.value;
+    //     //         // } else {
+    //     //         //     flow_out_value += trade.value;
+    //     //         // }
+    //     //     }
+    //     //
+    //     //     // if trade_iter.size > Decimal::ZERO {
+    //     //     //     flow_in_value += trade_iter.value;
+    //     //     // } else {
+    //     //     //     flow_out_value += trade_iter.value;
+    //     //     // }
+    //     // }
+    //
+    //     // if self.trade_vec.deque.len() > 1 {
+    //     //     let prev_trade_iter = self.trade_vec.deque.get(self.trade_vec.deque.len() - 2).unwrap();
+    //     //     if trade.price > prev_trade_iter.price {
+    //     //         self.flow_in_value += trade.value;
+    //     //     } else if trade.price < prev_trade_iter.price {
+    //     //         self.flow_out_value += trade.value;
+    //     //     } else {
+    //     //         // if trade.size > Decimal::ZERO {
+    //     //         //     self.flow_in_value += trade.value;
+    //     //         // } else {
+    //     //         //     self.flow_out_value += trade.value;
+    //     //         // }
+    //     //     }
+    //     //
+    //     //     // if trade.size > Decimal::ZERO {
+    //     //     //     self.flow_in_value += trade.value;
+    //     //     // } else {
+    //     //     //     self.flow_out_value += trade.value;
+    //     //     // }
+    //     //
+    //     //     if self.flow_out_value + self.flow_in_value > dec!(2_000_000) {
+    //     //         self.flow_out_value = self.flow_out_value * dec!(0.618);
+    //     //         self.flow_in_value = self.flow_in_value * dec!(0.618);
+    //     //     }
+    //     // }
+    //     // else {
+    //     //     if trade.size > Decimal::ZERO {
+    //     //         self.flow_in_value += trade.value;
+    //     //     } else {
+    //     //         self.flow_out_value += trade.value;
+    //     //     }
+    //     // }
+    //
+    //     let mut flow_in_value = Decimal::ZERO;
+    //     let mut flow_out_value = Decimal::ZERO;
+    //     for trade_iter in trades.deque.iter() {
+    //         if trade_iter.size > Decimal::ZERO {
+    //             flow_in_value += trade_iter.value;
+    //         } else {
+    //             flow_out_value += trade_iter.value;
+    //         }
+    //     }
+    //
+    //     // 使用EMA來更新資金流,確保平滑性
+    //     // let a = Decimal::TWO / dec!(50);
+    //     if flow_out_value + flow_in_value > *min_volume {
+    //         // let now = (flow_in_value - flow_out_value) / (flow_out_value + flow_in_value);
+    //         // a * now + (Decimal::ONE - a) * prev_flow_ratio
+    //         (flow_in_value - flow_out_value) / (flow_out_value + flow_in_value)
+    //     } else {
+    //         Decimal::ZERO
+    //     }
+    // }
 
     fn calc_flow_ratio_2(_prev_flow_ratio: &Decimal, min_volume: &Decimal, trades: &mut FixedTimeRangeDeque<Trade>) -> Decimal {
         let mut flow_in_value = Decimal::ZERO;