cci 수정

This commit is contained in:
Macbook
2026-05-30 00:46:31 +09:00
parent ad92dace28
commit 09e44008cb
7 changed files with 107 additions and 25 deletions
@@ -7,12 +7,34 @@ import org.ta4j.core.indicators.averages.SMAIndicator;
import org.ta4j.core.indicators.statistics.MeanDeviationIndicator;
import org.ta4j.core.num.Num;
import java.util.HashMap;
import java.util.Map;
/**
* TradingView/업비트 CCI — 임의 가격 소스에 대해
* (src - SMA) / (0.015 × MeanDeviation) 계산.
*/
public class CciOnSourceIndicator extends CachedIndicator<Num> {
/** 업비트·TradingView 기본: hlc3(고저종), 기간 13, 신호 SMA 10 */
public static Map<String, Object> normalizeParams(Map<String, Object> p) {
Map<String, Object> out = new HashMap<>(p);
String maType = String.valueOf(p.getOrDefault("maType", "SMA"));
int length = intParam(p, "length", 13);
int maLength = intParam(p, "maLength", 10);
String src = String.valueOf(p.getOrDefault("src", "hlc3"));
if ("close".equals(src) && length == 13 && maLength == 10 && "SMA".equals(maType)) {
src = "hlc3";
}
out.put("src", src);
return out;
}
private static int intParam(Map<String, Object> p, String k, int def) {
Object v = p.get(k);
return v == null ? def : ((Number) v).intValue();
}
private final Indicator<Num> price;
private final SMAIndicator sma;
private final MeanDeviationIndicator meanDeviation;