| | |
| | | private void sendPing() { |
| | | try { |
| | | if (webSocketClient != null && webSocketClient.isOpen()) { |
| | | JSONObject ping = new JSONObject(); |
| | | ping.put("op", "ping"); |
| | | webSocketClient.send(ping.toJSONString()); |
| | | webSocketClient.send("ping"); |
| | | log.debug("发送ping请求"); |
| | | } |
| | | } catch (Exception e) { |
| | |
| | | realKuiSunAmount = realKuiSunAmount.multiply(new BigDecimal("-1")); |
| | | // 账户预期亏损金额比这个还小时,立即止损 |
| | | if (realKuiSunAmount.compareTo(zhiSunAmount) > 0){ |
| | | log.warn("账户冷静止损......"); |
| | | log.error("账户冷静止损......"); |
| | | //目前止损掉损失较大的一个方向 |
| | | String positionAccountName = PositionsWs.initAccountName(accountName, posSide); |
| | | BigDecimal upl = PositionsWs.getAccountMap(positionAccountName).get("upl"); |
| | |
| | | String positionAccountOther = PositionsWs.initAccountName(accountName, posSideOther); |
| | | BigDecimal uplOther = PositionsWs.getAccountMap(positionAccountOther).get("upl"); |
| | | if (upl.compareTo(uplOther) > 0){ |
| | | log.warn("{}的亏损{},{}的亏损{},止损{}......",posSide,upl,posSideOther,uplOther,uplOther); |
| | | log.error("{}的亏损{},{}的亏损{},止损{}......",posSide,upl,posSideOther,uplOther,uplOther); |
| | | posSide = posSideOther; |
| | | } |
| | | |
| | |
| | | BigDecimal divide = subtract.divide(new BigDecimal(buyCntTime), 0, RoundingMode.DOWN).add(BigDecimal.ONE); |
| | | log.info("倍数次数{}", divide); |
| | | String buyCntInit = InstrumentsWs.getAccountMap(accountName).get(CoinEnums.BUY_CNT_INIT.name()); |
| | | return String.valueOf(divide.multiply(new BigDecimal(buyCntInit))); |
| | | // return String.valueOf(divide.multiply(new BigDecimal(buyCntInit))); |
| | | return buyCntInit; |
| | | } |
| | | |
| | | private String buyCntTimeShortEvent(String accountName, BigDecimal avgPx, BigDecimal markPx){ |
| | |
| | | BigDecimal divide = subtract.divide(new BigDecimal(buyCntTime), 0, RoundingMode.DOWN).add(BigDecimal.ONE); |
| | | log.info("倍数次数{}", divide); |
| | | String buyCntInit = InstrumentsWs.getAccountMap(accountName).get(CoinEnums.BUY_CNT_INIT.name()); |
| | | return String.valueOf(divide.multiply(new BigDecimal(buyCntInit))); |
| | | // return String.valueOf(divide.multiply(new BigDecimal(buyCntInit))); |
| | | return buyCntInit; |
| | | } |
| | | |
| | | /** |
| | |
| | | BUY_CNT_INIT("每次初始化开仓张数的基础值buyCntInit","0.1"), |
| | | BUY_CNT_TIME("每次开仓张数的倍数基础值buyCntTime","20"), |
| | | // OUT("是否允许下单out","操作中"), |
| | | OUT("是否允许下单out","冷静中"), |
| | | OUT("是否允许下单out","操作中"), |
| | | CTVAL("合约面值ctVal","0.1"), |
| | | CONTRACTMULTIPLIER("合约乘积ctVal","1"), |
| | | TICKSZ("下单价格精度tickSz","2"), |
| | |
| | | */ |
| | | @Getter |
| | | public enum WangGeListEnum { |
| | | // UP_ONE("上层做空", "2", "3500", "3300", "4", "long", "3500"), |
| | | // UP("上层做空", "2", "3300", "3000", "4", "short", "3300"), |
| | | // CENTER("中间做空", "2", "3000", "2700", "4", "short", "3000"), |
| | | // DOWN("下层做空", "2", "2700", "2200", "4", "short", "2700"), |
| | | // DOWN_ONE("下层做多", "2", "2200", "1800", "4", "long", "1800"); |
| | | // UP_ONE("上层做空", "2", "3500", "3300", "4", "long", "3280"), |
| | | // UP("上层做空", "2", "3300", "3000", "4", "short", "3320"), |
| | | // CENTER("中间做空", "2", "3000", "2700", "4", "long", "2680"), |
| | | // DOWN("下层做空", "2", "2700", "2200", "4", "short", "2720"), |
| | | // DOWN_ONE("下层做多", "2", "2200", "1800", "4", "long", "1780"); |
| | | UP_ONE("上层做long", "2", "3450", "3400", "4", "long", "3380"), |
| | | UP("上层做short", "2", "3400", "3350", "4", "short", "3420"), |
| | | CENTER("中间做long", "2", "3350", "3300", "4", "long", "3280"), |
| | | DOWN("下层做空", "2", "3300", "3250", "4", "short", "3320"), |
| | | DOWN_ONE("下层做多", "2", "3250", "3200", "4", "long", "3180"); |
| | | DOWN_ONE("下层做多", "2", "3250", "3000", "4", "long", "3180"); |
| | | |
| | | private String name; |
| | | private String xiaoshu_weishu; |
| | |
| | | <logger name="java.sql" level="DEBUG" /> |
| | | </springProfile> |
| | | |
| | | <root level="error"> |
| | | <root level="warn"> |
| | | <appender-ref ref="CONSOLE" /> |
| | | <appender-ref ref="DEBUG_FILE" /> |
| | | <appender-ref ref="INFO_FILE" /> |