|
|
@@ -76,7 +76,8 @@ pub async fn generate_msv(query_value: Value) -> HttpResponse {
|
|
|
if trades_response.code == 200 && simple_trades_response.code == 200 {
|
|
|
// 数据本地化处理
|
|
|
let trades = parse_json_to_trades(trades_response.data);
|
|
|
- let simple_depths = parse_json_to_simple_depths(simple_trades_response.data);
|
|
|
+ // let simple_depths = parse_json_to_simple_depths(simple_trades_response.data);
|
|
|
+ let simple_depths = vec![];
|
|
|
// 指标生成
|
|
|
let indicator = generate_msv_by_trades(trades, mills_back, simple_depths, start_time, end_time);
|
|
|
|
|
|
@@ -178,7 +179,7 @@ pub fn generate_msv_by_trades(mut trades: Vec<Trade>, mills_back: Decimal, simpl
|
|
|
let mut depth_index = 0;
|
|
|
let mut final_depth_data: Vec<Vec<Decimal>> = vec![];
|
|
|
|
|
|
- let mut final_spread_data: Vec<Vec<Decimal>> = vec![];
|
|
|
+ let final_spread_data: Vec<Vec<Decimal>> = vec![];
|
|
|
|
|
|
let mut index_timestamp = Decimal::from_i64(start_time).unwrap();
|
|
|
let last_timestamp = Decimal::from_i64(end_time).unwrap();
|
|
|
@@ -218,7 +219,7 @@ pub fn generate_msv_by_trades(mut trades: Vec<Trade>, mills_back: Decimal, simpl
|
|
|
// 获取时间范围内的深度数据、买一及卖一价数据
|
|
|
let mut max_size = Decimal::ZERO;
|
|
|
let mut min_size = Decimal::ONE_THOUSAND * Decimal::ONE_THOUSAND;
|
|
|
- let mut max_spread = Decimal::ZERO;
|
|
|
+ // let mut max_spread = Decimal::ZERO;
|
|
|
loop {
|
|
|
// 下标合法性判断
|
|
|
if depth_index >= simple_depths.len() {
|
|
|
@@ -233,15 +234,15 @@ pub fn generate_msv_by_trades(mut trades: Vec<Trade>, mills_back: Decimal, simpl
|
|
|
max_size = max(max_size, depth.size);
|
|
|
min_size = min(min_size, depth.size);
|
|
|
// 这一秒的差价最大值
|
|
|
- let spread = depth.a1 - depth.b1;
|
|
|
- max_spread = max(spread, max_spread);
|
|
|
+ // let spread = depth.a1 - depth.b1;
|
|
|
+ // max_spread = max(spread, max_spread);
|
|
|
// 下标步近
|
|
|
depth_index += 1;
|
|
|
}
|
|
|
|
|
|
// ====================================== 智能填充数据 ===============================================
|
|
|
// 价差
|
|
|
- final_spread_data.push(vec![index_timestamp, max_spread]);
|
|
|
+ // final_spread_data.push(vec![index_timestamp, max_spread]);
|
|
|
|
|
|
// 流动性数据叠加
|
|
|
let rst_size = if (max_size == Decimal::ZERO || min_size == Decimal::ONE_THOUSAND * Decimal::ONE_THOUSAND) && final_depth_data.len() > 0 {
|
|
|
@@ -308,19 +309,19 @@ pub fn parse_json_to_trades(trades_json: Value) -> Vec<Trade> {
|
|
|
}
|
|
|
|
|
|
// 将json转换为简易深度数据
|
|
|
-pub fn parse_json_to_simple_depths(depths_json: Value) -> Vec<SimpleDepth> {
|
|
|
- let mut rst = vec![];
|
|
|
-
|
|
|
- for depth_json in depths_json.as_array().unwrap() {
|
|
|
- let depth: SimpleDepth = SimpleDepth {
|
|
|
- time: Decimal::from_str(depth_json["time"].as_str().unwrap()).unwrap(),
|
|
|
- size: Decimal::from_str(depth_json["size"].as_str().unwrap()).unwrap(),
|
|
|
- a1: Decimal::from_str(depth_json["a1"].as_str().unwrap()).unwrap(),
|
|
|
- b1: Decimal::from_str(depth_json["b1"].as_str().unwrap()).unwrap(),
|
|
|
- };
|
|
|
-
|
|
|
- rst.insert(0, depth)
|
|
|
- }
|
|
|
-
|
|
|
- rst
|
|
|
-}
|
|
|
+// pub fn parse_json_to_simple_depths(depths_json: Value) -> Vec<SimpleDepth> {
|
|
|
+// let mut rst = vec![];
|
|
|
+//
|
|
|
+// for depth_json in depths_json.as_array().unwrap() {
|
|
|
+// let depth: SimpleDepth = SimpleDepth {
|
|
|
+// time: Decimal::from_str(depth_json["time"].as_str().unwrap()).unwrap(),
|
|
|
+// size: Decimal::from_str(depth_json["size"].as_str().unwrap()).unwrap(),
|
|
|
+// a1: Decimal::from_str(depth_json["a1"].as_str().unwrap()).unwrap(),
|
|
|
+// b1: Decimal::from_str(depth_json["b1"].as_str().unwrap()).unwrap(),
|
|
|
+// };
|
|
|
+//
|
|
|
+// rst.insert(0, depth)
|
|
|
+// }
|
|
|
+//
|
|
|
+// rst
|
|
|
+// }
|