From 74e5a0efcda0eff0f23037c3439ef5405bafe922 Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Sun, 08 Mar 2026 17:41:26 +0800
Subject: [PATCH] 1
---
trading-order-bean/src/main/java/com/yami/trading/bean/contract/domain/ContractOrder.java | 59 +++++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 41 insertions(+), 18 deletions(-)
diff --git a/trading-order-bean/src/main/java/com/yami/trading/bean/contract/domain/ContractOrder.java b/trading-order-bean/src/main/java/com/yami/trading/bean/contract/domain/ContractOrder.java
index c7a844f..0121f5b 100644
--- a/trading-order-bean/src/main/java/com/yami/trading/bean/contract/domain/ContractOrder.java
+++ b/trading-order-bean/src/main/java/com/yami/trading/bean/contract/domain/ContractOrder.java
@@ -68,6 +68,11 @@
* 保证金
*/
private BigDecimal depositOpen ;
+
+ /**
+ * 追加保证金
+ */
+ private BigDecimal addDepositOpen = BigDecimal.ZERO;
/**
* 收益
*/
@@ -133,6 +138,17 @@
private String orderPriceType;
+ /**
+ * 仓位类型:0:逐仓 1:全仓
+ */
+ private Integer locationType = 1;
+
+
+ /**
+ * 盈亏比
+ */
+ private Double profitLossRatio;
+
public BigDecimal getAmountClose() {
if(amountClose == null){
amountClose = BigDecimal.ZERO;
@@ -178,25 +194,32 @@
}
public BigDecimal getChangeRatio() {
- if(amountClose == null){
- amountClose = BigDecimal.ZERO;
- }
- if(profit == null){
- profit = BigDecimal.ZERO;
- }
- if(deposit == null){
- deposit = BigDecimal.ZERO;
- }
- if(depositOpen == null){
- depositOpen = BigDecimal.ZERO;
- }
- if (STATE_SUBMITTED.equals(state)) {
- changeRatio = amountClose.add(profit).add(deposit).subtract(depositOpen).divide(depositOpen,10 , RoundingMode.HALF_UP);
- } else {
- changeRatio = amountClose.add(deposit).subtract(depositOpen).divide(depositOpen, 10 , RoundingMode.HALF_UP);
- }
+// if(amountClose == null){
+// amountClose = BigDecimal.ZERO;
+// }
+// if(profit == null){
+// profit = BigDecimal.ZERO;
+// }
+// if(deposit == null){
+// deposit = BigDecimal.ZERO;
+// }
+// if(depositOpen == null){
+// depositOpen = BigDecimal.ZERO;
+// }
+// if (STATE_SUBMITTED.equals(state)) {
+// changeRatio = amountClose.add(profit).add(deposit).subtract(depositOpen).divide(depositOpen,10 , RoundingMode.HALF_UP);
+// } else {
+// changeRatio = amountClose.add(deposit).subtract(depositOpen).divide(depositOpen, 10 , RoundingMode.HALF_UP);
+// }
+//
+// changeRatio = changeRatio.multiply(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_HALF_UP);
+ // 计算收益率,指定除法时的精度
+ BigDecimal changeRatio = profit.divide(depositOpen, 10, BigDecimal.ROUND_DOWN) // 设置精度为10位
+ .multiply(new BigDecimal("100"));
- changeRatio = changeRatio.multiply(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_HALF_UP);
+ // 保留两位小数
+ changeRatio = changeRatio.setScale(4, BigDecimal.ROUND_DOWN);
+
return changeRatio;
}
--
Gitblit v1.9.3