1
zj
2024-08-02 a7bd76dfd00efc7b03999c4559cf8554e34c19cb
src/main/java/project/contract/job/ContractOrderCalculationServiceImpl.java
@@ -89,7 +89,12 @@
    * @param currentPrice 当前点位
    */
   public void settle(ContractOrder order, String profit_loss, double currentPrice) {
//      (保证金*杠杆)= 仓位总价
//      (仓位总价/开仓价格)= 数量
//      (当前价格-开仓价格)* 数量 = 盈亏
//      (盈亏/保证金)*100 = 盈亏率
      logger.info("---------进入盈亏计算----------------");
      logger.info("---------order_close_line_type----------------"+order_close_line_type);
      double mul = Arith.mul(order.getDeposit_open(), order.getLever_rate());//仓位
      double div = Arith.div(mul, order.getTrade_avg_price());//持有币的数量
      double amount = Arith.mul(div, Arith.sub(currentPrice, order.getTrade_avg_price()));
@@ -210,15 +215,19 @@
         }
      } else {
         logger.info("---------进入单个持仓----------------");
         logger.info("---------order.getProfit()----------------"+order.getProfit());
         logger.info("---------order.getDeposit()----------------"+order.getDeposit());
         logger.info("---------order_close_line----------------"+order_close_line);
         if (order.getProfit() < 0 && (Arith.div(order.getDeposit(), Math.abs(order.getProfit())) <= Arith
               .div(order_close_line, 100))) {
            logger.info("---------进入强平了----------------");
            /**
             * 低于系统默认平仓线,进行强平
             */
            this.contractOrderService.saveClose(order.getPartyId().toString(), order.getOrder_no());
            return;
         }
      }
   }