매매전략 조건 — Ta4j 지원 × 투자전략 DSL 가용 목록
goldenChart 투자전략 DSL에서 실제로 선택·평가 가능한 지표와 조건을 매수 / 매도 / 횡보 필터링 관점으로 정리한 문서입니다.
평가 원천: 백엔드 StrategyDslToTa4jAdapter가 DSL JSON → Ta4j Rule로 변환하여 백테스트·실시간 시그널을 생성합니다.
관련 문서: 전략편집기 로직 및 동작흐름.md, 백테스팅 시그널 동작방식.md
1. DSL 구조 요약
1.1 논리 트리 노드
| 노드 타입 |
역할 |
예시 |
AND |
모든 자식 조건 동시 충족 |
추세 + 모멘텀 + 거래량 동시 확인 |
OR |
자식 중 하나만 충족 |
RSI 과매도 또는 볼린저 하단 터치 |
NOT |
자식 조건의 반대 |
NOT(ADX ≥ 25) → 횡보 구간만 |
TIMEFRAME |
특정 분봉에서만 평가 |
[3m] MA 크로스 |
CONDITION |
단일 지표 비교 |
RSI_VALUE CROSS_UP OVERSOLD_30 |
1.2 공통 조건 연산자 (COMMON_CONDITIONS)
모든 일반 지표(밴드·오실레이터·거래량 등)에 공통 적용됩니다.
| 조건 코드 |
UI 라벨 |
Ta4j Rule |
의미 |
GT |
초과(>) |
OverIndicatorRule |
좌 > 우 |
LT |
미만(<) |
UnderIndicatorRule |
좌 < 우 |
GTE |
이상(≥) |
Over ∨ Equal |
좌 ≥ 우 |
LTE |
이하(≤) |
Under ∨ Equal |
좌 ≤ 우 |
EQ |
같음(=) |
epsilon Equal |
좌 ≈ 우 |
NEQ |
다름(≠) |
Not Equal |
좌 ≠ 우 |
CROSS_UP |
상향 돌파 |
CrossedUpIndicatorRule |
직전 봉 좌≤우 → 현재 봉 좌>우 |
CROSS_DOWN |
하향 돌파 |
CrossedDownIndicatorRule |
직전 봉 좌≥우 → 현재 봉 좌<우 |
SLOPE_UP |
상승 중 |
IsRisingRule |
slopePeriod(기본 3) 구간 연속 상승 |
SLOPE_DOWN |
하락 중 |
IsFallingRule |
slopePeriod 구간 연속 하락 |
DIFF_GT |
차이>값 |
abs(좌−우) > compareValue |
두 선 간격이 임계값 초과 |
DIFF_LT |
차이<값 |
abs(좌−우) < compareValue |
두 선 간격이 임계값 미만 |
HOLD_N_DAYS |
N일 유지 |
N봉 연속 Over |
좌>우가 holdDays(기본 3)봉 유지 |
교차(CROSS_*) 주의: 해당 봉 종가(확정 봉) 기준 1봉만 true입니다. 차트 SMA·백테스트 MA 기간·워밍업 봉 수가 다르면 교차 시점이 어긋날 수 있습니다.
1.3 일목균형표 전용 조건 (ICHIMOKU만)
| 조건 코드 |
의미 |
ABOVE_CLOUD |
종가 > max(선행1, 선행2) — 구름 위 |
BELOW_CLOUD |
종가 < min(선행1, 선행2) — 구름 아래 |
IN_CLOUD |
종가가 구름대 내부 |
CLOUD_BREAK_UP |
종가가 구름 상단 상향 돌파 |
CLOUD_BREAK_DOWN |
종가가 구름 하단 하향 이탈 |
SPAN1_GT_SPAN2 / SPAN1_LT_SPAN2 |
선행1 vs 선행2 크기 비교 |
SPAN1_CROSS_UP_SPAN2 / SPAN1_CROSS_DOWN_SPAN2 |
선행1↔선행2 교차 |
LAGGING_GT_PRICE / LAGGING_LT_PRICE |
후행스팬 vs 종가 |
일목은 위 전용 조건 + 공통 조건(전환선↔기준선 CROSS_UP 등) 모두 사용 가능합니다.
1.4 복합지표 (2기간 교차)
팔레트 「복합지표」 탭에서 동일 지표의 단기·장기 두 값을 비교합니다.
| 지표 |
좌/우 필드 예 |
용도 |
| DONCHIAN |
DC_UPPER_9 ↔ DC_UPPER_20 |
단기·장기 채널 비교 |
| RSI |
RSI_VALUE_9 ↔ RSI_VALUE_18 |
RSI 기간 교차 |
| CCI, ADX, Williams %R, TRIX, VR |
*_VALUE_{기간} |
기간별 강도 비교 |
| PSYCHOLOGICAL, INVEST_PSYCHOLOGICAL |
PSY_VALUE_{n} |
심리도 기간 교차 |
| DISPARITY |
DISPARITY5 ↔ DISPARITY20 |
단기·중기 이격도 |
요소1·요소2 각각 별도 TIMEFRAME(leftCandleType / rightCandleType) 지정 가능 — 멀티 TF 교차 조건.
1.5 DSL 지원 지표 전체 목록
밴드·추세 (MA_BAND / 밴드 팔레트)
| DSL 타입 |
Ta4j / 차트 |
비고 |
MA |
SMAIndicator |
MA{n} = n봉 단순이동평균 (SMA 설정 period1~11 반영) |
EMA |
EMAIndicator |
EMA{n} |
BOLLINGER |
BollingerBands* |
상·중·하단밴드, 종가 비교 |
DONCHIAN |
DonchianChannel* |
DC_UPPER/Lower/MIDDLE_{9,10,20,55} |
NEW_HIGH |
PreviousValueIndicator + 최고가 |
NH_PRIOR_{n} 직전 n봉 최고가 |
NEW_LOW |
PreviousValueIndicator + 최저가 |
NL_PRIOR_{n} 직전 n봉 최저 |
ICHIMOKU |
Ichimoku*Indicator |
전환·기준·선행·후행 + 구름 조건 |
오실레이터·모멘텀 (보조지표 팔레트)
| DSL 타입 |
Ta4j 클래스 |
기본 파라미터(편집기) |
RSI |
RSIIndicator |
length 9 (차트 설정 상속 가능) |
MACD |
MACDIndicator + EMA signal |
12 / 26 / 9 |
CCI |
CciOnSourceIndicator |
13 |
ADX |
ADXIndicator |
diLength 14, adxSmoothing 14 |
DMI |
PlusDIIndicator / MinusDIIndicator |
diLength 14 |
STOCHASTIC |
Slow %K, %D (SMA smoothing) |
k 12, smooth 3, d 5 |
WILLIAMS_R |
WilliamsRIndicator |
14 |
TRIX |
3×EMA ROC% + signal EMA |
12 / signal 9 |
OBV |
OnBalanceVolumeIndicator + MA |
maLength 9 |
VR |
커스텀 VR |
length 10 |
DISPARITY |
(종가/MA−1)×100 |
ultra 5, short 10, mid 20 |
PSYCHOLOGICAL |
상승일 비율 |
12 |
NEW_PSYCHOLOGICAL |
신심리도 |
10 |
INVEST_PSYCHOLOGICAL |
투자심리도 |
10 |
VOLUME |
VolumeIndicator vs SMA |
MA 20 |
BWI |
BollingerBandWidthIndicator (차트) |
⚠️ DSL 어댑터 미구현 (§7 참고) |
VOLUME_OSC |
Volume EMA 차이 % (차트) |
⚠️ DSL 어댑터 미구현 (§7 참고) |
가격 필드 (여러 지표에서 좌·우 operand로 사용)
CLOSE_PRICE, OPEN_PRICE, HIGH_PRICE, LOW_PRICE, VOLUME_VALUE, VOLUME_MA
임계값(hline) 필드
편집기에서 HL_OVER(과열), HL_MID(중앙), HL_UNDER(침체) 또는 K_{숫자} 직접 입력.
| 지표 |
HL_OVER |
HL_MID |
HL_UNDER |
| RSI |
70 |
50 |
30 |
| Stochastic |
80 |
50 |
20 |
| CCI |
100 |
0 |
-100 |
| Williams %R |
-20 |
-50 |
-80 |
| ADX |
40 |
25 |
20 |
| BWI |
80 |
50 |
20 |
| VR |
200 |
100 |
50 |
| PSYCHOLOGICAL |
75 |
50 |
25 |
| NEW_PSYCHOLOGICAL |
50 |
0 |
-50 |
| INVEST_PSYCHOLOGICAL |
75 |
50 |
25 |
| DISPARITY |
105 |
100 |
95 |
| MACD / TRIX / VOLUME_OSC |
— |
0 |
— |
2. 매수(BUY) 조건 — 지표별 활용
매수 조건은 buyCondition 트리에 설정합니다. 아래는 전략 편집기 템플릿·일반적 패턴과 추천 조건 조합입니다.
2.1 추세 추종 — 이동평균·밴드
| 패턴 |
DSL 예시 |
설명 |
| MA 골든크로스 |
MA CROSS_UP MA10 ↔ MA20 |
단기 SMA가 장기 SMA 상향 돌파 |
| 종가 > 장기선 |
MA CROSS_UP CLOSE_PRICE ↔ MA60 |
가격이 장기 추세선 회복 |
| EMA 단기 > EMA 장기 |
EMA GT EMA5 ↔ EMA20 |
지수이동평균 정배열 진입 |
| 볼린저 하단 반등 |
BOLLINGER CROSS_UP CLOSE_PRICE ↔ LOWER_BAND |
하단밴드 터치 후 종가 회복 |
| 볼린저 중심선 돌파 |
BOLLINGER CROSS_UP CLOSE_PRICE ↔ MIDDLE_BAND |
박스 상단(중심) 돌파 |
| 이격도 과매도 탈출 |
DISPARITY CROSS_UP DISPARITY20 ↔ OVERSOLD_95 |
20일선 대비 -5% 이하에서 반등 |
| 이격도 중립 회복 |
DISPARITY CROSS_UP DISPARITY10 ↔ NEUTRAL_100 |
단기 이격 100% 회복 |
MA 필드 규칙: UI의 MA2(10일) = DSL MA10 = 10봉 SMA. SMA 차트 설정(period1~11)과 전략 편집기 maLines가 일치해야 차트·백테스트 값이 맞습니다.
2.2 모멘텀·오실레이터 — 과매도 반등
| 패턴 |
DSL 예시 |
Ta4j |
| RSI 과매도 |
RSI LTE RSI_VALUE ↔ OVERSOLD_30 |
RSIIndicator ≤ 30 |
| RSI 과매도 탈출 |
RSI CROSS_UP RSI_VALUE ↔ OVERSOLD_30 |
30선 상향 돌파 (반등 확인) |
| Stochastic 골든크로스 |
STOCHASTIC CROSS_UP STOCH_K ↔ STOCH_D |
Slow %K > %D 교차 |
| Stochastic 과매도 |
STOCHASTIC LTE STOCH_K ↔ OVERSOLD_20 |
%K ≤ 20 |
| MACD 상향 돌파 |
MACD CROSS_UP MACD_LINE ↔ SIGNAL_LINE |
MACD 히스토그램 전환 |
| MACD 0선 돌파 |
MACD CROSS_UP MACD_LINE ↔ ZERO_LINE |
추세 전환 초기 |
| CCI 과매도 반등 |
CCI CROSS_UP CCI_VALUE ↔ OVERSOLD_NEG100 |
-100선 상향 |
| Williams %R 과매도 |
WILLIAMS_R LTE WILLIAMS_R_VALUE ↔ OVERSOLD_NEG80 |
-80 이하 |
| TRIX 시그널 상향 |
TRIX CROSS_UP TRIX_VALUE ↔ TRIX_SIGNAL |
TRIX > signal |
| VR 과매도 |
VR LTE VR_VALUE ↔ OVERSOLD_70 |
VR ≤ 70 (매수세 약함 구간 반등) |
2.3 추세 강도 확인 — ADX·DMI
| 패턴 |
DSL 예시 |
설명 |
| ADX 추세 시작 |
ADX CROSS_UP ADX_VALUE ↔ ADX_25 |
ADX 25 돌파 — 추세 형성 |
| ADX 강한 추세 |
ADX GTE ADX_VALUE ↔ ADX_25 |
ADX ≥ 25 유지 |
| +DI > -DI |
DMI GT PDI ↔ MDI |
상승 방향 우세 |
| +DI 골든크로스 |
DMI CROSS_UP PDI ↔ MDI |
DMI 골든크로스 |
매수 필터 조합 예: AND( MA 골든크로스, ADX ≥ 25, +DI > -DI ) — 추세·방향 동시 확인
2.4 돌파·신고가 — Donchian / NEW_HIGH
| 패턴 |
DSL 예시 |
설명 |
| 9일 신고가 돌파 |
NEW_HIGH CROSS_UP CLOSE_PRICE ↔ NH_PRIOR_9 |
직전 9봉 최고가 상향 돌파 |
| 20일 박스 돌파 |
NEW_HIGH CROSS_UP CLOSE_PRICE ↔ NH_PRIOR_20 |
터틀 S1 / 돈치안 돌파 |
| 55일 장기 돌파 |
NEW_HIGH CROSS_UP CLOSE_PRICE ↔ NH_PRIOR_55 |
터틀 S2 |
| Donchian 상단 |
DONCHIAN CROSS_UP CLOSE_PRICE ↔ DC_UPPER_20 |
20일 채널 상단 돌파 |
| Donchian 단·장기 |
DONCHIAN CROSS_UP DC_UPPER_9 ↔ DC_UPPER_20 |
단기 채널이 장기 상단 돌파 |
NH_PRIOR_{n}: 당일 봉 제외 직전 n봉의 최고가 (PreviousValueIndicator).
2.5 거래량·수급
| 패턴 |
DSL 예시 |
설명 |
| 거래량 > MA |
VOLUME GT VOLUME_VALUE ↔ VOLUME_MA |
평균 대비 거래량 증가 |
| OBV 상향 |
OBV CROSS_UP OBV_LINE ↔ OBV_SIGNAL |
OBV가 시그널선 돌파 |
| OBV > signal |
OBV GT OBV_LINE ↔ OBV_SIGNAL |
매수세 누적 |
2.6 일목균형표 — 상승 전환
| 패턴 |
DSL 예시 |
설명 |
| 전환선 > 기준선 |
ICHIMOKU CROSS_UP CONVERSION_LINE ↔ BASE_LINE |
전환/기준 골든크로스 |
| 구름 상향 돌파 |
ICHIMOKU CLOUD_BREAK_UP |
종가 구름대 상단 돌파 |
| 구름 위 |
ICHIMOKU ABOVE_CLOUD |
강세 구간 |
| 선행1 > 선행2 |
ICHIMOKU SPAN1_GT_SPAN2 |
후행 구름 녹색(강세) |
| 후행 > 종가 |
ICHIMOKU LAGGING_GT_PRICE |
후행스팬 지지 |
2.7 심리·이격 복합 (33변곡 템플릿)
내장 템플릿 「33변곡 매수」 — AND 조합:
2.8 멀티 타임프레임 매수
START 노드 또는 TIMEFRAME 노드로 1m ~ 1M 분봉 지정. DSL에 없는 분봉은 평가되지 않습니다.
3. 매도(SELL) 조건 — 지표별 활용
매도 조건은 sellCondition 트리에 설정합니다. positionMode에 따라 동작이 달라집니다.
| positionMode |
동작 |
LONG_ONLY |
보유 포지션이 있을 때만 매도 시그널 (Ta4j shouldExit) |
SIGNAL_ONLY |
포지션 무관, exit Rule만 충족하면 매도 시그널 (지표 연속 관찰·차트 마커용) |
3.1 추세 이탈 — MA·밴드
| 패턴 |
DSL 예시 |
설명 |
| MA 데드크로스 |
MA CROSS_DOWN MA10 ↔ MA20 |
단기 SMA 하향 이탈 |
| 종가 < 장기선 |
MA CROSS_DOWN CLOSE_PRICE ↔ MA20 |
추세선 이탈 |
| 볼린저 상단 과열 |
BOLLINGER CROSS_UP CLOSE_PRICE ↔ UPPER_BAND |
상단밴드 돌파 (차익) |
| 볼린저 중심 이탈 |
BOLLINGER CROSS_DOWN CLOSE_PRICE ↔ MIDDLE_BAND |
중심선 하향 |
| 이격도 과매수 |
DISPARITY GTE DISPARITY20 ↔ OVERBOUGHT_105 |
+5% 이상 과열 |
3.2 모멘텀·오실레이터 — 과매수·약세
| 패턴 |
DSL 예시 |
설명 |
| RSI 과매수 |
RSI GTE RSI_VALUE ↔ OVERBOUGHT_70 |
RSI ≥ 70 |
| RSI 과매수 이탈 |
RSI CROSS_DOWN RSI_VALUE ↔ OVERBOUGHT_70 |
70선 하향 (피크 확인) |
| Stochastic 데드크로스 |
STOCHASTIC CROSS_DOWN STOCH_K ↔ STOCH_D |
%K <%D |
| MACD 하향 |
MACD CROSS_DOWN MACD_LINE ↔ SIGNAL_LINE |
MACD 데드크로스 |
| CCI 과매수 |
CCI GTE CCI_VALUE ↔ OVERBOUGHT_100 |
CCI ≥ 100 |
| Williams %R 과매수 |
WILLIAMS_R GTE WILLIAMS_R_VALUE ↔ OVERBOUGHT_NEG20 |
-20 이상 |
| TRIX 하향 |
TRIX CROSS_DOWN TRIX_VALUE ↔ TRIX_SIGNAL |
TRIX < signal |
3.3 추세 약화 — ADX·DMI
| 패턴 |
DSL 예시 |
설명 |
| ADX < 25 |
ADX LT ADX_VALUE ↔ ADX_25 |
추세 약화 |
| -DI > +DI |
DMI GT MDI ↔ PDI |
하락 방향 우세 |
| DMI 데드크로스 |
DMI CROSS_DOWN PDI ↔ MDI |
+DI가 -DI 하향 이탈 |
3.4 지지 붕괴 — Donchian / NEW_LOW
| 패턴 |
DSL 예시 |
설명 |
| 9일 신저가 이탈 |
NEW_LOW CROSS_DOWN CLOSE_PRICE ↔ NL_PRIOR_9 |
단기 지지 붕괴 |
| 20일 채널 하단 |
NEW_LOW CROSS_DOWN CLOSE_PRICE ↔ NL_PRIOR_20 |
박스 하단 이탈 |
| 터틀 S1 청산 |
DONCHIAN CROSS_DOWN CLOSE_PRICE ↔ DC_LOWER_10 |
10일 최저가 이탈 |
| 터틀 S2 청산 |
DONCHIAN CROSS_DOWN CLOSE_PRICE ↔ DC_LOWER_20 |
20일 최저가 이탈 |
3.5 일목 — 약세 전환
| 패턴 |
DSL 예시 |
설명 |
| 전환 < 기준 |
ICHIMOKU CROSS_DOWN CONVERSION_LINE ↔ BASE_LINE |
데드크로스 |
| 구름 하향 |
ICHIMOKU CLOUD_BREAK_DOWN |
구름대 하단 이탈 |
| 구름 아래 |
ICHIMOKU BELOW_CLOUD |
약세 구간 |
| 후행 < 종가 |
ICHIMOKU LAGGING_LT_PRICE |
후행스팬 저항 |
3.6 33변곡 매도 템플릿 (AND)
3.7 손절·익절 스타일 (DSL만으로)
| 목적 |
접근 |
| 추세 추종 청산 |
Donchian / NEW_LOW 하단 이탈 |
| 과열 익절 |
RSI ≥ 70, 볼린저 상단, 이격도 ≥ 105 |
| 모멘텀 소멸 |
MACD 데드크로스, TRIX 하향 |
| 시간 청산 |
HOLD_N_DAYS는 유지 조건용 — 청산 타이머는 별도 로직 없음 |
4. 횡보(레인지) 필터링
횡보 필터는 매수·매도 진입을 막거나, 횡보 전용 역추세 전략을 만들 때 사용합니다. DSL에는 「횡보」 전용 지표 타입은 없고, 아래 조건을 AND / NOT / OR 로 조합합니다.
4.1 ADX — 추세 강도 (가장 일반적)
| 목적 |
조건 |
해석 |
| 횡보만 |
ADX LT ADX_VALUE ↔ ADX_25 (또는 HL_MID) |
ADX < 25 → 비추세 |
| 추세만 (횡보 제외) |
NOT( ADX LT ADX_25 ) 또는 ADX GTE ADX_25 |
ADX ≥ 25 |
| ADX 하락 중 |
ADX SLOPE_DOWN ADX_VALUE |
추세 강도 감소 |
Ta4j: ADXIndicator — Wilder smoothing.
적용 예 (추세 매수 + 횡보 필터):
4.2 볼린저 밴드 폭 (BWI 대체)
BWI 지표는 편집기 UI에 있으나 DSL 어댑터에서 BWI_VALUE 미해석(§7). 대신 밴드 폭을 직접 비교:
| 목적 |
조건 |
해석 |
| Squeeze (수축) |
BOLLINGER DIFF_LT UPPER_BAND ↔ LOWER_BAND, compareValue=좁은값 |
상·하단 간격 좁음 |
| Expansion (확장) |
BOLLINGER DIFF_GT UPPER_BAND ↔ LOWER_BAND, compareValue=넓은값 |
변동성 확대 |
Ta4j: BollingerBandsUpper/LowerIndicator, StandardDeviationIndicator.
4.3 MA 수렴 (MA 스프레드)
| 목적 |
조건 |
해석 |
| MA 수렴 |
MA DIFF_LT MA5 ↔ MA60, compareValue=작은값 |
단·장기 이격 좁음 |
| MA 확산 |
MA DIFF_GT MA5 ↔ MA60, compareValue=큰값 |
추세 뚜렷 |
또는 MA5 GT MA20 AND MA20 GT MA60 (정배열) vs DIFF_LT MA5 MA20 (횡보).
4.4 일목 구름대
| 목적 |
조건 |
해석 |
| 구름 안 (횡보) |
ICHIMOKU IN_CLOUD |
가격이 선행스팬 사이 |
| 구름 밖만 거래 |
NOT( ICHIMOKU IN_CLOUD ) 또는 ABOVE_CLOUD OR BELOW_CLOUD |
방향성 구간만 |
| 얇은 구름 |
ICHIMOKU DIFF_LT LEADING_SPAN1 ↔ LEADING_SPAN2, compareValue=작은값 |
선행1·2 근접 |
4.5 Donchian / NEW_HIGH·LOW 채널 폭
| 목적 |
조건 |
해석 |
| 좁은 채널 |
DONCHIAN DIFF_LT DC_UPPER_20 ↔ DC_LOWER_20, compareValue=작은값 |
20일 고저 폭 좁음 |
| 박스권 |
NEW_HIGH DIFF_LT NH_PRIOR_20 ↔ NL_PRIOR_20 (복합 비교) |
신고·신저 gap 좁음 |
4.6 오실레이터 중립대
| 목적 |
조건 |
해석 |
| RSI 중립 |
AND( RSI GTE 40, RSI LTE 60 ) — K_40, K_60 사용 |
40~60 박스 |
| Stochastic 중립 |
STOCH_K GTE/LTE ↔ HL_MID ± 범위 |
%K 50 근처 |
| CCI 중립 |
CCI DIFF_LT CCI_VALUE ↔ HL_MID, compareValue=50 |
0선 근처 |
| MACD 히스토그램 수렴 |
MACD DIFF_LT HISTOGRAM ↔ ZERO_LINE, compareValue=작은값 |
모멘텀 약함 |
4.7 DMI — 방향성 없음
| 목적 |
조건 |
해석 |
| +DI ≈ -DI |
DMI DIFF_LT PDI ↔ MDI, compareValue=작은값 |
방향 우열 없음 |
| 양 DI 모두 낮음 |
AND( PDI LT HL_UNDER, MDI LT HL_UNDER ) |
힘 없는 횡보 |
4.8 거래량·VR
| 목적 |
조건 |
해석 |
| 거래량 위축 |
VOLUME LT VOLUME_VALUE ↔ VOLUME_MA |
평균 이하 |
| VR 중립 |
VR DIFF_LT VR_VALUE ↔ NEUTRAL_100, compareValue=20 |
VR ≈ 100 |
4.9 횡보 필터 조합 템플릿
A. 추세 전략에 횡보 제외 (권장)
B. 횡보 역추세 전용 (볼린저 + RSI)
C. Squeeze 후 돌파 대기
5. 논리 조합 · TIMEFRAME · Stoch 페어
5.1 AND / OR / NOT 패턴
| 전략 유형 |
구조 |
| 보수적 진입 |
AND(추세, 모멘텀, 거래량, NOT 횡보) |
| 다중 신호 |
OR(RSI 매수, MACD 매수, MA 매수) |
| 횡보 제외 |
NOT( ADX LT 25 ) 또는 NOT( IN_CLOUD ) |
| 확인 필터 |
AND( CROSS_UP, HOLD_N_DAYS ) — 돌파 N봉 유지 |
5.2 TIMEFRAME
- START 노드 또는
TIMEFRAME 자식으로 1m, 3m, 5m, 10m, 15m, 30m, 1h, 4h, 1d, 1w, 1M 지정
- 상위 TF 추세 + 하위 TF 진입이 일반적
- 복합지표
leftCandleType / rightCandleType으로 서로 다른 분봉 비교 가능
5.3 Stoch 페어 (stochPair)
OR 루트에 Stochastic 과열/과매도와 다른 보조지표를 순차 OR로 묶는 복합 패턴 (편집기 고급 기능).
6. Ta4j 클래스 매핑 (DSL → 백엔드)
DSL indicatorType |
DB indicatorParams 키 |
주요 Ta4j 클래스 |
| MA |
SMA |
SMAIndicator |
| EMA |
SMA (period) |
EMAIndicator |
| RSI |
RSI |
RSIIndicator |
| MACD |
MACD |
MACDIndicator, EMAIndicator |
| CCI |
CCI |
CciOnSourceIndicator |
| ADX |
ADX |
ADXIndicator |
| DMI |
DMI |
PlusDIIndicator, MinusDIIndicator |
| STOCHASTIC |
Stochastic |
StochasticOscillatorKIndicator, SMAIndicator |
| WILLIAMS_R |
WilliamsPercentRange |
WilliamsRIndicator |
| TRIX |
TRIX |
3×EMAIndicator + ROC |
| OBV |
OBV |
OnBalanceVolumeIndicator |
| BOLLINGER |
BollingerBands |
BollingerBands*Indicator |
| DONCHIAN |
DonchianChannels |
DonchianChannel*Indicator |
| NEW_HIGH / NEW_LOW |
DonchianChannels |
HighestValueIndicator / LowestValueIndicator + PreviousValueIndicator |
| ICHIMOKU |
IchimokuCloud |
Ichimoku*Indicator |
| VR |
VR |
커스텀 (IndicatorService 동일) |
| DISPARITY |
Disparity |
종가/SMA 기반 |
| PSYCHOLOGICAL 계열 |
Psychological 등 |
커스텀 |
| VOLUME |
(Volume) |
VolumeIndicator, SMAIndicator |
교차·비교 Rule: CrossedUpIndicatorRule, CrossedDownIndicatorRule, OverIndicatorRule, UnderIndicatorRule, IsRisingRule, IsFallingRule.
7. 알려진 제한 · 미지원
7.1 DSL UI 있으나 어댑터 미구현 ⚠️
| 지표 |
편집기 필드 |
현상 |
BWI |
BWI_VALUE |
resolveIndicatorField에 분기 없음 → 종가로 폴백 (warn 로그) |
VOLUME_OSC |
VOLUME_OSC_VALUE |
동일 — 종가로 폴백 |
차트(IndicatorService)에서는 BollingerBandWidthIndicator, Volume EMA OSC 정상 계산. 전략 조건에는 §4.2·§4.8의 대체 조합 사용 권장.
7.2 Ta4j·차트에만 있고 DSL 없음
IndicatorController /list 기준 차트 전용 예:
WMA, HMA, VWMA, KeltnerChannels, BBPercentB, StochRSI, AwesomeOscillator, DPO, Momentum, ROC, TSI, Aroon, ParabolicSAR, Choppiness, MassIndex, ATR, MFI, ChaikinMF 등
→ 전략 DSL 팔레트에 없으면 조건으로 사용 불가.
7.3 기타 주의
| 항목 |
내용 |
| MA 기간 |
MA{n} = n봉 SMA. UI 「MA2(10일)」= MA10 |
| 워밍업 |
백테스트는 전략 최대 MA 기간 + 평가 구간(200봉)만큼 워밍업 후 평가 |
| CROSS 1봉 |
교차 조건은 해당 봉 1회만 true |
| hline |
HL_* 또는 K_{숫자} — 보조지표 설정 thresholdOverride로 전략 전용 값 가능 |
| NEW_PSYCHOLOGICAL |
복합·조건 지원, 메인 팔레트에는 없을 수 있음 — 템플릿·직접 추가 |
8. 빠른 참조 — 조건 × 지표 매트릭스
○ = INDICATOR_CONDITIONS에 포함. ◎ = 일목 전용 추가. △ = UI만 (어댑터 미구현).
| 지표 |
GT/LT/GTE/LTE |
CROSS |
SLOPE |
DIFF |
HOLD |
일목전용 |
| MA, EMA |
○ |
○ |
○ |
○ |
○ |
|
| BOLLINGER |
○ |
○ |
○ |
○ |
○ |
|
| DONCHIAN, NEW_HIGH, NEW_LOW |
○ |
○ |
○ |
○ |
○ |
|
| RSI, MACD, CCI, STOCHASTIC |
○ |
○ |
○ |
○ |
○ |
|
| ADX, DMI, TRIX, OBV, VR |
○ |
○ |
○ |
○ |
○ |
|
| DISPARITY, PSY* |
○ |
○ |
○ |
○ |
○ |
|
| VOLUME |
○ |
○ |
○ |
○ |
○ |
|
| BWI, VOLUME_OSC |
△ |
△ |
△ |
△ |
△ |
|
| ICHIMOKU |
○ |
○ |
○ |
○ |
○ |
◎ |
9. 참고 소스
| 파일 |
내용 |
frontend/src/utils/strategyTypes.ts |
지표 목록, INDICATOR_CONDITIONS, 필드 옵션 |
frontend/src/utils/strategyEditorShared.tsx |
편집기 필드·hline·기본 파라미터 |
frontend/src/utils/compositeIndicators.ts |
복합지표 2기간 교차 |
frontend/src/utils/strategyPresets.ts |
내장 매수/매도 템플릿 |
backend/.../StrategyDslToTa4jAdapter.java |
DSL → Ta4j Rule 변환 |
backend/.../IndicatorService.java |
차트 지표 계산 (Ta4j) |
문서 버전: goldenChart DSL 기준 (StrategyDslToTa4jAdapter + strategyTypes.ts 동기화)