Files
goldenChart/전략템플릿.md
T
2026-06-30 21:59:13 +09:00

383 lines
19 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 전략편집기 — 템플릿 탭 ↔ 매매 시그널 감지
전략편집기 우측 **템플릿** 탭에 나열된 각 전략을 적용했을 때 생성·저장되는 DSL이,
실제 차트·백테스트·실시간 평가에서 **어떻게 매수/매도 시그널로 판정되는지**를 정리한 문서입니다.
> **평가 원천:** `StrategyDslToTa4jAdapter` → Ta4j `Rule` → 봉 `i`에서 `rule.isSatisfied(i)`
> **관련:** [전략지표컨트롤.md](./전략지표컨트롤.md) · [매매전략조건.md](./매매전략조건.md)
---
## 1. 템플릿 탭 구조
**파일:** `StrategyEditorPage.tsx`, `strategyTemplateList.ts`, `TemplatePaletteTab.tsx`
템플릿 목록은 **4종 출처**를 하나의 리스트로 합칩니다 (`buildStrategyTemplatePaletteRows`).
| 출처 (`source`) | 배지 | 개수(기본) | 생성·적용 |
|-----------------|------|------------|-----------|
| **builtin** | (없음) | 28 | `getStrategyTemplates()` |
| **composite-palette** | 복합지표 | ~58 | 복합지표 팔레트와 동일 항목 |
| **sideways-palette** | 횡보지표 | 52 | 횡보필터 팔레트와 동일 항목 |
| **user** | 내 템플릿 | 사용자 저장 | `ui_preferences.strategyEditor.userTemplates` |
검색(`templateSearch`)은 **라벨·설명·매수/매도·배지** 문자열로 필터합니다.
---
## 2. 템플릿 적용 방식 (중요)
템플릿을 **더블클릭/적용**할 때 동작이 출처마다 다릅니다.
| 출처 | 적용 함수 | 캔버스 동작 |
|------|-----------|-------------|
| **내장 (builtin)** | `handleTemplate` | 해당 **매수 또는 매도 탭 전체를 교체** (반대 탭·고아 노드 초기화) |
| **내 템플릿 (user)** | `applyUserTemplate` | 저장된 **LogicNode 트리로 해당 탭 전체 교체** |
| **복합지표 (composite-palette)** | `applyPaletteItem` | **현재 탭 루트에 AND 병합** (기존 조건 유지 + 추가) |
| **횡보지표 (sideways-palette)** | `applySidewaysFilter` | **현재 탭 루트에 AND 병합** (필터 노드 추가) |
```text
[내장/내 템플릿 적용]
→ buyCondition 또는 sellCondition = 템플릿 루트 1개 (교체)
[복합·횡보 템플릿 적용]
→ mergeAtRoot(기존 루트, 새 노드, AND) — 다른 조건과 결합 가능
```
**전략평가 탭**에서는 `buildTemplateEvaluationPayload`가 내장/내 템플릿을 **새 평가 전략**으로 만들고, 복합·횡보는 동일 빌더로 DSL을 생성합니다.
---
## 3. 시그널 판정 공통 규칙
템플릿도 최종적으로 **LogicNode 트리**이므로, leaf `CONDITION`마다 아래 규칙이 적용됩니다.
| conditionType | 봉 `i`에서 true 조건 |
|---------------|----------------------|
| **CROSS_UP** | `left[i1] ≤ right[i1]` **且** `left[i] > right[i]` |
| **CROSS_DOWN** | `left[i1] ≥ right[i1]` **且** `left[i] < right[i]` |
| **GT / LT / GTE / LTE** | `left[i]` vs `right[i]` 수준 비교 |
| **AND** | 모든 자식 true |
| **OR** | 하나라도 true |
| **NOT** | 자식 false |
| **EXISTS_IN** (N봉) | 최근 N봉 중 core Rule **1회 이상** true |
**필터 강도:** 복합 전략(9·20 신고가, 33변곡, 안정형 등)은 기본 **`relaxed`(완화)** — ADX·거래량 등 보조 필터 **없음**이 기본값입니다. 편집기에서 **강함/보통**으로 변경 가능.
**positionMode:** 설정 → 전략 설정. `LONG_ONLY`면 BUY 후 exit(SELL) true 전까지 재진입 BUY 억제.
---
## 4. 내장 템플릿 (28종)
**출처:** `strategyPresets.ts``getStrategyTemplates(def)`
MA 기간은 설정의 `maLines[0]`, `maLines[1]` (기본 5·10일)을 사용합니다.
### 4.1 단순 템플릿 (`kind: 'simple'`) — 16종
CONDITION **1개**. `simpleTemplateToNode()`로 변환.
| 라벨 | signal | indicator | condition | left → right | 시그널 의미 |
|------|--------|-----------|-----------|--------------|-------------|
| MA 골든크로스 매수 | buy | MA | CROSS_UP | MA5 → MA10 | 단기 MA **장기 MA 상향 교차** 봉 |
| MA 데드크로스 매도 | sell | MA | CROSS_DOWN | MA5 → MA10 | 단기 MA **장기 MA 하향 교차** 봉 |
| RSI 과매도 매수 | buy | RSI | **LTE** | RSI_VALUE → OVERSOLD_30 | RSI **≤ 30** (과매도 구간 **체류**, 교차 아님) |
| RSI 과매수 매도 | sell | RSI | **GTE** | RSI_VALUE → OVERBOUGHT_70 | RSI **≥ 70** |
| MACD 상향 돌파 | buy | MACD | CROSS_UP | MACD_LINE → SIGNAL_LINE | MACD **시그널선 골든크로스** |
| MACD 하향 돌파 | sell | MACD | CROSS_DOWN | MACD_LINE → SIGNAL_LINE | MACD **데드크로스** |
| 볼린저 하단 돌파 매수 | buy | BOLLINGER | CROSS_UP | CLOSE → LOWER_BAND | 종가 **하단밴드 상향 돌파** (반등) |
| 볼린저 상단 돌파 매도 | sell | BOLLINGER | CROSS_UP | CLOSE → UPPER_BAND | 종가 **상단밴드 상향 돌파** (과열 이탈) |
| CCI 과매도 반등 | buy | CCI | CROSS_UP | CCI_VALUE → OVERSOLD_NEG100 | CCI **100선 상향 돌파** |
| 심리도 과매도 반등 매수 | buy | PSY | CROSS_UP | PSY_VALUE → OVERSOLD_25 | 심리도 **25선 상향 돌파** |
| 스토캐스틱 골든크로스 | buy | STOCH | CROSS_UP | STOCH_K → STOCH_D | %K **%D 상향 교차** |
| ADX 중앙선 상향 돌파 | buy | ADX | CROSS_UP | ADX_VALUE → ADX_25 | ADX **25선 상향 돌파** |
| 9일 신고가 돌파 | buy | NEW_HIGH | CROSS_UP | CLOSE → NH_PRIOR_9 | 종가 **직전 9봉 최고가** 교차 |
| 20일 신고가 돌파 | buy | NEW_HIGH | CROSS_UP | CLOSE → NH_PRIOR_20 | 종가 **직전 20봉 최고가** 교차 |
| 9일 신저가 이탈 | sell | NEW_LOW | CROSS_DOWN | CLOSE → NL_PRIOR_9 | 종가 **직전 9봉 최저가** 하향 교차 |
| 20일 신저가 이탈 | sell | NEW_LOW | CROSS_DOWN | CLOSE → NL_PRIOR_20 | 종가 **직전 20봉 최저가** 하향 교차 |
**NH_PRIOR_n / NL_PRIOR_n:** `max(high[tn..t1])` / `min(low[tn..t1])`**현재 봉 high/low 미포함**.
### 4.2 복합 내장 템플릿 (`kind: 'composite'`) — 12종
`build()` 함수가 **AND/OR LogicNode**를 반환. 적용 시 **해당 탭 전체**가 이 트리로 교체됩니다.
#### 4.2.1 9·20일 신고/신저가
| 라벨 | signal | 트리 | 기본(relaxed) 시그널 |
|------|--------|------|----------------------|
| 9·20일 신고가 매수 | buy | `AND` | `CLOSE CROSS_UP NH_PRIOR_20` **만** |
| 9·20일 신저가 매도 | sell | `AND` | `CLOSE CROSS_DOWN NL_PRIOR_20` **만** |
**필터 강도별 추가 leaf (편집기에서 변경 가능):**
| 강도 | 매수 추가 | 매도 추가 |
|------|-----------|-----------|
| **strict** | 9일 CROSS + ADX≥25 + 거래량>MA + 고가≥20일선 | ADX≥20 + 거래량>MA |
| **balanced** | ADX≥18 | ADX≥15 |
| **relaxed** | (없음) | (없음) |
#### 4.2.2 33변곡
| 라벨 | signal | 트리 | 기본(relaxed) 시그널 |
|------|--------|------|----------------------|
| 33변곡 매수 | buy | `AND` | EMA33 **1봉 SLOPE_UP** + CLOSE **CROSS_UP** CLOSE_MAX_33 |
| 33변곡 매도 | sell | `OR` | CLOSE **CROSS_DOWN** CLOSE_MIN_33 **만** (EMA 분기 생략) |
**balanced/strict** 시 매수: EMA 2봉 변곡, 종가>EMA33, ADX·거래량 필터 추가.
**매도 strict/balanced:** EMA 하락+종가<EMA33 **OR** 채널 이탈.
#### 4.2.3 돈천·터틀·일목 (Donchian / Ichimoku)
| 라벨 | signal | DSL 핵심 | 시그널 |
|------|--------|----------|--------|
| 돈천 채널(20일) 매수 | buy | DONCHIAN CROSS_UP CLOSE → DC_UPPER_20 | 20일 채널 **상단** 돌파 |
| 돈천 채널(20일) 매도 | sell | DONCHIAN CROSS_DOWN CLOSE → DC_LOWER_20 | 20일 채널 **하단** 이탈 |
| 터틀 S1 매수 | buy | DC_UPPER_**20** CROSS_UP | 20일 **최고가** 돌파 진입 |
| 터틀 S1 청산 | sell | DC_LOWER_**10** CROSS_DOWN | 10일 **최저가** 이탈 청산 |
| 터틀 S2 매수 | buy | DC_UPPER_**55** CROSS_UP | 55일 최고가 돌파 |
| 터틀 S2 청산 | sell | DC_LOWER_**20** CROSS_DOWN | 20일 최저가 이탈 |
| 일목 전환/기준선 매수 | buy | ICHIMOKU CROSS_UP CONVERSION → BASE | **전환·기준 골든크로스** |
| 일목 전환/기준선 매도 | sell | ICHIMOKU CROSS_DOWN CONVERSION → BASE | **데드크로스** |
> **참고:** 터틀 S1 매수 = 돈천 20일 매수와 **동일 DSL**. S1 청산만 10일 하단으로 다름.
---
## 5. 복합지표 템플릿 (~58종, 배지「복합지표」)
**출처:** `buildCompositePaletteTemplateRows``DEFAULT_COMPOSITE_ITEMS` (`strategyPaletteStorage.ts`)
지표 탭 **복합** 서브탭과 **동일 항목**이 템플릿 탭에도 노출됩니다.
적용 시 **현재 탭 조건에 AND 병합** (`applyPaletteItem`).
### 5.1 Stoch 과열×보조 (1종)
| 라벨 | signal | 트리 | 시그널 |
|------|--------|------|--------|
| Stoch 과열×보조 | buy | `OR` | `(Stoch≥80 ∧ 보조 CROSS_UP 중앙) (보조≥중앙 ∧ Stoch CROSS_UP 80)` |
기본 보조: **CCI**. 편집기에서 RSI·ADX 등 변경 가능.
### 5.2 9·20 신고/신저 · 33변곡 · 일목×BB (6종)
내장 §4.2와 **동일 빌더**. 템플릿 탭에서는 **추가(병합)** 방식만 다름.
| 항목 | 빌더 | 기본 시그널 요약 |
|------|------|------------------|
| 9·20일 신고가 매수 | `buildNewHigh920BuyTree` | 20일 신고가 CROSS + (필터) |
| 9·20일 신저가 매도 | `buildNewLow920SellTree` | 20일 신저가 CROSS + (필터) |
| 33변곡 매수/매도 | `buildInflection33Tree` | EMA33 변곡 + 33봉 종가 채널 |
| 일목×BB 매수 | `buildIchimokuBbBuyTree` | **26봉 전** 후행 vs **26봉 전** BB **상한** CROSS_UP |
| 일목×BB 매도 | `buildIchimokuBbSellTree` | **26봉 전** 후행 vs **26봉 전** BB **하한** CROSS_DOWN |
### 5.3 일목 상황별 (23종)
**빌더:** `ichimokuSituationStrategy.ts``BUILDERS[situationId][mode]`
| ID | 라벨(요) | signal | 논리 | leaf 조건 (동일 봉 AND/OR) |
|----|----------|--------|------|---------------------------|
| GOLDEN_CROSS | 골든크로스 매수 | buy | AND | 전환 **CROSS_UP** 기준 |
| BASE_BREAKUP | 기준선 돌파 매수 | buy | AND | 종가 **CROSS_UP** 기준선 |
| CLOUD_BREAKUP | 구름 돌파 매수 | buy | AND | **CLOUD_BREAK_UP** |
| LAGGING_BULL | 후행 호전 매수 | buy | AND | 후행 **>** 26봉 전 종가 |
| CLOUD_SUPPORT | 구름 지지 매수 | buy | AND | 종가>선행1 **且** 종가>기준선 |
| HOJEON | 호전(정배열) 매수 | buy | AND | 전환>기준 + 구름 위 + 양운 + 후행>종가 |
| DEAD_CROSS | 데드크로스 매도 | sell | OR | 전환 **CROSS_DOWN** 기준 |
| BASE_BREAKDOWN | 기준선 이탈 매도 | sell | OR | 종가 **CROSS_DOWN** 기준선 |
| CLOUD_BREAKDOWN | 구름 이탈 매도 | sell | OR | **CLOUD_BREAK_DOWN** |
| LAGGING_BEAR | 후행 역전 매도 | sell | OR | 후행 **<** 26봉 전 종가 |
| CLOUD_RESISTANCE | 구름 저항 매도 | sell | AND | 종가<선행1 **且** 종가<기준선 |
| SANYAKU_REVERSE | 삼역역전 매도 | sell | AND | 전환<기준 + 구름 아래 + 후행 역전 |
| GYEOKJEON | 역전(역배열) 매도 | sell | AND | 전환<기준 + 구름 아래 + 음운 + 후행 역전 |
| EW1 | 1파 매수 | buy | AND | 종가>기준 CROSS + 전환>기준 |
| EW2 | 2파 매수/손절 | buy/sell | AND/OR | 매수: 기준·선행2 지지+전환>기준 / 매도: 기준 이탈 OR 구름 이탈 |
| EW3 | 3파 매수 | buy | AND | 전환>기준 + 구름 위 + 후행 + 양운 |
| EW4 | 4파 재매수/익절 | buy/sell | AND/OR | 매수: 선행1·전환 지지 / 매도: 기준·구름 이탈 |
| EW5 | 5파 분할매도 | sell | OR | 종가<전환 OR 데드 OR 구름 이탈 |
| EW_A | A파 매도 | sell | OR | 기준·데드 이탈 |
| EW_B | B파 매도 | sell | AND | 기준 아래 + 구름 아래 + 전환<기준 |
| EW_C | C파 매도 | sell | AND | 구름 이탈 + 구름 아래 + 전환<기준 + 후행 역전 |
### 5.4 추천 안정형 (18종)
**빌더:** `stableStrategyPairs.ts` — 기본 필터 **`relaxed`**
| strategyId | 매수 핵심 | 매도 핵심 | relaxed 시그널 |
|------------|-----------|-----------|----------------|
| **TURTLE_S1** | DC_UPPER_20 CROSS_UP | DC_LOWER_10 CROSS_DOWN | §4.2.3과 동일 |
| **TURTLE_S2** | DC_UPPER_55 CROSS_UP | DC_LOWER_20 CROSS_DOWN | 장기 터틀 |
| **DONCHIAN_20** | DC_UPPER_20 CROSS_UP | DC_LOWER_20 CROSS_DOWN | 20일 채널 |
| **MA_TREND** | MA20 CROSS_UP MA60 | MA20 CROSS_DOWN MA60 **OR** 종가<MA20 | 이평 추세 |
| **ICHIMOKU_TREND** | 전환/기준 CROSS_UP | CROSS_DOWN **OR** 구름 아래(balanced+) | 일목 추세 |
| **ICHIMOKU_SANYAKU** | 구름 돌파 + (종가>전환 등) | 전환/기준/구름 **하향 CROSS** OR | 삼역호전 |
| **ICHIMOKU_PERFECT** | 전환>기준 + 구름 위 | 전환<기준 + 구름 아래 | 5원소(양운·후행은 strict) |
| **MACD_MOMENTUM** | MACD CROSS_UP | MACD CROSS_DOWN **OR** 종가<EMA60 | 모멘텀 |
| **BOLLINGER_RANGE** | RSI≤30 + ADX약 + 하단밴드 CROSS_UP | RSI≥70 **OR** 상단밴드 CROSS_UP | 박스권 |
**필터 강도 (strict/balanced) 추가 예:**
| 전략 | strict 추가 |
|------|-------------|
| TURTLE / DONCHIAN 매수 | ADX≥25 + 거래량>MA |
| MA_TREND 매수 | ADX≥25 + 거래량>MA |
| ICHIMOKU_SANYAKU 매수 | EXISTS_IN 윈도우(12~26봉) + MA60·거래량 |
| MACD_MOMENTUM 매수 | EMA60 위 + ADX·거래량 |
### 5.5 동일 지표 2기간 교차 (10종)
**적용:** `makeNode(..., { composite: true })` — 현재 **매수/매도 탭**에 따라 `CROSS_UP` / `CROSS_DOWN`.
| 칩 | left → right (기본 기간) | 시그널 |
|----|--------------------------|--------|
| 돈치안 | DC_UPPER_9 CROSS DC_UPPER_20 | **단기 채널상단**이 **장기 상단** 돌파 |
| RSI | RSI_VALUE_9 CROSS RSI_VALUE_18 | 단기 RSI **장기** RSI 교차 |
| CCI | CCI_VALUE_9 CROSS CCI_VALUE_26 | 동일 패턴 |
| ADX | ADX_VALUE_14 CROSS ADX_VALUE_28 | 동일 |
| Williams %R | WILLIAMS_R 14 vs 28 | 동일 |
| TRIX | TRIX 12 vs 24 | 동일 |
| VR | VR 26 vs 52 | 동일 |
| 심리도 / 투자심리도 | 설정 기간 ×2 | 동일 |
| 이격도 | dispShort vs dispMid | 동일 |
기간은 **보조지표 설정**(`DefType`)에서 상속.
---
## 6. 횡보지표 템플릿 (52종, 배지「횡보지표」)
**출처:** `buildSidewaysPaletteTemplateRows``DEFAULT_SIDEWAYS_FILTER_ITEMS`
적용: `buildSidewaysFilterLogic(templateId, mode, def)`**현재 탭에 AND 병합**.
| mode | LogicNode | 시그널 해석 |
|------|-----------|-------------|
| **include** | 필터 leaf 그대로 | **횡보일 때** true — 횡보 구간 **포함** 필터 |
| **exclude** | `NOT(필터 leaf)` | **추세일 때** true — 횡보 **제외** |
**템플릿 탭 signal 표시:** include → **buy**, exclude → **sell** (UI 라벨용; 실제로는 **필터 노드**이며 단독 매매 시그널이 아님).
### 6.1 카테고리별 시그널 조건
| 카테고리 | 대표 템플릿 | true = 횡보(include) |
|----------|-------------|----------------------|
| **ADX** | ADX < 25 | ADX **< 25** (비추세) |
| | ADX ≥ 25 (exclude) | 추세 — NOT으로 **횡보 제외** |
| **볼린저** | BB 수축 | 상·하단 간격 **DIFF_LT** (Squeeze) |
| | 종가 ≈ 중심 | 종가 **≈** MIDDLE_BAND |
| **MA** | MA5≈MA20 | MA 스프레드 **DIFF_LT** |
| **일목** | 구름 안 | **IN_CLOUD** |
| **Donchian** | 9/20일 채널 좁음 | DC_UPPER DC_LOWER **DIFF_LT** |
| **오실레이터** | RSI 40~60 | RSI **GTE 40 ∧ LTE 60** |
| **cycle** | Stoch 20봉 침체 | **LOWEST_LTE** %K ≤ 20 (lookback 20) |
| **DMI** | +DI ≈ DI | PDIMDI **DIFF_LT** |
| **volume** | 거래량 < MA | VOLUME **LT** VOLUME_MA |
| **combo** | ADX+구름+RSI | 위 조건 **AND** (3중 횡보) |
**실전 조합 예:**
```text
매수 = AND( MA 골든크로스, NOT「ADX<25」 ) ← exclude ADX≥25 = 추세에서만 매수
매수 = AND( RSI 과매도, 「RSI 40~60」 ) ← include = 횡보 확인 (드묾)
```
전체 52항목 ID·설명은 `sidewaysFilterPalette.ts` `DEFAULT_SIDEWAYS_FILTER_ITEMS` 참고.
---
## 7. 내 템플릿 (사용자 저장)
**저장:** 현재 **매수 또는 매도** 탭의 `EditorConditionState` + `orphans` 스냅샷.
| 필드 | 의미 |
|------|------|
| `signal` | buy / sell — 적용 시 **해당 탭만** 채움 |
| `editorState.root` | LogicNode 트리 |
| `orphans` | 캔버스 고아 노드 |
**시그널:** 저장 시점 DSL 그대로 `StrategyDslToTa4jAdapter` 평가.
내용은 사용자가 만든 **AND/OR/CONDITION** 조합이므로, leaf별로 §3 공통 규칙 적용.
**적용:** 반대 탭·고아 초기화 후 **전체 교체** (`applyUserTemplate`).
---
## 8. 내장 vs 복합지표 중복
다음 항목은 **내장 템플릿**과 **복합지표 템플릿**에 **둘 다** 나타날 수 있습니다.
| 항목 | 차이 |
|------|------|
| 9·20 신고/신저, 33변곡, 터틀, 돈천, 일목 전환/기준 | **DSL 동일** |
| 적용 방식 | 내장 = **탭 교체** / 복합 = **AND 추가** |
숨김: 템플릿 삭제 → `hiddenBuiltinTemplateIds`에 key 저장 (복원 가능).
---
## 9. 차트까지의 평가 경로
```text
[템플릿 적용]
buyConditionJson / sellConditionJson (전략 저장)
StrategyDslToTa4jAdapter.toRule(buy) / toRule(sell)
BacktestingService · StrategyEvaluationChart · LiveConditionStatusService
isSatisfied(i) === true → 봉 i에 BUY/SELL 마커
```
| 기능 | 템플릿 사용처 |
|------|---------------|
| **전략편집기** | 템플릿 탭 적용 → 편집 후 전략 저장 |
| **전략평가** | 템플릿 선택 → `[템플릿] {라벨}` 임시 전략 생성 |
| **실시간** | 저장된 전략 DSL → 분봉 마감 시 TriggerBranch 평가 |
---
## 10. 템플릿별 시그널 빠른 참조
| 템플릿 유형 | 대표 예 | 한 줄 시그널 |
|-------------|---------|--------------|
| 단순 내장 | MA 골든크로스 | 이평 **교차** 1봉 |
| 단순 내장 | RSI 과매도 | RSI **≤30** 수준 |
| 단순 내장 | 20일 신고가 | **직전 20봉 고가** CROSS_UP |
| 복합 내장 | 9·20 신고가 | 20일 CROSS + (선택 필터) AND |
| 복합 내장 | 터틀 S1 | 20일 돌파 매수 / 10일 이탈 매도 |
| 복합지표 | Stoch×CCI | 과열+보조 **OR** 조합 |
| 복합지표 | 일목 EW3 | 4~5 일목 leaf **AND** |
| 복합지표 | MA 추세 | MA20/60 + (ADX) |
| 복합지표 | RSI 2기간 | RSI 단기 **장기** CROSS |
| 횡보 | ADX<25 include | **횡보 필터** (타 조건과 AND) |
| 횡보 | ADX≥25 exclude | **추세만** 통과 NOT |
| 내 템플릿 | (사용자) | 저장 DSL 그대로 |
---
## 11. 코드 인덱스
| 영역 | 경로 |
|------|------|
| 템플릿 목록 병합 | `frontend/src/utils/strategyTemplateList.ts` |
| 내장 28종 정의 | `frontend/src/utils/strategyPresets.ts` |
| 복합·횡보 행 변환 | `frontend/src/utils/strategyEditorTemplatePaletteRows.ts` |
| 템플릿 UI | `frontend/src/components/strategyEditor/TemplatePaletteTab.tsx` |
| 적용 (편집기) | `frontend/src/components/StrategyEditorPage.tsx``handleTemplateApply` |
| 적용 (전략평가) | `frontend/src/utils/strategyEvaluationTemplateApply.ts` |
| 9·20 / 33변곡 | `priceExtremeBreakoutPair.ts`, `inflection33Strategy.ts` |
| Stoch×보조 | `stochOverboughtPair.ts` |
| 일목×BB | `ichimokuBbStrategy.ts` |
| 일목 23상황 | `ichimokuSituationStrategy.ts` |
| 안정형 18 | `stableStrategyPairs.ts` |
| 2기간 교차 | `compositeIndicators.ts` |
| 횡보 52 | `sidewaysFilterPalette.ts` |
| 사용자 템플릿 | `strategyTemplateStorage.ts` |
| Rule 변환 | `backend/.../StrategyDslToTa4jAdapter.java` |
---
*문서 버전: 2026-06 — goldenChart 전략편집기 템플릿 탭·strategyPresets 기준*