전체 리뷰 – TrendPullback ATR Pro
봇 이름: UltimateActivationAwareBot – TrendPullback ATR Pro
주요 시장: US500 (S&P 500 지수 CFD)
참고 레버리지: 1:500
스타일: 깊은 되돌림과 고급 위험/포지션 관리를 포함한 추세 추종.
이 cBot 조정에 도움이 필요하거나 브로커, 심볼 또는 시간대에 맞춘 맞춤 최적화 아이디어가 필요하신가요?
1. 핵심 아이디어
TrendPullback ATR Pro는 다중 필터 추세-되돌림 시스템으로 설계되었습니다:
- 구조적 추세에 따라 거래 (반대가 아니라),
- 충동적인 캔들을 쫓기보다는 의미 있는 되돌림을 기다리고,
- ATR을 사용하여 변동성 변화에 적응하며,
- RSI를 사용하여 과도한 극단 상태를 피합니다.
논리:
- EMA(20/50/200)를 통한 추세 구조
-
- 롱: 가격이 EMA200 위에 있고 EMA20 > EMA50 > EMA200
- 숏: 가격이 EMA200 아래에 있고 EMA20 < EMA50 < EMA200
- ADX + DI+/DI−를 통한 모멘텀 확인
-
- ADX가 최소 임계값 이상 (평탄한 구간 없음),
- DI+/DI−가 거래 방향과 일치.
- ATR로 측정된 되돌림 깊이
-
- 가격은 최소한
PullbackAtrK × ATR만큼 EMA20 쪽으로 되돌아와야 합니다. - 이것은 작은 잡음성 하락을 걸러냅니다.
- 가격은 최소한
- “건강” 필터로서의 RSI
-
- 정규화 없이 극단적인 과매수/과매도 구간에서 진입을 피합니다.
- 진입 트리거
-
- EMA20 위/아래로의 교차,
- 또는 이전 봉의 돌파/하락.
🔎 중요 참고 사항:
최적화 및 검증은 주로 1:500 레버리지의 US500에서 수행되었습니다.
US500과 같은 주가지수에서 견고한 결과를 얻는 것은 금(XAUUSD)보다 훨씬 어렵습니다. 금은 일반적으로 최적화가 쉽고 과적합되기 쉽습니다.
따라서 이 봇은 “금 전용” 환경뿐 아니라 지수를 주요 테스트베드로 하여 조정되었습니다.
2. 실용적 사용법 및 작업 흐름
1단계 – 항상 데모에서 시작
- US500 M30 또는 H1로 시작하세요.
- 거래당 RiskPerc ≈ 0.25–0.50%를 사용하세요.
- 백테스트에서 최소 3–6개월의 과거 데이터를 목표로 하고, 이후 데모 포워드 테스트를 진행하세요.
2단계 – 블록 단위로 최적화
한 번에 모든 것을 조정하지 마세요. 단계별로 작업하세요:
- 레짐 및 추세 필터 (EMA, ADX, ATR 백분위)
봇이 명백한 횡보 구간을 피하도록 하세요. - 진입 논리 (되돌림 + 트리거)
진입이 무작위가 아니라 진정한 되돌림 후에 이루어지는지 검증하세요. - 거래 관리 (SL/TP, 부분 청산, BE, 트레일링, 공격적 모드)
순이익뿐 아니라 R-배수 및 최대 낙폭 프로필에 집중하세요.
3단계 – US500 대 금 대 기타 자산
- US500의 경우, 테스트할 일반적인 시작 범위:
-
- AtrSLmult: 1.8–2.5
- AtrTPmult: 2.5–3.5
- PullbackAtrK: 0.20–0.35
- RiskPerc: 0.25–0.5
- 금 (XAUUSD)의 경우:
-
- 원칙적으로 동일한 논리가 작동하지만,
- ATR과 핍 스케일이 매우 다릅니다.
→ 항상 각 상품별 별도 최적화를 수행하세요.
4단계 – 공격적 모드
- AggressiveMode = true:
-
- 부분 TP를 비활성화하고,
TrailStartR × R이후에만 트레일링을 활성화합니다.
- 적합한 경우:
-
- 최대 수익을 노리는 경우,
- 주식 변동성에 익숙한 트레이더.
- 권장하지 않는 경우:
-
- 낙폭을 싫어하는 경우,
- 이미 높은 레버리지/높은 위험을 감수하는 경우.
3. 매개변수 분해 및 사용 팁
3.1. 기본, 일수 및 세션
- 라벨
이 봇의 모든 포지션에 대한 그룹 라벨; 동일 심볼에서 여러 시스템을 운영할 때 유용합니다. - SignalTF
신호 및 지표를 구동하는 시간대.
권장: US500의 M30 또는 H1. - AllowLong / AllowShort
백테스트에서 강한 비대칭성이 나타나면 한 쪽을 비활성화할 수 있습니다 (예: 지수에서 롱 전용). - OneTradePerBar
True = 더 깔끔한 동작, 한 봉에 여러 중첩 진입을 방지합니다. - 일 및 세션 필터
-
- 원하는 요일만 활성화하세요 (월~금).
- 세션 시작/종료 = 일중 시간대 (서버 시간).
- 유동성이 낮거나 야간 구간을 피하는 데 유용합니다.
- MaxSpreadPips
FX에 더 관련 있지만, 지수에도 최대 스프레드 제한을 두는 것이 안전합니다.
3.2. 거래량 / 위험 관리
- UseRiskPositionSizing = true
권장: 봇이 핍 단위 SL과 계좌 잔액을 사용해 포지션 크기를 계산합니다. - RiskPerc
-
- 보수적: 0.25%
- 표준: 0.50%
1:500 레버리지에서 1% 이상은 매우 공격적일 수 있습니다.
- FixedVolumeUnits
UseRiskPositionSizing = false일 때만 사용됩니다.
빠른 테스트에 좋지만, 위험 기반 크기 조정보다 장기적으로 덜 견고합니다.
3.3. SL/TP: ATR 기반 대 고정 핍
- UseAtrStops = true
ATR SL/TP는 변동성에 적응하며, 동일한 설정이 다양한 변동성 구간에서 작동합니다. - AtrSLmult / AtrTPmult
-
- 2×ATR SL은 “적당한 여유를 주되 과하지 않은” 고전적인 수준입니다.
- 3×ATR TP는 순수 SL/TP 사용 시 약 1.5R를 제공합니다.
부분 청산 및 트레일링과 결합하면 더 세밀한 조정이 가능합니다.
- UsePipsStops
활성화하면 핍 기반 SL/TP가 ATR을 대체합니다.
핍 값을 알고 고정 숫자 스톱을 원할 때만 사용하세요. - SlLongPips / TpLongPips – 롱 전용
- SlShortPips / TpShortPips – 숏 전용
테스트에서 비대칭성이 나타날 경우 이 분리는 매우 유용합니다 (예: 지수는 공황 숏과 점진적 롱에서 다르게 행동하는 경우가 많음).
3.4. ATR 트레일링 스톱 (롱 대 숏)
- UseAtrTrailLong / AtrTrailLongMult
- UseAtrTrailShort / AtrTrailShortMult
다음이 가능합니다:
- 롱에만 또는 숏에만 ATR 트레일링 활성화,
- 다른 배수를 사용: 예를 들어, 숏이 빠르게 반등하는 경향이 있으면 더 타이트한 트레일링.
배수 논리:
- 1.0–1.5 → 타이트한 트레일링; 빠르게 보호하지만 수익을 일찍 자릅니다.
- 2.0–3.0 → 느슨한 트레일링; 거래에 숨 쉴 공간을 주지만 더 깊은 되돌림을 허용합니다.
공격적 모드에서는 이익이 TrailStartR × R를 초과할 때만 트레일링이 시작됩니다.
3.5. 부분 TP 및 시간 기반 종료
- PartialAtR
부분 청산 전 이익 R 배수.
1.0은 일반적인 선택: 1R에서 일부 이익을 고정하고 나머지는 계속 진행. - PartialPercent
30–60%가 보통 좋은 범위이며, 50%가 기본값입니다. - MaxBarsInTrade
거래를 유지할 최대 신호 봉 수. -
- 0 = 비활성화.
- M30 기준 50봉 ≈ 며칠; 거래가 무한정 지속되는 것을 방지하는 “타임아웃”으로 사용 가능.
3.6. 손익분기점(BE) 각 측면별 (롱 / 숏)
- UseBreakEven, UseBreakEvenLong, UseBreakEvenShort
BE 로직에 대한 마스터 및 각 측면별 토글. - BeLongTriggerPips / BeShortTriggerPips
SL을 BE로 이동하기 전에 필요한 이익(핍 단위). -
- 너무 낮으면 → 계속 BE에서 정지됩니다.
- 너무 높으면 → BE의 심리적 가치가 적습니다.
- BeLongOffsetPips / BeShortOffsetPips
작은 양의 양수 오프셋은 스프레드 + 수수료를 커버하는 데 도움이 됩니다 (예: 1–2 핍).
3.7. 공격적 모드
- AggressiveMode
-
- 부분 TP를 비활성화하고,
TrailStartR × R이후에만 트레일링을 활성화합니다.
- TrailStartR
예: 1.5 또는 2.0
거래가 1.5R/2R 이익을 낼 때만 트레일링 SL이 가격을 따라가기 시작합니다.
이 모드는 더 방향성 있고 확신이 높은 환경이나 거래당 기본 위험을 낮출 때 사용하세요.
3.8. 레짐 필터
- UseEmaTrend, EmaFastPeriod, EmaMidPeriod, EmaSlowPeriod
EMA 스택이 추세 레짐을 정의합니다. 이를 끄면 시스템이 더 “항상 켜짐” 상태가 되고 일반적으로 더 시끄러워집니다. - UseAdx, AdxPeriod, AdxMin
ADX는 낮은 추세 구간을 필터링합니다.
일반적인 ADXMin: 18–20 이상. - UseRsi, RsiPeriod, RsiOB, RsiOS
RSI는 이미 극단적인 수준에 도달한 움직임에서 진입을 방지합니다.
봇은 또한 RSI 기울기(이전 봉 대비 개선)를 확인합니다. - PullbackAtrK
ATR 단위로 EMA20 대비 최소 되돌림 깊이.
값이 높을수록 되돌림은 적지만 더 깊습니다.
3.9. 변동성 및 압축 후 필터
- UseAtrPct, AtrPctLookback, AtrPctMin
현재 ATR이 최근 이력의 특정 백분위 이상일 때만 거래하도록 사용합니다.
예: AtrPctMin = 0.6 → 하위 40%의 조용한 변동성 구간 무시. - UsePostSqueeze, BbPeriod, SqueezePct, ExpansionPct
고전적인 “볼린저 밴드 압축 후 확장” 논리: -
- 먼저 변동성 압축(압착),
- 그 다음 확장, 이후 봇이 거래를 허용합니다.
3.10. 텔레메트리
- WriteCsv, CsvPath
true이면 봇이 상태를 CSV로 기록합니다 (자본, 일일 손익, 연속 손실 등).
특히 여러 시작 날짜에서 견고성을 테스트하는 롤링 시작 분석과 결합하면 Excel/Python 외부 분석에 완벽합니다.
5 | 100 % | |
4 | 0 % | |
3 | 0 % | |
2 | 0 % | |
1 | 0 % |