| | |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | System.out.println( |
| | | getZhiYingPx( |
| | | "eth", |
| | | CoinEnums.POSSIDE_LONG.getCode(), |
| | | "0.0001", |
| | | new BigDecimal("0.1"), |
| | | new BigDecimal("0.05"), |
| | | new BigDecimal("1"), |
| | | new BigDecimal("2950"), |
| | | new BigDecimal("100")) |
| | | ); |
| | | } |
| | | /** |
| | | * 计算预期收益 |
| | | */ |
| | |
| | | BigDecimal contractMultiplier, BigDecimal avgPx, BigDecimal leverage |
| | | ) { |
| | | BigDecimal initMargin = getInitMargin(coinValue, coinNum, contractMultiplier, avgPx, leverage); |
| | | String pingCangImr = InstrumentsWs.getAccountMap(accountName).get(CoinEnums.PING_CANG_SHOUYI.name()); |
| | | String pingCangImr = StrUtil.isEmpty(InstrumentsWs.getAccountMap(accountName).get(CoinEnums.PING_CANG_SHOUYI.name())) ? "0.2" : InstrumentsWs.getAccountMap(accountName).get(CoinEnums.PING_CANG_SHOUYI.name()); |
| | | BigDecimal expectProfit = (initMargin).multiply(new BigDecimal(pingCangImr)).add(new BigDecimal(fillFee).abs()).setScale(4, RoundingMode.DOWN); |
| | | log.info("{}: 订单详情-预期收益: {}", accountName, expectProfit); |
| | | return getMarkPrice(expectProfit,posSide, coinValue, coinNum, contractMultiplier, avgPx, leverage); |
| | |
| | | */ |
| | | public static BigDecimal getInitMargin(BigDecimal coinValue, BigDecimal coinNum, BigDecimal contractMultiplier, BigDecimal avgPx, BigDecimal leverage) { |
| | | BigDecimal initMargin = coinValue.multiply(coinNum).multiply(contractMultiplier).multiply(avgPx).divide(leverage, 4, RoundingMode.DOWN); |
| | | log.info("{}: 订单详情-初始保证金: {}", initMargin); |
| | | log.info("订单详情-初始保证金: {}", initMargin); |
| | | return initMargin; |
| | | } |
| | | /** |