فهرست منبع

清仓-清空所有币对持仓

JiahengHe 2 سال پیش
والد
کامیت
536d7820c8
1فایلهای تغییر یافته به همراه15 افزوده شده و 3 حذف شده
  1. 15 3
      strategy/src/quant.rs

+ 15 - 3
strategy/src/quant.rs

@@ -989,23 +989,34 @@ impl Quant {
                         continue;
                     }
 
-                    match self.platform_rest.get_ticker().await {
+                    match self.platform_rest.get_ticker_symbol(position.symbol.clone()).await {
                         Ok(ticker)=>{
                             let ap = ticker.sell;
                             let bp = ticker.buy;
                             let mp = ( ap + bp ) / Decimal::TWO;
                             let price;
                             let side;
+                            let market_info;
+                            // 获取market
+                            match self.platform_rest.get_market_symbol(position.symbol.clone()).await {
+                                Ok(market) => {
+                                    market_info = market;
+                                },
+                                Err(err) => {
+                                    error!("获取当前market异常: {}", err);
+                                    break;
+                                }
+                            }
                             info!(?position);
                             match position.position_mode {
                                 PositionModeEnum::Long => {
                                     // pd
-                                    price = (mp*dec!(0.999)/self.market.tick_size).floor()*self.market.tick_size;
+                                    price = (mp*dec!(0.999)/market_info.tick_size).floor()*market_info.tick_size;
                                     side = "pd";
                                 },
                                 PositionModeEnum::Short => {
                                     // pk
-                                    price = (mp*dec!(1.001)/self.market.tick_size).floor()*self.market.tick_size;
+                                    price = (mp*dec!(1.001)/market_info.tick_size).floor()*market_info.tick_size;
                                     side = "pk";
                                 }
                                 _ => {
@@ -1014,6 +1025,7 @@ impl Quant {
                                     break;
                                 }
                             }
+                            // 发起清仓订单
                             match self.platform_rest.take_order_symbol(position.symbol, "t-123", side, price, position.amount.abs()).await {
                                 Ok(order)=>{
                                     info!("清仓下单,{:?}", order);