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