| | |
| | | * @param onSuccess 成交成功回调(可为 null) |
| | | * @param onFailure 成交失败回调(可为 null) |
| | | */ |
| | | public void openLong(String quantity, Runnable onSuccess, Runnable onFailure) { |
| | | public void openLong(String quantity, Consumer<String> onSuccess, Runnable onFailure) { |
| | | openPosition(quantity, "t-grid-long", "开多", onSuccess, onFailure); |
| | | } |
| | | |
| | |
| | | * @param onSuccess 成交成功回调(可为 null) |
| | | * @param onFailure 成交失败回调(可为 null) |
| | | */ |
| | | public void openShort(String quantity, Runnable onSuccess, Runnable onFailure) { |
| | | public void openShort(String quantity, Consumer<String> onSuccess, Runnable onFailure) { |
| | | openPosition(quantity, "t-grid-short", "开空", onSuccess, onFailure); |
| | | } |
| | | |
| | |
| | | * @param onSuccess 成功回调 |
| | | * @param onFailure 失败回调 |
| | | */ |
| | | private void openPosition(String size, String text, String label, Runnable onSuccess, Runnable onFailure) { |
| | | private void openPosition(String size, String text, String label, Consumer<String> onSuccess, Runnable onFailure) { |
| | | executor.execute(() -> { |
| | | try { |
| | | FuturesOrder order = new FuturesOrder(); |
| | |
| | | order.setText(text); |
| | | FuturesOrder result = futuresApi.createFuturesOrder(SETTLE, order, null); |
| | | log.info("[TradeExec] {}成功, 价格:{}, id:{}", label, result.getFillPrice(), result.getId()); |
| | | String orderId = String.valueOf(result.getId()); |
| | | if (onSuccess != null) { |
| | | onSuccess.run(); |
| | | onSuccess.accept(orderId); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("[TradeExec] {}失败", label, e); |