단순이동평균선 이름 표시방식 변경
This commit is contained in:
@@ -1342,31 +1342,19 @@ public class StrategyDslToTa4jAdapter {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/** live-conditions·해석 UI — MA5(60일) 형식 */
|
||||
/** live-conditions·해석 UI — MA20일 형식 (슬롯·기간 설정값 기준) */
|
||||
public String formatMovingAverageFieldLabel(String field, Map<String, Map<String, Object>> params) {
|
||||
if (field == null || field.isBlank()) return field;
|
||||
Map<String, Object> sma = params != null ? params.getOrDefault("SMA", Map.of()) : Map.of();
|
||||
if (field.startsWith("MA") && !field.startsWith("MACD")) {
|
||||
int period = resolveMovingAveragePeriod(field, "MA", sma);
|
||||
if (period <= 0) return field;
|
||||
try {
|
||||
int n = Integer.parseInt(field.substring(2));
|
||||
if (n >= 1 && n <= MA_DSL_SLOT_MAX) return "MA" + n + "(" + period + "일)";
|
||||
return "MA(" + period + "일)";
|
||||
} catch (NumberFormatException e) {
|
||||
return field;
|
||||
}
|
||||
return "MA" + period + "일";
|
||||
}
|
||||
if (field.startsWith("EMA")) {
|
||||
int period = resolveMovingAveragePeriod(field, "EMA", sma);
|
||||
if (period <= 0) return field;
|
||||
try {
|
||||
int n = Integer.parseInt(field.substring(3));
|
||||
if (n >= 1 && n <= MA_DSL_SLOT_MAX) return "EMA" + n + "(" + period + "일)";
|
||||
return "EMA(" + period + "일)";
|
||||
} catch (NumberFormatException e) {
|
||||
return field;
|
||||
}
|
||||
return "EMA" + period + "일";
|
||||
}
|
||||
return field;
|
||||
}
|
||||
|
||||
@@ -45,15 +45,15 @@ class MaDslFieldAdapterTest {
|
||||
void formatMovingAverageFieldLabel_slotLabels() {
|
||||
Map<String, Map<String, Object>> params = Map.of(
|
||||
"SMA", Map.of("period3", 20, "period5", 60));
|
||||
assertEquals("MA3(20일)", adapter.formatMovingAverageFieldLabel("MA3", params));
|
||||
assertEquals("MA5(60일)", adapter.formatMovingAverageFieldLabel("MA5", params));
|
||||
assertEquals("MA20일", adapter.formatMovingAverageFieldLabel("MA3", params));
|
||||
assertEquals("MA60일", adapter.formatMovingAverageFieldLabel("MA5", params));
|
||||
}
|
||||
|
||||
@Test
|
||||
void formatMovingAverageFieldLabel_legacyLabels() {
|
||||
Map<String, Map<String, Object>> params = Map.of(
|
||||
"SMA", Map.of("period3", 20, "period5", 60));
|
||||
assertEquals("MA(20일)", adapter.formatMovingAverageFieldLabel("MA20", params));
|
||||
assertEquals("MA(60일)", adapter.formatMovingAverageFieldLabel("MA60", params));
|
||||
assertEquals("MA20일", adapter.formatMovingAverageFieldLabel("MA20", params));
|
||||
assertEquals("MA60일", adapter.formatMovingAverageFieldLabel("MA60", params));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user