개요
지능형 거래 결정 모듈은 구성 가능한 규칙에 따라 포지션을 자동으로 종료하는 고급 거래 관리 시스템으로, 거래소 수준의 스탑로스(SL) 또는 테이크 프로핏(TP) 주문에 의존하지 않습니다. 대신, 거래를 지속적으로 모니터링하고 다음을 기반으로 지능적인 종료 결정을 내립니다:
- 캔들 패턴 반전 (모멘텀 변화)
- 시간 기반 임계값 규칙 (동적 스탑로스)
- 테이크 프로핏 배수 규칙 (단계적 수익 실현)
- 글로벌 안전 제한 (긴급 종료)
구성 구조
1. 주요 설정 (IntelligentRuleOptions)
IntelligentRuleOptions:
IsEnabled: true # 지능형 종료를 위한 마스터 스위치
UseOriginalTPAsBase: false # 향후 사용을 위해 예약됨
EnableAdaptiveThresholds: false # 향후 사용을 위해 예약됨
MinimumHoldTime: 1 # 모든 종료 전 최소 유지 시간(분) (조기 종료 방지)
MaximumBuyHoldTime: 20 # 롱 포지션 강제 종료 시간(분)
MaximumSellHoldTime: 10 # 숏 포지션 강제 종료 시간(분)
주요 매개변수:
IsEnabled: 모든 지능형 규칙을 비활성화하고 거래소 SL/TP에 의존하려면false로 설정MinimumHoldTime: 노이즈로부터 보호 - 규칙이 활성화되기 전에 거래가 이 시간(분) 동안 유지되어야 함MaximumBuyHoldTime/MaximumSellHoldTime: 최종 안전 장치 - 수익/손실에 관계없이 종료 강제
2. 캔들 기반 종료 규칙 (모멘텀 반전 감지)
CandleExitRules:
IsEnabled: false # 캔들 패턴 종료 활성화
OppositesCandlesCount: 2 # 종료를 유발하는 연속적인 반대 캔들 수
ExitPercentage: 100 # 종료 비율 (100 = 전체 종료, 50 = 부분 종료)
RuleName: "모멘텀 반전 종료"
RequireMinimumProfit: null # 선택 사항: 수익이 이 % 이상일 때만 종료 (예: 2.0)
작동 방식:
- 롱 거래:
OppositesCandlesCount연속적인 빨간 캔들이 나타나면 종료 - 숏 거래:
OppositesCandlesCount연속적인 초록 캔들이 나타나면 종료 - 사용 사례: 손실로 전환되기 전에 빠른 모멘텀 반전을 포착
예시:
# 롱 포지션에서 3연속 빨간 캔들 후 50% 종료
CandleExitRules:
IsEnabled: true
OppositesCandlesCount: 3
ExitPercentage: 50
RequireMinimumProfit: 1.5 # 이미 1.5% 이상 수익일 때만 트리거
3. 임계값 규칙 (시간 기반 스탑로스 및 수익 보호)
임계값 규칙은 특정 시간 간격에서 활성화되며, 수익/손실이 임계값을 초과하면 거래를 종료합니다.
롱 거래 임계값
LongTrade:
ThresholdRules:
- Minutes: 30 # 30분 후
ThresholdPer: -80.0 # 손실 >= 80%일 경우 종료 (스탑로스)
RuleName: "빠른 스탑로스 - 롱"
- Minutes: 360 # 6시간 후
ThresholdPer: -60.0 # 손실 >= 60%일 경우 종료 (더 엄격한 SL)
RuleName: "확장 스탑로스 - 롱"
- Minutes: 720 # 12시간 후
ThresholdPer: -50.0 # 손실 >= 50%일 경우 종료 (수익 보호)
RuleName: "수익 보호 - 롱"
숏 거래 임계값
ShortTrade:
ThresholdRules:
- Minutes: 15
ThresholdPer: -30.0 # 숏에 더 엄격한 SL (더 변동성 큼)
RuleName: "빠른 스탑로스 - 숏"
- Minutes: 60
ThresholdPer: -20.0
RuleName: "엄격한 스탑로스 - 숏"
- Minutes: 180
ThresholdPer: -15.0
RuleName: "수익 보호 - 숏"
해석:
- 음수 값 = 스탑로스 보호 (수익이 임계값 아래로 떨어지면 종료)
- 양수 값 = 수익 고정 (수익이 임계값으로 되돌아가면 종료)
- 규칙은 누적적입니다 - 각 간격에서 적용 가능한 모든 규칙이 확인됩니다
4. 테이크 프로핏 규칙 (단계적 수익 실현)
테이크 프로핏 규칙은 수익 마일스톤에 도달하면 포지션의 일부를 판매하며, 이는 원래 TP 목표의 배수를 기반으로 합니다.
LongTrade:
TakeProfitRules:
- TpMultiplier: 0.2 # 원래 TP의 20%에서 (예: 10% TP → 2%에서 트리거)
SellPer: 100 # 포지션 100% 판매
RuleName: "10% 목표 - 롱"
IsEnabled: true
UseMarketOrder: true
다중 TP 레벨 예시:
# 원래 TP 목표가 10%라고 가정
TakeProfitRules:
- TpMultiplier: 0.5 # 5% 수익에서 트리거 (0.5 × 10%)
SellPer: 25 # 포지션의 25% 판매
IsEnabled: true
- TpMultiplier: 1.0 # 10% 수익에서 트리거 (1.0 × 10%)
SellPer: 30 # 추가 30% 판매 (총 55% 판매)
IsEnabled: true
- TpMultiplier: 2.0 # 20% 수익에서 트리거
SellPer: 25 # 추가 25% 판매 (총 80% 판매)
IsEnabled: true
- TpMultiplier: 5.0 # 50% 수익에서 트리거
SellPer: 20 # 나머지 20% 판매 (완전 종료)
IsEnabled: true
주요 기능:
- 누적 추적: 시스템은 판매된 양을 기억합니다 (
tp_sold_cumulative) - 중복 방지: 각 TP 레벨은 한 번만 실행됩니다
- 잔여 수량: 항상 남은 포지션을 기준으로 판매, 원래 포지션이 아님
5. 글로벌 안전 설정
IntelligentGlobalSettings:
MinProfitToEnableTP: 0.0 # TP 규칙이 활성화되기 전 최소 수익 %
MaxLossBeforeForceClose: -30.0 # 비상: 손실이 이 값을 초과하면 강제 종료
매개변수:
MinProfitToEnableTP: 변동성이 큰 시장에서 TP 규칙 활성화를 방지MaxLossBeforeForceClose: 최종 보호 - 다른 모든 규칙을 무시
결정 우선순위 흐름
시스템은 다음의 엄격한 순서로 규칙을 평가합니다:
- 🚨 비상 정지 (
MaxLossBeforeForceClose) - 최고 우선순위 - ⏳ 최소 유지 시간 - 조기 종료 방지
- 🕐 최대 유지 시간 - 시간 제한 후 종료 강제
- 🕯️ 캔들 종료 규칙 - 모멘텀 반전 감지
- ⏱️ 임계값 규칙 - 시간 기반 스탑로스/수익 보호
- 🎯 테이크 프로핏 규칙 - 단계적 수익 실현
- ➡️ 계속 - 조건이 충족되지 않으면 아무 조치 없음
거래 스타일별 최적화된 설정
⚡ 스캘핑 거래 (1-15분)
IntelligentRuleOptions:
IsEnabled: true
MinimumHoldTime: 1 # 매우 짧은 유지
MaximumBuyHoldTime: 15 # 15분 후 롱 종료
MaximumSellHoldTime: 10 # 10분 후 숏 종료
CandleExitRules:
IsEnabled: true
OppositesCandlesCount: 2 # 빠른 반전 감지
ExitPercentage: 100 # 반전 시 전체 종료
RequireMinimumProfit: 0.5 # 0.5% 이상 수익일 때만 종료
LongTrade:
ThresholdRules:
- Minutes: 5
ThresholdPer: -15.0 # 엄격한 스탑로스
- Minutes: 10
ThresholdPer: -10.0
TakeProfitRules:
- TpMultiplier: 0.3 # 빠른 수익 (TP의 30%)
SellPer: 50
- TpMultiplier: 0.6
SellPer: 50
IntelligentGlobalSettings:
MinProfitToEnableTP: 0.0
MaxLossBeforeForceClose: -20.0 # 엄격한 비상 정지
📊 데이 트레이딩 (15분 - 4시간)
IntelligentRuleOptions:
IsEnabled: true
MinimumHoldTime: 5
MaximumBuyHoldTime: 240 # 최대 4시간
MaximumSellHoldTime: 180 # 최대 3시간
CandleExitRules:
IsEnabled: true
OppositesCandlesCount: 3
ExitPercentage: 50 # 반전 시 부분 종료
RequireMinimumProfit: 1.0
LongTrade:
ThresholdRules:
- Minutes: 30
ThresholdPer: -30.0
- Minutes: 120
ThresholdPer: -20.0
- Minutes: 180
ThresholdPer: -15.0
TakeProfitRules:
- TpMultiplier: 0.5
SellPer: 30
- TpMultiplier: 1.0
SellPer: 40
- TpMultiplier: 2.0
SellPer: 30
IntelligentGlobalSettings:
MinProfitToEnableTP: 0.5
MaxLossBeforeForceClose: -35.0
📈 스윙 트레이딩 (4시간 - 3일)
IntelligentRuleOptions:
IsEnabled: true
MinimumHoldTime: 30
MaximumBuyHoldTime: 4320 # 3일
MaximumSellHoldTime: 2880 # 2일
CandleExitRules:
IsEnabled: true
OppositesCandlesCount: 5 # 더 많은 확인 필요
ExitPercentage: 40
RequireMinimumProfit: 2.0
LongTrade:
ThresholdRules:
- Minutes: 240 # 4시간
ThresholdPer: -50.0
- Minutes: 1440 # 24시간
ThresholdPer: -35.0
- Minutes: 2880 # 48시간
ThresholdPer: -25.0
TakeProfitRules:
- TpMultiplier: 0.5
SellPer: 20
- TpMultiplier: 1.0
SellPer: 30
- TpMultiplier: 2.0
SellPer: 25
- TpMultiplier: 3.0
SellPer: 25
IntelligentGlobalSettings:
MinProfitToEnableTP: 1.0
MaxLossBeforeForceClose: -50.0
🏔️ 장기 거래 (3일 이상)
IntelligentRuleOptions:
IsEnabled: true
MinimumHoldTime: 120 # 최소 2시간
MaximumBuyHoldTime: null # 시간 제한 없음 (또는 43200 = 30일)
MaximumSellHoldTime: null
CandleExitRules:
IsEnabled: false # 비활성화 - 펀더멘털에 집중
LongTrade:
ThresholdRules:
- Minutes: 1440 # 1일
ThresholdPer: -60.0
- Minutes: 10080 # 1주
ThresholdPer: -40.0
- Minutes: 43200 # 1개월
ThresholdPer: -30.0
TakeProfitRules:
- TpMultiplier: 1.0
SellPer: 20
- TpMultiplier: 2.0
SellPer: 20
- TpMultiplier: 5.0
SellPer: 30
- TpMultiplier: 10.0
SellPer: 30
IntelligentGlobalSettings:
MinProfitToEnableTP: 5.0 # 5% 이상에서만 수익 실현
MaxLossBeforeForceClose: -70.0
데모 모드 지원
시스템은 거래가 시뮬레이션되는 데모 모드를 완전히 지원합니다:
General:
demo_mode: true # 시뮬레이션 모드 활성화
데모 모드 기능:
- ✅ 실제 거래소 주문 없이 이론적 PnL 계산
- ✅ 부분 판매 및 누적 수익 추적
- ✅ 모든 결정에
[DEMO]접두사 기록 - ✅ 라이브 모드와 동일하게 거래 상태 업데이트
최佳 실천 방법
- 보수적으로 시작
- 더 넓은 스탑로스와 더 긴 최소 유지 시간으로 시작
- 시장 행동을 이해함에 따라 점진적으로 조정
- 먼저 데모 모드에서 테스트
- 새로운 구성은 항상 데모 모드에서 검증
- 예기치 않은 동작에 대해 결정 로그 모니터링
- 보호 계층화
- 캔들 종료 + 임계값 규칙 + TP 규칙 결합
- 각 계층은 서로 다른 실패 모드를 포착
- 숏 특화 고려사항
- 숏에 더 엄격한 스탑로스 사용 (더 변동성 큼)
- 숏에 더 짧은 유지 시간 (평균 회귀 위험)
- 낮은 TP 배수 (하락 움직임에서 탐욕 피하기)
MinProfitToEnableTP모니터링- 일반적인 스프레드 + 수수료 이상으로 설정하여 손실 발생 TP 방지
- 스캘핑에는 낮게, 스윙/장기에는 높게 설정
- 비상 정지 거리
MaxLossBeforeForceClose는 "최악의 경우" 허용 가능한 손실이어야 함- 일반적: -20% (스캘핑), -35% (데이), -50% (스윙), -70% (장기)
일반적인 패턴
공격적 스캘핑
MinimumHoldTime: 1
MaximumBuyHoldTime: 10
CandleExitRules: { OppositesCandlesCount: 2, ExitPercentage: 100 }
ThresholdRules: [{ Minutes: 3, ThresholdPer: -10.0 }]
보수적 스윙
MinimumHoldTime: 60
MaximumBuyHoldTime: 7200 # 5일
CandleExitRules: { IsEnabled: false }
ThresholdRules: [{ Minutes: 1440, ThresholdPer: -40.0 }]
모멘텀 스캘퍼
CandleExitRules: { IsEnabled: true, OppositesCandlesCount: 2, ExitPercentage: 50 }
TakeProfitRules: [
{ TpMultiplier: 0.2, SellPer: 50 },
{ TpMultiplier: 0.4, SellPer: 50 }
]
문제 해결
| 문제 | 해결 방법 |
|---|---|
| 거래가 너무 일찍 종료됨 | MinimumHoldTime 증가, 임계값 비율 확대 |
| 거래가 손실 상태로 너무 오래 유지됨 | 임계값 비율 낮추기, 캔들 종료 활성화 |
| TP 트리거 없음 | MinProfitToEnableTP 확인, 배수 계산 검증 |
| 캔들 종료가 작동하지 않음 | IsEnabled: true인지 확인, 캔들 히스토리가 채워지고 있는지 점검 |
| 데모 PnL이 잘못됨 | direction 필드가 올바른지 확인 (롱/숏/모두) |
모니터링 및 로그
시스템은 모든 결정을 기록합니다:
✅ BTCUSDT에 대한 결정: 부분 판매(25%) - 테이크 프로핏 트리거 (롱): 12.50% 수익 >= 10.00% 임계값, 25% 판매 - 조기 수익 실현
📊 부분 TP 실행: 25% 판매 (총 25%), PnL: 125.40
🏁 ETHUSDT 거래 완전 종료: 상태=승리, 총 PnL=543.20
주요 지표:
- 🎯 결정 유형 (계속/전체 종료/부분 판매)
- 📊 실행 확인 (라이브 모드)
- 🤖 시뮬레이션 거래에 대한
[DEMO]접두사 - 🏁 PnL 요약과 함께 최종 종료
요약
지능형 거래 결정 모듈은 거래소 수준의 SL/TP 주문에 독립적으로 작동하는 정교한 규칙 기반 거래 관리를 제공합니다. 모멘텀 분석(캔들), 시간 기반 보호(임계값), 단계적 수익 실현(TP 배수)을 결합하여 스캘핑에서 장기 보유까지 모든 거래 스타일에 적합한 유연하고 적응적인 거래 관리를 제공합니다.