hl 1 år sedan
förälder
incheckning
11838bd3fc
2 ändrade filer med 22 tillägg och 18 borttagningar
  1. 6 4
      src/handle_ticker.rs
  2. 16 14
      src/okx_swap/okx_swap_standard.rs

+ 6 - 4
src/handle_ticker.rs

@@ -96,11 +96,11 @@ pub async fn get_binance_ticker_info(symbol: &str, start_at: &str, end_at: &str)
 }
 
 pub(crate) async fn get_okx_ticker_info(symbol: &str, start_at: &str, end_at: &str) -> Vec<Trades> {
-    // let mut start_at_d = Decimal::from_str(start_at).unwrap();
-    let  end_at_d = Decimal::from_str(end_at).unwrap();
+    let mut start_at_d = Decimal::from_str(start_at).unwrap();
+    let end_at_d = Decimal::from_str(end_at).unwrap();
 
     // let end_time = if end_at_d - start_at_d > dec!(3600) { (start_at_d + dec!(3600)).to_string() } else { end_at_d.to_string() };
-    // start_at_d = if start_at != "" { format!("{}{}", start_at, "000") } else { "".to_string() }.parse().unwrap();
+    let start_at_d_str = if start_at != "" { format!("{}{}", start_at_d.to_string(), "000") } else { "".to_string() };
     let end_at_d_str = if end_at != "" { format!("{}{}", end_at_d.to_string(), "000") } else { "".to_string() };
 
 
@@ -145,7 +145,9 @@ pub(crate) async fn get_okx_ticker_info(symbol: &str, start_at: &str, end_at: &s
     }
 
     let mut set = std::collections::HashSet::new();
-    list_array.clone().into_iter().filter(|e| set.insert(e.clone())).collect()
+    list_array.clone().into_iter().filter(|e| {
+        e.create_time > start_at_d_str && e.create_time < end_at_d_str && set.insert(e.clone())
+    }).collect()
     //
     // list_array = list_array.iter().filter(|item| item.create_time <= end_at.to_string()).cloned().collect();
     // let mut ticker_info_list: Vec<Trades> = vec![];

+ 16 - 14
src/okx_swap/okx_swap_standard.rs

@@ -1,6 +1,7 @@
 use std::io::{Error, ErrorKind};
 
 use serde::{Deserialize, Serialize};
+use tracing::info;
 
 use crate::okx_swap::okx_swap_rest::get_history_trades;
 use crate::struct_standard::Trades;
@@ -33,26 +34,27 @@ pub(crate) async fn standard_history_candles(symbol: &str, start_at: &str, end_a
 
         let result = if json_value.get("code").is_some() && json_value["code"] == "0" {
             let data = json_value.get("data").unwrap();
-            // info!("data:{:?}",data.to_string());
+
+            // info!("data:{:?}",data.to_string().as_str());
 
             let ticker_list: Vec<SwapTrades> = serde_json::from_str(data.to_string().as_str()).unwrap();
             ticker_list.iter().map(|item| {
+                let side = item.side.to_string();
+                let size_str = if item.side.as_str() == "sell" {
+                    format!("-{}", item.sz.clone())
+                } else if item.side.as_str() == "buy" {
+                    format!("{}", item.sz.clone())
+                } else {
+                    format!("??????")
+                };
+
                 Trades {
                     id: item.trade_id.to_string(),
-                    symbol:symbol.to_string(),
-                    create_time:  item.ts.to_string(),
-                    size: item.sz.clone(),
-                    price:item.px.clone(),
+                    symbol: symbol.to_string(),
+                    create_time: item.ts.to_string(),
+                    size: size_str,
+                    price: item.px.clone(),
                 }
-               // Trades {
-               //      id: "".to_string(),
-               //      start_id: item.ts.to_string(),
-               //      end_id: "".to_string(),
-               //      symbol: symbol.to_string(),
-               //      create_time: item.ts.to_string(),
-               //      size: item.sz.clone(),
-               //      price: item.px.clone(),
-               //  }
             }).collect()
         } else {
             vec![]