분석레포트 로직 수정
This commit is contained in:
@@ -24,12 +24,20 @@ public class TradingExecutionService {
|
||||
|
||||
public void executeSignal(Long userId, String market,
|
||||
Long strategyId, String side, double price) {
|
||||
executeSignal(userId, market, strategyId, side, price, null, null, null);
|
||||
}
|
||||
|
||||
public void executeSignal(Long userId, String market,
|
||||
Long strategyId, String side, double price,
|
||||
String candleType, String strategyName, String executionType) {
|
||||
if (!TradingAccess.isRegisteredUser(userId)) return;
|
||||
GcAppSettings app = appSettingsService.getEntity(userId, null);
|
||||
TradingMode mode = TradingMode.fromString(app.getTradingMode());
|
||||
|
||||
if (mode.usePaper() && Boolean.TRUE.equals(app.getPaperTradingEnabled())) {
|
||||
paperTradingService.tryExecuteOnSignal(userId, market, strategyId, side, price);
|
||||
paperTradingService.tryExecuteOnSignal(
|
||||
userId, market, strategyId, side, price,
|
||||
candleType, strategyName, executionType);
|
||||
}
|
||||
if (mode.useLive()) {
|
||||
liveTradingService.tryExecuteOnSignal(
|
||||
|
||||
@@ -67,9 +67,16 @@ public class OrderExecutionQueue {
|
||||
|
||||
public void submitSignal(Long userId, String market,
|
||||
Long strategyId, String signal, double price) {
|
||||
submitSignal(userId, market, strategyId, signal, price, null, null, null);
|
||||
}
|
||||
|
||||
public void submitSignal(Long userId, String market,
|
||||
Long strategyId, String signal, double price,
|
||||
String candleType, String strategyName, String executionType) {
|
||||
if (!TradingAccess.isRegisteredUser(userId)) return;
|
||||
submit(OrderRequest.strategySignal(
|
||||
TradingAccess.accountDeviceKey(userId), userId, market, strategyId, signal, price));
|
||||
TradingAccess.accountDeviceKey(userId), userId, market, strategyId, signal, price,
|
||||
candleType, strategyName, executionType));
|
||||
}
|
||||
|
||||
private void runLoop() {
|
||||
@@ -97,7 +104,8 @@ public class OrderExecutionQueue {
|
||||
if (req.kind() == OrderRequest.OrderKind.STRATEGY_SIGNAL) {
|
||||
tradingExecutionService.executeSignal(
|
||||
req.userId(), req.market(),
|
||||
req.strategyId(), req.side(), req.price());
|
||||
req.strategyId(), req.side(), req.price(),
|
||||
req.candleType(), req.strategyName(), req.executionType());
|
||||
} else {
|
||||
tradingExecutionService.executeRiskExit(req);
|
||||
}
|
||||
|
||||
@@ -11,7 +11,10 @@ public record OrderRequest(
|
||||
Long strategyId,
|
||||
String side,
|
||||
double price,
|
||||
String reason
|
||||
String reason,
|
||||
String candleType,
|
||||
String strategyName,
|
||||
String executionType
|
||||
) {
|
||||
public enum OrderKind {
|
||||
STRATEGY_SIGNAL,
|
||||
@@ -20,20 +23,25 @@ public record OrderRequest(
|
||||
}
|
||||
|
||||
public static OrderRequest strategySignal(String deviceId, Long userId, String market,
|
||||
Long strategyId, String side, double price) {
|
||||
Long strategyId, String side, double price,
|
||||
String candleType, String strategyName,
|
||||
String executionType) {
|
||||
return new OrderRequest(OrderKind.STRATEGY_SIGNAL, deviceId, userId, market,
|
||||
strategyId, side, price, "STRATEGY");
|
||||
strategyId, side, price, "STRATEGY",
|
||||
candleType, strategyName, executionType);
|
||||
}
|
||||
|
||||
public static OrderRequest stopLoss(String deviceId, Long userId, String market,
|
||||
double price, double lossPct) {
|
||||
return new OrderRequest(OrderKind.STOP_LOSS, deviceId, userId, market,
|
||||
null, "SELL", price, "STOP_LOSS_" + lossPct + "%");
|
||||
null, "SELL", price, "STOP_LOSS_" + lossPct + "%",
|
||||
null, null, null);
|
||||
}
|
||||
|
||||
public static OrderRequest takeProfit(String deviceId, Long userId, String market,
|
||||
double price, double profitPct) {
|
||||
return new OrderRequest(OrderKind.TAKE_PROFIT, deviceId, userId, market,
|
||||
null, "SELL", price, "TAKE_PROFIT_" + profitPct + "%");
|
||||
null, "SELL", price, "TAKE_PROFIT_" + profitPct + "%",
|
||||
null, null, null);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user