|
|
@@ -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);
|