clear_core_libs.rs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536
  1. use std::collections::BTreeMap;
  2. use std::io::Error;
  3. use std::sync::Arc;
  4. use std::sync::atomic::{AtomicBool};
  5. use tokio::sync::{mpsc, Mutex};
  6. use tracing::{info};
  7. use global::cci::CentralControlInfo;
  8. use global::params::Params;
  9. use standard::Order;
  10. use strategy::clear_core::ClearCore;
  11. pub async fn init(params: Params,
  12. _ws_running: Arc<AtomicBool>,
  13. running: Arc<AtomicBool>,
  14. cci_arc: Arc<Mutex<CentralControlInfo>>) -> ClearCore {
  15. // 封装
  16. let mut exchange_params:BTreeMap<String, String> = BTreeMap::new();
  17. exchange_params.insert("access_key".to_string(), params.access_key.clone());
  18. exchange_params.insert("secret_key".to_string(), params.secret_key.clone());
  19. exchange_params.insert("pass_key".to_string(), params.pass_key.clone());
  20. let (order_sender, _order_receiver) = mpsc::channel::<Order>(100);
  21. let (error_sender, _error_receiver) = mpsc::channel::<Error>(100);
  22. let mut core_obj = ClearCore::new(params.exchange.clone(),
  23. params.clone(),
  24. exchange_params.clone(),
  25. order_sender.clone(),
  26. error_sender.clone(),
  27. running.clone(),
  28. cci_arc.clone()).await;
  29. info!("清仓检查程序ClearCore初始化……");
  30. core_obj.before_trade().await;
  31. return core_obj;
  32. }