소스 검색

编译可以通过了,具体逻辑等待测试

skyfffire 2 년 전
부모
커밋
27365f7c7e
1개의 변경된 파일8개의 추가작업 그리고 13개의 파일을 삭제
  1. 8 13
      strategy/src/predictor.rs

+ 8 - 13
strategy/src/predictor.rs

@@ -47,7 +47,7 @@ impl Predictor {
     }
 
     // 计算任务,python里写作processer,是个错误的单词
-    pub fn processor(mut self) {
+    pub fn processor(&mut self) {
         let last_market_info = self.market_info_list.last().unwrap();
 
         // 更新mid_price
@@ -68,11 +68,11 @@ impl Predictor {
         self.ref_mid_price_per_exchange_per_frame.push(ref_mid_price_per_exchange);
 
         // 价差更新
-        self.update_avg_spread()
+        (*self).update_avg_spread()
     }
 
     // 更新平均价差,_update_avg_spread
-    fn update_avg_spread(mut self) {
+    fn update_avg_spread(&mut self) {
         let last_ref_mid_price_per_exchange = self.ref_mid_price_per_exchange_per_frame.last().unwrap();
         let mid_price_last = self.mid_price_list.last().unwrap();
 
@@ -95,7 +95,7 @@ impl Predictor {
     }
 
     // 长度限定
-    fn check_length(mut self) {
+    fn check_length(&mut self) {
         // 市场汇总信息长度限定
         if self.market_info_list.len() > self.data_length_max {
             self.market_info_list.remove(0);
@@ -111,12 +111,7 @@ impl Predictor {
     }
 
     // 市场信息处理器,也是python里的onTime方法
-    fn market_info_handler(mut self, new_market_info: Vec<Decimal>) {
-        // 异常行情信息不处理
-        if new_market_info == None {
-            return;
-        }
-
+    fn market_info_handler(&mut self, new_market_info: Vec<Decimal>) {
         // 空数据不处理
         if new_market_info.len() == 0 {
             return;
@@ -124,14 +119,14 @@ impl Predictor {
 
         self.loop_count += 1;
         self.market_info_list.push(new_market_info);
-        self.processor();
-        self.check_length();
+        (*self).processor();
+        (*self).check_length();
     }
 
     // 获取预定价格, 也就是python的Get_ref函数
     fn get_ref_price(mut self, ref_ticker_map: BTreeMap<String, Ticker>) -> Vec<Vec<Decimal>> {
         let mut ref_price_list = vec![vec![]];
-        let ref_exchange_names = ref_ticker_map.keys();
+        let ref_exchange_names: Vec<_> = ref_ticker_map.keys().collect();
         for ref_index in 0..ref_exchange_names.len() {
             let ref_exchange = ref_exchange_names[ref_index];