diff --git a/src/main/java/com/sztzjy/forex/trading_trading/controller/MemberController.java b/src/main/java/com/sztzjy/forex/trading_trading/controller/MemberController.java index 117c5db..9da7708 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/controller/MemberController.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/controller/MemberController.java @@ -86,14 +86,15 @@ public class MemberController { } member.setPositionProfitLoss(positionProfitLoss); //设置持仓盈亏 Double initialCapital = member.getInitialCapital();//初始资金 - Double totalAssets = initialCapital+positionProfitLoss; - Double netValue = bigDecimalUtils.add(totalAssets, positionProfitLoss); - member.setTotalAssets(totalAssets); //设置总资产 - member.setNetValue(netValue); //设置净值 Double cumulativeProfitLoss = member.getCumulativeProfitLoss(); //累计盈亏 if(cumulativeProfitLoss==null){ member.setCumulativeProfitLoss(0.0); } + Double totalAssets = initialCapital+cumulativeProfitLoss; //总资产=初始资金+累计盈亏 + Double netValue = bigDecimalUtils.add(totalAssets, positionProfitLoss); + member.setTotalAssets(totalAssets); //设置总资产 + member.setNetValue(netValue); //设置净值 + Double marginUsed = member.getMarginUsed(); //获取已用保证金 if (marginUsed==null || marginUsed==0.0){ marginUsed=0.0; diff --git a/src/main/java/com/sztzjy/forex/trading_trading/controller/TakeStashController.java b/src/main/java/com/sztzjy/forex/trading_trading/controller/TakeStashController.java index 18eb918..cee562d 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/controller/TakeStashController.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/controller/TakeStashController.java @@ -296,7 +296,7 @@ public class TakeStashController { } } - if (buyTotalVolumeTransaction>=sellTotalVolumeTransaction){ //设置带sell\buy的最高交易交易总量 + if (buyTotalVolumeTransaction>=sellTotalVolumeTransaction){ //设置平仓前 sell\buy的最高交易交易总量 highVolumeTransaction=buyTotalVolumeTransaction; }else { highVolumeTransaction=sellTotalVolumeTransaction; @@ -304,12 +304,21 @@ public class TakeStashController { //获取相同tradingCode持仓表总使用保证金 Double totalMargin=(buyTotalMargin+sellTotalMargin)/totalVolumeTransaction*Constant.LEVERQUANTITY*highVolumeTransaction; //获取去除平仓数据后的相同tradingCode持仓表总使用保证金 - Double totalMarginRemoveCloseTakeStash=0.0; if("buy".equals(buySellType)){ - totalMarginRemoveCloseTakeStash=((buyTotalMargin-transactionVolume*priceTransaction)+sellTotalMargin)/totalVolumeTransaction*Constant.LEVERQUANTITY*highVolumeTransaction; + if (buyTotalVolumeTransaction-transactionVolume>=sellTotalVolumeTransaction){ //设置平仓后 sell\buy的最高交易交易总量 + highVolumeTransaction=buyTotalVolumeTransaction; + }else { + highVolumeTransaction=sellTotalVolumeTransaction; + } }else { - totalMarginRemoveCloseTakeStash=(buyTotalMargin+(sellTotalMargin-transactionVolume*priceTransaction))/totalVolumeTransaction*Constant.LEVERQUANTITY*highVolumeTransaction; + if ( sellTotalVolumeTransaction-transactionVolume>=buyTotalVolumeTransaction){ //设置平仓后 sell\buy的最高交易交易总量 + highVolumeTransaction=sellTotalVolumeTransaction; + }else { + highVolumeTransaction=buyTotalVolumeTransaction; + } } + Double totalMarginRemoveCloseTakeStash=0.0; + totalMarginRemoveCloseTakeStash=(buyTotalMargin+sellTotalMargin-transactionVolume*priceTransaction)/(totalVolumeTransaction-transactionVolume)*Constant.LEVERQUANTITY*highVolumeTransaction; margin=totalMargin-totalMarginRemoveCloseTakeStash; return margin; }