시장 상황별 종목선정-매수-매도 전략 통합 운영 가이드
이전글에서는 대시보드 구축을 위한 다양한 시장 심리 지표, 글로벌 금융 지표 및 암호화폐 지표에 따른 시장 국면 전환 맞춤형 투자전략 수립 및 운용에 대한 일반적인 방법론을 제시하고 있습니다.
결국, 이전글에서는 시장국면에 대한 전반적인 포트폴리오 운영과 일반적인 매수-매도전략을 운용하는 방법에 대하여 언급하고 있습니다.
이전글 참조 :
[코인] 자동매매시스템 - 13) 대시보드 - 시장현황분석
[코인] 자동매매시스템 - 14) 종합 시장 지표 산출 및 시장국면 판단
그러나 시장 전체 현황은 암호화폐 시장의 흐름에 대한 판단을 제공하는 것이지, 특정 종목에 대한 구체적인 분석이나 이를 통한 종목선정, 매수 및 매도에 대한 판단을 내려서 실행에 옮기는데 많은 제약이 있기 마련입니다.
이 글에서는 대시보드 구축을 위해 수집된 다양한 시장지표를 활용하여, 종합시장 지표의 계산과 이러한 시장지표에 따라 종목선정 전략, 매수 전략 및 매도 전략을 종목별로 각각 적용할 수 있는 가이드를 제시하고자 합니다.
| 시장 국면에 따른 종목선정, 매수, 매도 전략의 유기적 조합은 자동매매 시스템의 핵심입니다. |
[ 차례 ] |

1. 전략 조합의 핵심 원리
전략 조합이 중요한 이유
많은 투자자들이 훌륭한 종목을 선정하고도 매수 타이밍을 놓치거나, 완벽한 매수 타이밍을 포착하고도 매도를 잘못해서 수익을 놓치는 경우가 많습니다.
자동매매 시스템의 진정한 가치는
종목선정, 매수, 매도 전략이 시장 상황에 맞게 유기적으로 연결되어 작동할 때 비로소 발휘됩니다.
예를 들어 강세장 초입에는 모멘텀이 살아나는 종목을 선정하고 추세 추종 매수를 하며 목표가 매도로 수익을 극대화해야 하지만, 약세장에서는 변동성이 낮은 안전한 종목을 선정하고 역추세 매수로 저점을 노리되 빠른 손절로 리스크를 관리해야 합니다.
시장 국면이 바뀌면 전략도 바뀌어야 하는데, 이를 수동으로 판단하고 조정하는 것은 매우 어렵습니다. 특히 감정이 개입되면 강세장 말기에 추가 매수를 하거나, 약세장 바닥에서 패닉 매도를 하는 실수를 범하게 됩니다. 따라서 시장 지표를 기반으로 자동으로 전략 프로파일을 전환하는 시스템이 필요합니다.
이번 글에서는 앞서 정의한 8가지 시장 국면별로 최적의 전략 조합과 파라미터 설정을 상세히 제시하고, 이를 자동화하는 방법까지 다룰 것입니다.
전략 조합 프레임워크
전략 조합은 세 가지 레이어로 구성됩니다.
- 첫 번째는 시장 분석 레이어로, 공포-탐욕 지수, 김치 프리미엄, 미국 증시 등의 지표를 종합하여 현재 시장 국면을 판단합니다.
- 두 번째는 전략 선택 레이어로, 판단된 시장 국면에 맞는 종목선정-매수-매도 전략 조합을 선택합니다. 단타매매나 수일내에 거래되는 스윙매매의 경우는 초기에 선택된 전략을 그대로 적용할 수 있지만, 보유기간이 길어지는 경우에는 매도전략은 시장 상황에 따라 전략이 변경되기도 합니다.
- 세 번째는 실행 레이어로, 선택된 전략을 실제로 실행하고 모니터링합니다.
각 레이어는 독립적으로 작동하면서도 상호 피드백을 주고받습니다.
예를 들어 실행 레이어에서 연속 손실이 발생하면 전략 선택 레이어에 신호를 보내고, 전략 선택 레이어는 더 보수적인 전략으로 전환할 수 있습니다. 또한 시장 분석 레이어는 실시간으로 시장 국면을 재평가하며, 국면이 전환되면 즉시 새로운 전략 프로파일을 활성화합니다. 이러한 동적 조정 메커니즘이 있어야 변화하는 시장에서 생존하고 수익을 낼 수 있습니다.
graph TB
subgraph "Layer 1: 시장 분석"
A1[공포탐욕 지수] --> M1[시장 국면 판단]
A2[김치 프리미엄] --> M1
A3[BTC 도미넌스] --> M1
A4[거래량 변화] --> M1
A5[미국 증시] --> M1
A6[달러 인덱스] --> M1
A7[변동성] --> M1
A8[금 가격] --> M1
end
subgraph "Layer 2: 전략 선택"
M1 --> S1{시장 국면}
S1 -->|강세장 초입| PG1[프로파일 그룹 1]
S1 -->|강세장 중반| PG2[프로파일 그룹 2]
S1 -->|강세장 말기| PG3[프로파일 그룹 3]
S1 -->|조정 국면| PG4[프로파일 그룹 4]
S1 -->|약세장 초입| PG5[프로파일 그룹 5]
S1 -->|약세장 중반| PG6[프로파일 그룹 6]
S1 -->|약세장 말기| PG7[프로파일 그룹 7]
S1 -->|회복 초기| PG8[프로파일 그룹 8]
end
subgraph "Layer 3: 전략 실행"
PG1 --> E1[종목선정 실행<br/>선정PG : 종목선정 전략 프로파일]
PG2 --> E1
PG3 --> E1
PG4 --> E1
PG5 --> E1
PG6 --> E1
PG7 --> E1
PG8 --> E1
E1 --> |선정PG : 매수 전략 프로파일| E2[매수 실행]
E2 --> |선정PG : 포트폴리오 전략 프로파일| E3[포지션 관리]
E3 --> |선정PG : 매도전략 프로파일| E4[매도 실행<br/>-국면전환시 매도전략 변경-]
E4 --> F1[성과 분석]
F1 -.피드백.-> M1
F1 -.전략 조정.-> S1
end
style M1 fill:#87CEEB
style S1 fill:#FFD700
style E1 fill:#90EE90
style E2 fill:#90EE90
style E3 fill:#90EE90
style E4 fill:#90EE90
style F1 fill:#FFA07A
2. 시장 국면별 통합 전략 매트릭스
각 시장 국면에서의 '시장 상황 정의'영역은 해당 시장국면의 요약 정보일 뿐 입니다. '3. 전략 프로파일 자동 전환 시스템 - 시장 국면 자동 판단 알고리즘'에 의해 다양한 시장 지표를 활용한 시장 국면 판단 로직에 따라 이미 시장에 대한 국면 판단은 이루어진 상황입니다.
참조 글 :
강세장 초입 전략 프로파일
시장 상황 정의 : 상승 전환 시점
- 공포-탐욕 지수 : 30-50 (공포에서 벗어나는 단계)
- 김치 프리미엄 : 0~3% (정상 범위 진입)
- 미국 증시 : 바닥 확인 후 상승 전환
- 달러 인덱스 : 95 이하로 하락 중
- BTC 도미넌스 : 50-60% (비트코인 중심 회복)
이 국면은 약세장이 끝나고 시장이 회복되기 시작하는 시기입니다. 대부분의 투자자들은 여전히 두려움에 빠져있지만, 선행 지표들은 바닥을 확인하고 반등 신호를 보내고 있습니다. 이 시기에는 안정적이고 확실한 종목에 집중하면서, 신중하게 포지션을 구축해야 합니다. 너무 공격적으로 나서면 거짓 신호에 속을 수 있고, 너무 보수적이면 초기 상승을 놓칠 수 있으므로 균형이 중요합니다.
종목선정 전략 조합
1순위 : 거래량 기반 전략 (가중치 40%)
- 24시간 거래량이 최근 30일 평균 대비 150% 이상인 종목을 우선 선정합니다. 약세장에서 거래량이 급증한다는 것은 바닥에서 매수세가 유입되기 시작했다는 신호입니다.
- 거래량/시가총액 비율이 0.3 이상인 종목을 선호합니다. 이는 유동성이 충분하여 안전하게 진입/청산할 수 있음을 의미합니다.
- 거래량 급증 감지 알고리즘을 활성화하여 실시간으로 자금 유입을 모니터링합니다. 전날 대비 거래량이 200% 이상 증가하면 즉시 분석 대상에 추가합니다.
2순위 : 추세 기반 전략 (가중치 35%)
- EMA 5일선이 20일선을 상향 돌파(골든 크로스)한 종목을 선정합니다. 단, 돌파 후 3일 이내인 초기 단계만 유효합니다.
- 60일 이동평균선이 상승 전환하거나 최소한 평평한 상태여야 합니다. 60일선이 여전히 하락 중이면 아직 추세 전환이 확정되지 않은 것입니다.
- ADX 값이 15-25 사이인 종목을 선호합니다. ADX가 너무 낮으면 추세가 약하고, 너무 높으면 이미 많이 올라서 과열된 상태입니다.
ADX, Average Direction Index, 평균 방향성 지수
암호화폐 거래에서 추세 기반 전략을 고려할 때 ADX(평균 방향성 지수)는 추세의 강도를 측정하는 데 활용되는 중요한 기술적 지표입니다. ADX는 추세의 방향을 알려주지는 않지만, 현재 시장에 얼마나 강력한 추세가 존재하는지를 파악하는 데 유용합니다. (+DI/-DI)
- 25 이상: 강한 추세가 형성되었음을 의미합니다. 추세 추종 전략을 사용하기에 적합한 시점입니다.
- 20 이하: 추세가 약하거나 시장이 횡보하는 상태임을 의미합니다. 이 경우 추세 추종 전략은 위험하며, 시장 상황이 변할 때까지 관망하거나 다른 전략을 고려하는 것이 좋습니다.
3순위 : 시장강도 기반 전략 (가중치 25%)
- 비트코인 대비 상대강도가 1.1 이상인 종목을 선정합니다. 비트코인보다 강한 모멘텀을 보이는 알트코인이 상승장에서 더 큰 수익을 제공합니다.
- 시가총액 순위가 최근 7일간 상승한 종목을 우선합니다. 순위 상승은 시장 참여자들의 관심 증가를 의미합니다.
- 업비트 원화 마켓 상장 코인만 대상으로 합니다. 강세장 초입에는 유동성이 높은 안전한 시장에서 거래해야 합니다.
제외 기준
- 최근 24시간 내 ±20% 이상 급등락한 종목은 제외합니다. 강세장 초입의 급등락은 펌프 앤 덤프일 가능성이 높습니다.
- 시가총액 100위 밖의 소형 코인은 제외합니다. 아직 시장이 완전히 회복되지 않은 상태에서 소형 코인은 위험합니다.
- 상장 30일 미만의 신규 코인은 제외합니다. 충분한 가격 히스토리가 없어 분석이 어렵습니다.
매수 전략 조합
주 전략 : 추세 추종 매수 (비중 60%)
- 골든 크로스 발생 시 첫 번째 매수 신호로 인식하고, 가용 자금의 20%를 투입합니다. 단, 골든 크로스 발생 후 가격이 5일 이동평균선 위에 있어야 합니다.
- ADX가 20을 돌파하며 상승하는 구간에서 추가 매수합니다. ADX 상승은 추세 강화를 의미하므로 자신감을 가지고 추가 투입할 수 있습니다.
- 매수는 3회로 분할하여 실행합니다: 1차 20%, 2차 30% (1차 매수 후 +5% 상승 시), 3차 50% (2차 매수 후 추가 +5% 상승 시). 이렇게 하면 가격이 계속 상승할 때만 포지션을 확대하게 됩니다.
보조 전략 : 역추세 매수 (비중 40%)
- RSI가 30-40 구간에 있고 상승 전환할 때 매수합니다. 과매도 구간에서 벗어나는 시점이 저점 매수의 적기입니다.
- 볼린저 밴드 하단을 터치한 후 반등할 때 매수합니다. 단, 하단 이탈이 아닌 터치 후 즉시 반등해야 유효합니다.
- 스토캐스틱 %K선이 %D선을 상향 돌파하고 두 선이 모두 20 이하인 구간에서 발생하면 강력한 매수 신호입니다.
매수 실행 조건
- 주 전략과 보조 전략 중 최소 2개 이상의 신호가 동시에 발생해야 실제 매수를 실행합니다. 단일 신호만으로는 신뢰도가 낮습니다.
- 매수 시점의 거래량이 최근 20일 평균 대비 120% 이상이어야 합니다. 거래량 없는 상승은 지속 가능성이 낮습니다.
- 업비트 호가창에서 매수 호가와 매도 호가의 차이(스프레드)가 0.5% 이내여야 합니다. 스프레드가 크면 유동성이 부족한 것입니다.
매수 금지 조건
- 해당 종목이 최근 1시간 내 10% 이상 급등한 경우 매수를 보류합니다. 급등 직후에는 단기 조정이 올 가능성이 높습니다.
- 전체 시장(비트코인)이 -5% 이상 하락 중이면 개별 종목 신호와 무관하게 매수를 중단합니다.
- 자정(00:00) ~ 오전 6시 사이에는 거래량이 낮고 변동성이 클 수 있으므로 자동 매수를 비활성화합니다.
매도 전략 조합
주 전략 : 목표가 매도 (비중 70%)
- 1차 목표가 : +15% 도달 시 포지션의 30%를 매도하여 원금을 회수합니다. 강세장 초입에는 변동성이 있으므로 빠르게 원금을 확보하는 것이 중요합니다.
- 2차 목표가 : +30% 도달 시 추가 30%를 매도합니다. 이제 수익이 확정되었으므로 심리적으로 안정됩니다.
- 3차 목표가 : +50% 도달 시 나머지 40%를 매도합니다. 강세장 초입에서는 과도한 욕심보다 확실한 수익 확정이 중요합니다.
- 트레일링 스톱 : 최고가 대비 -10% 하락 시 잔여 물량 전량 매도합니다. 이는 추가 상승 가능성을 열어두면서도 수익을 보호하는 장치입니다.
보조 전략 : 기술적 매도 (비중 30%)
- 데드 크로스(5일선이 20일선 하향 돌파) 발생 시 보유 물량의 50%를 즉시 매도합니다. 추세 전환 신호이므로 빠르게 대응해야 합니다.
- RSI가 70을 돌파하고 하락 전환할 때 30%를 매도합니다. 과매수 구간에서 벗어나는 것은 단기 조정의 신호입니다.
- MACD가 시그널선을 하향 돌파하고 히스토그램이 감소할 때 20%를 매도합니다.
손절 전략 : 엄격 적용 (최우선)
- 진입가 대비 -8% 하락 시 무조건 전량 손절합니다. 강세장 초입이라도 개별 종목은 실패할 수 있으므로 손절은 철저히 지켜야 합니다.
- 예외 상황 : 전체 시장이 일시적 급락(-10% 이상)하고 5분 내 반등하는 플래시 크래시의 경우, 손절을 10분 지연시킵니다. 하지만 반등이 없으면 즉시 손절합니다. (전체시장 파동 모니터링)
- 엄격한 손절 규칙 : 개별 종목 -8% 손절, 전체 포트폴리오 -12% 시 전량 청산하고 재평가, 비트코인이 20일 이동평균선 이탈 시 50% 방어 매도
- 익절은 빠르게 : +15% 도달 시 30% 익절 (원금 회수), +30% 도달 시 추가 30% 익절, 나머지는 보유하되 trailing stop -10%
포트폴리오 전략 조합
- 1순위 : 비트코인 (50-60%) - 가장 안정적이고 확실한 상승을 보이는 시기입니다. 시장이 회복되기 시작할 때는 항상 비트코인이 먼저 반등하므로, 자금의 절반 이상을 비트코인에 배치하는 것이 안전합니다.
- 2순위 : 이더리움 (20-30%) - 비트코인 다음으로 기관 투자자들의 선호도가 높으며, 스테이킹 수익까지 얻을 수 있어 장기 보유에 적합합니다.
- 3순위 : 레이어1 대장주 (10-20%) - 솔라나(SOL), 아발란체(AVAX), 폴카닷(DOT) 등 확립된 생태계를 가진 코인들이 안정적인 수익을 제공합니다.
- 리밸런싱 : 초기에는 안전 자산 중심으로 구성합니다.
- 비트코인 (BTC): 50% - 강세장 초입에는 BTC가 먼저 움직임, 가장 안전하고 유동성 높음, 알트로 전환하기 전 BTC로 자리 잡기
- 이더리움 (ETH): 30% - BTC 다음으로 안전, 알트 시즌 전 선행 지표
- 대형 알트코인: 20% - 시총 Top 10~20 중 2~3개만, 예: Solana, Cardano 등, 아직 중소형 알트는 시기상조
- 현금: 60% - 대부분은 현금 유지, 추가 매수 대기, 혹시 모를 조정 대비
이 시기의 핵심은 "확실한 것"에 집중하는 것입니다. 아직 시장 전환이 완전히 확인되지 않은 상태이므로, 시가총액 상위 10위권 내의 코인에만 투자하고 소형 알트코인은 피해야 합니다. 또한 진입은 3-5회에 걸쳐 분할 매수하여 평균 단가를 낮추는 전략이 유효합니다.
강세장 초기 파라미터 설정 요약표
| 전략구분 | 파라미터 | 설정값 | 조정범위 | 비고 |
| 종목선정 | 거래량 기준 | 30일 평균 대비 150%+ | 130-200% | 보수적일수록 높게 |
| 시가총액 순위 | 100위 이내 | 50-150위 | 자금 규모에 따라 조정 | |
| 상대강도 vs BTC | 1.1 이상 | 1.0-1.3 | 시장 강도에 따라 | |
| 매수 | 분할 매수 횟수 | 3회 | 2-5회 | 변동성에 따라 조정 |
| 1차 투입 비율 | 20% | 15-30% | 보수적일수록 낮게 | |
| 거래량 조건 | 평균 대비 120%+ | 100-150% | ||
| RSI 매수 구간 | 30-40 | 25-45 | ||
| 매도 | 1차 목표 수익률 | +15% | +10~+20% | 변동성에 따라 |
| 손절 라인 | -8% | -5~-10% | 위험 성향에 따라 | |
| 트레일링 스톱 | 최고가 대비 -10% | -8~-15% | ||
| 분할 매도 횟수 | 3회 | 2-4회 |
강세장 중반 전략 프로파일
시장 상황 정의 : 상승 모멘텀 강화
- 공포-탐욕 지수 : 50-70 (탐욕 구간 진입)
- 김치 프리미엄 : 3~5% (국내 시장 활성화)
- 미국 증시 : 강세 지속, 신고가 경신 중
- 달러 인덱스 : 90-95 (안정적 수준)
- BTC 도미넌스 : 45-50% (알트코인 자금 유입 시작)
이 국면은 시장이 본격적인 상승 모멘텀을 가지고 있으며, 알트코인으로 자금이 이동하기 시작하는 시기입니다. 투자자들의 심리가 긍정적으로 전환되어 거래량이 폭발적으로 증가하고, 새로운 테마와 섹터가 등장합니다. 이 시기에는 공격적인 전략으로 수익을 극대화할 수 있지만, 동시에 과열 징후를 경계해야 합니다. 강세장 초입보다 더 많은 종목 선택지가 있고, 중소형 알트코인에서도 큰 수익을 노릴 수 있습니다.
종목선정 전략 조합
1순위 : 모멘텀 기반 전략 (가중치 45%)
- RSI가 50-70 구간에 있으면서 상승 추세를 유지하는 종목을 선정합니다. 이는 과열되지 않으면서도 강한 모멘텀을 가진 상태입니다.
- MACD가 시그널선 위에 있고, 히스토그램이 증가하는 종목을 우선합니다. MACD 발산이 확대되는 것은 상승 가속을 의미합니다.
- 최근 7일 가격 변동률이 +20~+50% 범위인 종목을 선호합니다. +20% 미만은 모멘텀이 약하고, +50% 이상은 이미 과열된 것입니다.
- 볼린저 밴드 위치가 중간선과 상단선 사이에 있는 종목을 선정합니다. 상단선을 크게 벗어나면 단기 조정 위험이 있습니다.
2순위 : 테마/섹터 기반 전략 (가중치 35%)
- 업비트 거래량 상위 20위 내에서 특정 테마(DeFi, NFT, Layer2, AI 등)가 3개 이상 포함되어 있으면 해당 테마의 대장주를 선정합니다.
- 신규 상장 코인 중 상장 후 5-15일 사이이고, 상장 이후 +30% 이상 상승한 코인을 주목합니다. 신규 상장 초기의 강한 모멘텀은 지속되는 경향이 있습니다.
- CoinGecko 카테고리별 24시간 거래량 증가율 상위 섹터의 종목들을 분석 대상에 포함합니다.
3순위 : 변동성 기반 전략 (가중치 20%)
- ATR(Average True Range)이 최근 20일 평균 대비 150-200% 수준인 종목을 선정합니다. 변동성이 높으면 단기 수익 기회가 많습니다.
- 일일 변동폭(고가-저가)이 평균 대비 120-180% 범위인 종목을 선호합니다.
- 표준편차가 증가하는 추세이지만 급격한 스파이크는 없는 종목을 선정합니다.
확장 기준
- 시가총액 50-200위 범위로 확장합니다. 강세장 중반에는 중형 코인에서 더 큰 수익 기회가 있습니다.
- 최근 30일 신규 상장 코인도 분석 대상에 포함합니다. 단, 상장 첫 3일은 제외합니다(초기 변동성 회피).
- 테더(USDT) 마켓 상장 코인도 선택적으로 포함합니다. 글로벌 시장과 연동된 기회를 포착할 수 있습니다.
매수 전략 조합
주 전략 : 돌파 매수 (비중 50%)
- 최근 30일 고점을 돌파하며 거래량이 평균 대비 200% 이상 증가할 때 즉시 매수합니다. 신고가 돌파는 강세장에서 가장 신뢰할 수 있는 신호입니다.
- 주요 저항선(피보나치 0.618, 전고점 등)을 거래량과 함께 돌파할 때 매수합니다.
- 볼린저 밴드 상단을 돌파하며 밴드가 확장(Bandwidth 증가)될 때 매수합니다. 이는 변동성 돌파 전략으로 강세장에서 효과적입니다.
보조 전략 1 : 추세 추종 매수 (비중 30%)
- 5일선, 20일선, 60일선이 모두 정배열(5>20>60) 상태이고, 가격이 5일선 위에서 지지받을 때 매수합니다.
- ADX가 25 이상이고 상승 중이며, +DI가 -DI보다 위에 있을 때 추가 매수합니다.
- 파라볼릭 SAR이 가격 아래에 위치하고 있을 때 추세 추종 포지션을 유지합니다.
보조 전략 2 : 단기 조정 후 매수 (비중 20%)
- 강한 상승 후 3-5% 조정이 들어올 때, 20일 이동평균선에서 지지를 받으면 매수합니다.
- RSI가 일시적으로 50 근처까지 하락했다가 다시 상승 전환할 때 매수합니다. 이는 건강한 조정 후 재상승 패턴입니다.
매수 실행 조건
- 주 전략 또는 (보조 전략 1 + 보조 전략 2) 조건 만족 시 매수를 실행합니다.
- 매수는 2회로 분할: 1차 60% (신호 발생 즉시), 2차 40% (+3% 추가 상승 시).
- 강세장 중반에는 빠른 진입이 중요하므로 분할 횟수를 줄이고 초기 투입 비율을 높입니다.
매수 가속 조건 (특수)
- 해당 종목이 업비트 거래량 1-5위에 진입하고, 김치 프리미엄이 4-6% 범위이며, 전체 시장이 상승 중이면 가용 자금의 최대 15%까지 단일 종목에 투입할 수 있습니다 (일반적으로는 10% 제한).
매도 전략 조합
주 전략 : 트레일링 스톱 + 부분 익절 (비중 60%)
- 1차 익절 : +25% 도달 시 30%만 매도하고, 나머지 70%는 트레일링 스톱을 설정합니다.
- 트레일링 스톱 : 최고가 대비 -8% 하락 시 전량 매도합니다. 강세장 중반에는 추가 상승 여력이 크므로 스톱 폭을 좁게 설정합니다.
- 2차 익절 : +50% 도달 시 추가 30% 매도합니다.
- 최종 보유 : 나머지 40%는 +100% 목표로 보유하되, 트레일링 스톱은 -12%로 조정합니다.
보조 전략 : 기술적 매도 (비중 40%)
- RSI가 80을 돌파한 후 하락 전환할 때 30% 즉시 매도합니다. RSI 80 이상은 극단적 과매수 구간입니다.
- MACD 히스토그램이 감소하기 시작하면 20% 매도합니다. 이는 모멘텀 약화의 초기 신호입니다.
- 거래량이 급감(평균 대비 50% 이하)하면서 가격이 횡보하면 20% 매도합니다. 거래량 없는 고점은 위험합니다.
손절 전략 : 완화 적용
- 진입가 대비 -12% 하락 시 손절합니다. 강세장 중반에는 일시적 조정이 있을 수 있으므로 손절선을 약간 여유있게 설정합니다.
- 단, 5일 이동평균선을 이탈하고 20일선까지 하락하면 -10%에서도 손절을 고려합니다.
매도 금지 조건
- 해당 종목이 업비트 거래량 3위 이내이고, 테마 주도주이며, 거래량이 계속 증가 중이면 RSI 80 초과 상태에서도 즉시 매도하지 않고 트레일링 스톱으로만 관리합니다.
포트폴리오 전략 조합
- 1순위 : 테마 주도주 (40-50%) - 이 시기에는 특정 테마(DeFi, NFT, AI, Layer2 등)가 시장을 주도합니다. 거래량과 뉴스 모멘텀을 분석하여 현재 핫한 테마의 대장주 2-3개를 집중 공략합니다.
- 2순위 : 중형 알트코인 (30-40%) - 시가총액 20-50위권의 코인들이 폭발적인 상승을 보이는 시기입니다. 업비트 거래량 상위 10위 내에서 최근 상장된 코인이나 신규 테마 코인을 선별합니다.
- 3순위 : 비트코인/이더리움 (20-30%) - 안전판 역할로 유지하되, 비중은 줄여도 됩니다.
- 리밸런싱 : 총 자산의 70~80%를 암호화폐에 투자하고, 20~30%는 현금으로 유지합니다.
- 비트코인 (BTC): 30% - 가장 안정적인 자산, 기관 투자자들의 주요 타겟, 하락 시 가장 먼저 회복
- 이더리움 (ETH): 30% - DeFi, NFT 생태계의 중심, BTC 다음으로 안정적, 알트 시즌에 BTC 대비 초과 수익
- 대형 알트코인: 30% - 시가총액 Top 20 내, 예: Solana(SOL), Cardano(ADA), Polygon(MATIC), Chainlink(LINK), 각 코인당 5~10% 분산
- 중형 알트코인: 10% - 시가총액 Top 20~100, 고위험-고수익, 최대 3개 코인까지만
- 현금: 20% - 기회 포착용 (급락 시 추가 매수), 심리적 안정감
이 시기에는 공격적인 수익 추구가 가능하지만, 각 종목당 손절선(진입가 대비 -15%)을 반드시 설정해야 합니다. 또한 일일 거래량이 100억 원 이상인 코인만 선택하여 유동성 리스크를 최소화해야 합니다.
파라미터 설정 요약표
| 전략구분 | 파라미터 | 설정값 | 조정범위 | 비고 |
| 종목선정 | RSI 구간 | 50-70 | 45-75 | 과열 경계 |
| 가격 변동률 7일 | +20~+50% | +15~+60% | 모멘텀 강도 | |
| 시가총액 순위 | 50-200위 | 30-300위 | 공격 성향 | |
| ATR 배율 | 150-200% | 130-250% | 변동성 선호도 | |
| 매수 | 분할 매수 횟수 | 2회 | 1-3회 | 빠른 진입 우선 |
| 1차 투입 비율 | 60% | 50-70% | ||
| 돌파 거래량 조건 | 평균 대비 200%+ | 150-300% | ||
| 단일 종목 최대 비중 | 15% | 10-20% | 리스크 관리 | |
| 매도 | 1차 목표 수익률 | +25% | +20~+35% | 시장 강도에 따라 |
| 손절 라인 | -12% | -10~-15% | ||
| 트레일링 스톱 | 최고가 대비 -8% | -5~-10% | 민감도 조정 | |
| RSI 매도 기준 | 80+ | 75-85 |
강세장 말기 전략 프로파일
시장 상황 정의 : 과열 국면
- 공포-탐욕 지수 : 70-90 (극단적 탐욕 진입)
- 김치 프리미엄 : 5~10% (과열 수준)
- 미국 증시 : 고점 인근, 조정 조짐
- 달러 인덱스 : 90 이하 (달러 약세 지속)
- BTC 도미넌스 : 40-45% (알트 버블 징후)
이 국면은 가장 수익을 내기 쉬운 동시에 가장 위험한 시기입니다. 모든 사람이 암호화폐 투자를 이야기하고, 초보 투자자들이 대거 유입되며, 언론에서도 연일 암호화폐 뉴스를 다룹니다. 하지만 역사적으로 이러한 시기는 정점에 가까우며, 곧 급락이 올 가능성이 높습니다. 따라서 이 시기의 전략은 신규 매수 최소화, 적극적 익절, 방어적 포지션 관리에 초점을 맞춰야 합니다.
종목선정 전략 조합
1순위 : 유동성 중심 전략 (가중치 60%)
- 업비트 거래량 상위 10위 이내 종목만 선정합니다. 강세장 말기에는 유동성이 최우선이며, 언제든 빠르게 청산할 수 있어야 합니다.
- 24시간 거래대금이 500억 원 이상인 종목만 대상으로 합니다. 유동성이 낮은 종목은 급락 시 손절이 어렵습니다.
- 호가창 스프레드가 0.3% 이내인 종목을 선호합니다. 스프레드가 넓으면 매도 시 불리한 가격에 체결됩니다.
2순위 : 리스크 회피 전략 (가중치 40%)
- 비트코인과 이더리움에 집중합니다. 알트코인 신규 진입은 극도로 제한합니다.
- 변동성(ATR)이 최근 평균 대비 200% 이상인 종목은 제외합니다. 과도한 변동성은 통제 불가능한 손실로 이어질 수 있습니다.
- 최근 7일간 일일 변동폭이 30% 이상인 적이 있는 종목은 제외합니다.
종목선정 최소화
- 신규 종목 분석은 중단하고, 기존 보유 종목 관리에만 집중합니다.
- 보유 종목 수를 3개 이하로 제한합니다. 많은 종목을 관리하면 급락 시 대응이 어렵습니다.
- 이 시기에는 "종목을 찾는 것"보다 "언제 나올 것인가"가 더 중요합니다.
매수 전략 조합
원칙: 신규 매수 극도로 제한 (비중 20%)
- 기본적으로 신규 매수를 하지 않는 것이 원칙입니다. 현금 비중을 50% 이상으로 유지합니다.
- 예외적으로 비트코인이 주요 지지선(예: 20일 이동평균선)에서 강하게 반등하고, 거래량이 평균 대비 300% 이상이며, RSI가 50 미만에서 상승 전환하는 경우에만 소액(가용 자금의 5% 이하) 매수를 고려합니다.
조건부 매수 : 단기 트레이딩만 (비중 80%)
- 일중 변동성을 활용한 단타 매매만 실행합니다. 당일 청산을 원칙으로 합니다.
- 진입 후 +5% 익절 또는 -3% 손절을 자동으로 설정하여 장기 보유를 방지합니다.
- 오전 10시-11시, 저녁 8시-9시 등 거래량이 많은 시간대만 활용합니다.
매수 금지 조건 (엄격)
- 공포-탐욕 지수가 80을 넘으면 모든 매수를 중단합니다.
- 김치 프리미엄이 8%를 넘으면 절대 매수하지 않습니다.
- 해당 종목이 당일 +15% 이상 상승했다면 매수하지 않습니다.
- 업비트 전체 거래량이 평균 대비 500% 이상으로 폭증하면 과열 신호로 판단하고 매수를 중단합니다.
매도 전략 조합
주 전략 : 공격적 익절 (비중 80%)
- 수익률 +10% 이상 종목은 즉시 50% 매도합니다. 작은 이익이라도 확실히 확보하는 것이 중요합니다.
- 수익률 +20% 이상 종목은 추가 30% 매도하여 총 80%를 청산합니다.
- 수익률 +30% 이상 종목은 전량 매도합니다. 추가 상승을 기대하지 않습니다.
- 트레일링 스톱: 최고가 대비 -5%에 설정하여 빠르게 수익을 보호합니다.
보조 전략 : 예방적 매도 (비중 20%)
- 공포-탐욕 지수가 85를 넘으면 수익률과 무관하게 전체 포트폴리오의 70%를 매도합니다.
- 김치 프리미엄이 10%를 넘으면 전량 매도를 시작합니다.
- 비트코인이 5일 이동평균선을 이탈하면 모든 알트코인 포지션의 50%를 즉시 매도합니다.
손절 전략 : 초고속 대응
- 진입가 대비 -7% 하락 시 즉시 전량 손절합니다. 강세장 말기는 급락 위험이 높으므로 손절선을 타이트하게 설정합니다.
- 일봉 기준 5일 이동평균선을 이탈하면 추가 하락 전에 선제적으로 청산합니다.
강제 청산 조건
- 보유 기간이 7일을 넘으면 수익/손실 여부와 관계없이 포지션을 검토하고, 14일을 넘으면 무조건 청산합니다. 강세장 말기에 장기 보유는 위험합니다.
포트폴리오 전략 조합
- 전략 : 신규 매수 중단, 단계적 익절 시작합니다. 보유 종목 중 목표 수익률(100% 이상)을 달성한 종목부터 50%씩 매도하고, 남은 50%는 trailing stop(고점 대비 -20%)을 설정합니다.
- 리밸런싱 : 알트코인 비중을 줄이고 비트코인과 현금 비중을 늘립니다. 최종 목표는 현금 50%, 비트코인 30%, 알트코인 20%의 방어적 포트폴리오입니다. 아래는 포트폴리오 전략의 리밸런싱을 위해 매도전략에서 사용할 단계별 매도 순위 및 방법입니다.
- 1단계 : 알트코인 100% 매도 (최우선) - 소형/중형 알트코인은 즉시 전량 매도 > 1~2일내 완료
- 2단계 : 이더리움 70% 매도 - ETH는 비트코인 다음으로 안정적이지만 여전히 위험 > 3일 내 완료
- 3단계 : 비트코인 50% 매도 - BTC도 절반은 수익 실현 > 1주일 내 완료
- 4단계 : 남은 포지션 정리 - CMS가 +3.0 이상 지속되면 남은 ETH 30%, BTC 50%도 매도 > 2주 내 완료
- 매도 가격 전략 : 지정가 주문보다는 시장가 주문 사용 (속도 우선), 한 번에 전량 매도보다는 2~3회 분할 (평균 매도가 확보), 하루 중 거래량이 많은 시간대 선택 (한국 시간 오후~24시, 밤 10~12시), 슬리피지 감수 (1~2% 손해를 보더라도 빠른 매도가 중요)
공포-탐욕 지수가 80을 넘어가면 매우 위험한 구간입니다. 2021년 4월과 11월, 두 번의 정점에서 모두 공포-탐욕 지수가 85 이상이었고, 이후 50% 이상의 폭락이 발생했습니다. "더 오를 것 같다"는 생각이 들 때가 가장 위험한 순간입니다.
파라미터 설정 요약표
| 전략구분 | 파라미터 | 설정값 | 조정범위 | 비고 |
| 종목선정 | 거래량 순위 | 10위 이내 | 5-15위 | 유동성 최우선 |
| 24시간 거래대금 | 500억 원+ | 300-1000억 | ||
| 보유 종목 수 | 3개 이하 | 2-4개 | 집중 관리 | |
| 신규 분석 | 중단 | - | 기존 관리만 | |
| 매수 | 신규 매수 비중 | 가용자금 5% | 0-10% | 극도로 제한 |
| 단타 익절 목표 | +5% | +3~+7% | 빠른 회전 | |
| 단타 손절 | -3% | -2~-5% | ||
| 매수 금지 조건 | 공포탐욕 80+ | 75-85 | ||
| 매도 | 1차 익절 | +10% | +8~+15% | 빠른 익절 |
| 전량 매도 | +30% | +25~+40% | 욕심 배제 | |
| 손절 라인 | -7% | -5~-10% | 타이트하게 | |
| 트레일링 스톱 | 최고가 대비 -5% | -3~-7% | 빠른 수익 보호 | |
| 최대 보유 기간 | 14일 | 7-21일 | 장기 보유 방지 |
약세장 초입/중반 전략 프로파일
시장 상황 정의 : 극단적 공포 시작
- 공포-탐욕 지수 : 20-40 (공포 구간)
- 김치 프리미엄 : -2~1% (국내 시장 위축)
- 미국 증시 : 하락 추세 확정
- 달러 인덱스 : 100-105 (강세)
- BTC 도미넌스 : 60-65% (안전자산 회귀)
약세장은 돈을 잃지 않는 것이 목표인 시기입니다. 대부분의 알트코인이 50-90% 하락하고, 비트코인조차 30-50% 하락하는 구간입니다. 이 시기에는 거래를 최소화하고, 현금 비중을 극대화하며, 생존에 집중해야 합니다. 단, 약세장 말기로 접어들면서 극단적 공포 구간에서는 장기 투자 관점의 분할 매수를 시작할 수 있습니다.
종목선정 전략 조합
원칙 : 거래 최소화
- 신규 종목 선정을 중단합니다. 약세장에서는 어떤 종목을 사도 대부분 하락합니다.
- 비트코인과 이더리움만 모니터링 대상으로 유지합니다.
- 알트코인은 분석 대상에서 완전히 제외합니다. 약세장에서 알트코인은 90% 이상 하락할 수 있습니다.
예외적 종목선정 : 극공포 구간 (공포-탐욕 15 이하)
- 비트코인만 선정합니다. 다른 어떤 코인도 고려하지 않습니다.
- 역사적 지지선(전 사이클 고점, 주요 피보나치 레벨)에 근접했는지 확인합니다.
- 거래량이 극도로 위축(평균 대비 30% 이하)되었다가 다시 증가하는 시점을 포착합니다.
매수 전략 조합
주 전략 : DCA (Dollar Cost Averaging) - 분할 매수 (비중 100%)
- 공포-탐욕 지수가 25 이하로 내려가면 비트코인 DCA를 시작합니다.
- 매주 또는 격주로 고정된 금액(예: 전체 투자 자금의 2-3%)을 투입합니다.
- 총 10-20회에 걸쳐 3-6개월간 분할 매수합니다. 한 번에 많은 자금을 투입하지 않습니다.
- 가격이 추가로 -10% 하락할 때마다 투입 금액을 20%씩 증액합니다 (단, 최대 2배까지).
DCA는 '달러 비용 평균화(Dollar Cost Averaging)'의 약자로 우리는 '분할 매수'로 통칭하여 사용합니다. 특정 자산에 대해 정해진 금액을 정기적으로 투자하여 평균 매입 단가를 낮추는 투자 방식을 의미합니다. 흔히 '정액 적립식 투자'라고도 불립니다.
보조 전략 : 역추세 스윙 (비중 제한적)
- 비트코인이 일시적으로 RSI 20 이하로 과매도되고, 볼린저 밴드 하단을 크게 이탈했다가 반등할 때만 소액 매수합니다.
- 매수 후 +10% 도달 시 즉시 전량 매도하는 단타로만 운영합니다.
- 이는 DCA와 별도로 운영하며, 전체 자금의 5% 이내로만 실행합니다.
매수 금지 원칙
- 하락 추세(60일 이동평균선 하락)가 지속되는 동안에는 "저점 매수" 시도를 하지 않습니다. 하락하는 칼날을 잡으려다 크게 다칠 수 있습니다.
- 알트코인은 어떤 조건에서도 매수하지 않습니다.
- 생활 자금이나 비상 자금을 절대 투입하지 않습니다.
매도 전략 조합
주 전략 : 빠른 손절 (비중 100%)
- 약세장 진입 전 보유하던 종목들은 진입가 대비 -5% 도달 시 즉시 전량 손절합니다.
- 손실을 인정하고 현금을 확보하는 것이 최우선입니다. "언젠가 회복될 것"이라는 희망은 버려야 합니다.
- 손절 후 확보한 현금은 최소 3개월간 재투자하지 않고 보관합니다.
보조 전략 : 반등 시 탈출
- 보유 종목이 일시적으로 반등하여 손실이 줄어들 때(예: -20%에서 -10%로 회복) 매도합니다.
- "본전까지 기다리자"는 생각을 버리고, 손실을 최소화할 수 있을 때 탈출합니다.
매도 없음 조건
- DCA로 신규 매수한 비트코인은 최소 1년간 보유합니다. 약세장 바닥에서 매수한 물량은 장기 투자 자산입니다.
- 단, 전체 시장이 극단적 상황(거래소 파산, 규제 등)에 직면하면 예외적으로 매도를 고려할 수 있습니다.
포트폴리오 전략 조합
- 전략 : 현금 비중 70-90% 유지, 거래 최소화합니다. 이 시기에 수익을 내려고 노력하는 것은 매우 어려우며, 자본을 보존하는 것이 최우선 목표입니다.
- 예외적 거래 : 비트코인이 주요 지지선(예: 200일 이동평균선)에서 강하게 반등할 때만 소액(전체 자금의 5-10%) 단타 매매를 시도할 수 있습니다.
- 리밸런싱 : 목표: 현금 비중 50% 이상 유지, 불확실성 회피를 위하여 조정 국면의 핵심은 "하지 않는 것"입니다. 무리하게 수익을 내려 하지 말고, 현금을 확보하며 다음 기회를 기다립니다.
- 현금 비중: 50~70% - 조정 국면에서는 현금이 왕, 다음 강세장 또는 약세장에 대비, 심리적 안정감 확보
- 보유 자산: 30~50% - BTC 위주로 보수적 구성, BTC: 20~30%, ETH: 10~15%, 알트: 5% 이하 (거의 없음)
파라미터 설정 요약표
| 전략구분 | 파라미터 | 설정값 | 조정범위 | 비고 |
| 종목선정 | 대상 종목 | BTC만 | BTC, ETH | 극도로 제한 |
| 알트코인 | 완전 제외 | - | 절대 원칙 | |
| 매수 | DCA 주기 | 1-2주 | 1-4주 | 하락 강도에 따라 |
| 회당 투입 비율 | 2-3% | 1-5% | 총 자금 대비 | |
| 총 분할 횟수 | 10-20회 | 10-30회 | 기간 설정 | |
| 추가 하락 시 증액 | 20% | 10-30% | 최대 2배 | |
| 매도 | 손절 라인 (기존 보유) | -5% | -3~-8% | 빠른 청산 |
| 반등 매도 | 손실 50% 회복 시 | 30-70% | 기회 포착 | |
| DCA 매수분 보유 | 1년+ | 6개월-2년 | 장기 관점 |
약세장 말기 및 회복 초기 전략 프로파일
시장 상황 정의 : 극단적 공포 및 바닥 형성
- 공포-탐욕 지수 : 10-25 (극단적 공포)
- 김치 프리미엄 : -3% 이하 (국내 투자 심리 바닥)
- 미국 증시 : 바닥 형성 시작
- 달러 인덱스 : 105 이상 정점 후 하락 전환
- BTC 도미넌스 : 65% 이상 (비트코인 독주)
이 구간은 가장 어둡지만 동시에 가장 큰 기회가 잠재된 시기입니다. 모든 사람이 암호화폐를 포기하고, 언론에서는 "암호화폐의 종말"을 이야기합니다. 하지만 역사적으로 이러한 극단적 공포 구간이 바로 다음 강세장의 시작점이었습니다. 이 시기의 전략은 용기있는 매수와 인내심 있는 보유입니다.
종목선정 전략 조합
1순위 : 생존 가능성 중심 (가중치 70%)
- 비트코인 (50%) : 절대적 1순위입니다. 약세장을 생존하고 다음 강세장을 이끌 유일한 확실한 자산입니다.
- 이더리움 (20%) : 스마트 컨트랙트 플랫폼의 확고한 1위이며, 생태계가 살아있습니다.
- 검증된 Layer1 (10%) : 솔라나, 아발란체 등 약세장에서도 개발이 지속되는 프로젝트만 선별합니다.
2순위 : 역사적 저점 분석 (가중치 30%)
- 전 사이클 고점 대비 -80% 이상 하락한 우량 코인을 선별합니다. 역사적으로 이 정도 하락하면 바닥에 가깝습니다.
- 시가총액 순위가 크게 하락하지 않은 코인을 선호합니다. 순위 유지는 펀더멘털이 살아있다는 증거입니다.
- 개발 활동(GitHub 커밋, 네트워크 활동)이 지속되는 프로젝트를 우선합니다.
제외 기준
- 약세장 동안 개발이 중단되었거나 팀이 해체된 프로젝트는 완전 제외합니다.
- 전 고점 대비 -95% 이상 하락한 소형 코인은 제외합니다. 회복 불가능할 수 있습니다.
- 거래량이 극도로 낮은(일 10억 원 미만) 코인은 제외합니다.
매수 전략 조합
주 전략 : 장기 투자 목적 적립식 매수 (비중 80%)
- 공포-탐욕 지수가 15 이하로 3일 이상 유지되면 본격적인 매수를 시작합니다.
- 매주 고정 금액을 투입하는 정기 적립식 매수를 6-12개월간 실행합니다.
- 총 투자 예정 자금의 50-70%를 이 시기에 투입합니다. 나머지는 회복 초기 단계를 위해 보류합니다.
- 비트코인 가격이 200주 이동평균선 아래에 있을 때 매수 속도를 2배로 늘립니다. 이는 역사적으로 매우 강력한 매수 신호였습니다.
보조 전략 : 기술적 바닥 확인 후 매수 (비중 20%)
- 주봉 차트에서 더블 바텀, 역헤드앤숄더 등 바닥 패턴이 완성될 때 추가 매수합니다.
- RSI 주봉이 30 이하에서 상승 전환하고, MACD가 골든 크로스를 형성할 때 매수합니다.
- 거래량이 극도로 위축된 후(Climax Bottom) 다시 증가하는 시점을 포착합니다.
매수 실행 원칙
- 감정을 완전히 배제하고 기계적으로 매수합니다. "더 떨어질 것 같다"는 생각이 들 때가 가장 좋은 매수 시점입니다.
- 단기 수익을 기대하지 않습니다. 최소 1-2년 보유를 전제로 매수합니다.
- 매수 후에는 가격을 자주 확인하지 않습니다. 심리적 안정을 유지하기 위해 주 1회만 체크합니다.
매도 전략 조합
원칙 : 매도하지 않음 (비중 100%)
- 이 시기에 매수한 코인은 기본적으로 매도하지 않습니다.
- 최소 보유 기간: 12개월. 그 전에는 어떤 상황에서도 매도를 고려하지 않습니다.
- 목표: 다음 강세장에서 +300% 이상 수익을 노립니다.
예외적 매도 : 극단적 상황
- 프로젝트에 치명적인 문제(해킹, 팀 해체, 규제)가 발생하면 즉시 매도합니다.
- 개인적인 긴급 자금 필요 시에만 일부 매도를 허용합니다.
매도 준비 : 회복 초기 전환 시점
- 공포-탐욕 지수가 40을 안정적으로 넘어서고, 김치 프리미엄이 양수로 전환하며, 비트코인이 200일 이동평균선을 돌파하면 시장이 회복 초기로 전환된 것으로 판단합니다.
- 이 시점부터는 "강세장 초입 전략"으로 전환하여 일부 익절을 시작할 수 있습니다.
손절 규칙
- 개별 종목 : -5% - 약세장 초입에서는 엄격한 손절 필요, 매수가 대비 -5% 즉시 손절, "기다리면 오른다"는 착각 금물
- 전체 포트폴리오: -10% - 전체가 -10% 하락하면 추가 손절, CMS -1.5 아래로 떨어지면 전량 청산 고려
포트폴리오 전략 조합
- 1순위 : 비트코인 (장기 투자 자금의 60-70%) - 공포-탐욕 지수가 15 이하로 떨어지고 3일 이상 유지되면, 역사적으로 최고의 매수 기회였습니다. 하지만 단번에 올인하지 말고, 2-3개월에 걸쳐 10회 이상 분할 매수합니다.
- 2순위 : 이더리움 (20-30%) - 비트코인보다 변동성이 크지만, 바닥권에서는 더 큰 수익 잠재력을 가집니다.
- 피해야 할 것 : 소형 알트코인은 약세장에서 90% 이상 하락하는 경우가 많으며, 일부는 회복하지 못하고 사라집니다. 절대 손대지 않아야 합니다.
- 리밸런싱 : 손실 최소화, 현금 비중 70% 이상 확보, 약세장 초입에서는 "보유"가 아니라 "탈출"이 정답입니다. 손실을 인정하고, 빠르게 현금화하여 다음 기회를 기다립니다.
- 알트코인 전량 매도 (최우선) : 소형/중형 알트는 약세장에서 -80~-95% 폭락, "언젠가 오른다"는 희망은 버리기, 손실이 크더라도 즉시 정리, 예: -30% 손실이라도 지금 매도 (추가 -50% 막기)
- 이더리움 50~70% 매도 : ETH도 약세장에서 -70% 정도 하락, 일부는 보유 가능하지만 대부분 매도
- 비트코인 30~50% 매도 : BTC는 상대적으로 안전하지만 여전히 위험, 최소 30%는 매도하여 손실 제한, 목표: 평균 매수가 이하로 떨어지기 전 탈출
파라미터 설정 요약표
| 전략구분 | 파라미터 | 설정값 | 조정범위 | 비고 |
| 종목선정 | BTC 비중 | 50% | 40-60% | 안전성 최우선 |
| ETH 비중 | 20% | 15-30% | ||
| 기타 Layer1 | 10% | 5-15% | 검증된 것만 | |
| 전고점 대비 하락 | -80% 이상 | -75~-90% | 바닥 판단 | |
| 매수 | 적립 주기 | 매주 | 매주-격주 | 규칙적 실행 |
| 총 투입 비율 | 50-70% | 40-80% | 총 자금 대비 | |
| 기간 | 6-12개월 | 3-18개월 | 시장 회복 속도 | |
| 200주선 이하 배수 | 2배 | 1.5-3배 | 강력 매수 신호 | |
| 매도 | 최소 보유 기간 | 12개월 | 6-24개월 | 장기 투자 |
| 목표 수익률 | +300% | +200~+500% | 다음 강세장 | |
| 손절 | 없음 | - | 극단 상황만 예외 |
포트폴리오 구성 전략
투자자의 위험 성향과 시장 국면에 따른 최적 포트폴리오 구성입니다. 투자자의 성향에 따라 각 시장 국면에서의 투자대상 암호화폐의 비율 구성을 정리하였으며, 이 폴트폴리오 구성은 종목선정에서 참조할 수 있으나, 절대적 제한 규칙에 따라 종목 선정의 제한을 두어서는 안됩니다.
보수적 투자자 (원금 보존 중시)
| 시장국면 | 현금 | BTC | ETH | 대형알트 | 중소형알트 | 밸런싱주기 |
| 강세장 초입 | 40% | 40% | 15% | 5% | 0% | 월 1회 |
| 강세장 중반 | 30% | 35% | 20% | 10% | 5% | 2주 1회 |
| 강세장 말기 | 60% | 30% | 10% | 0% | 0% | 주 1회 |
| 약세장 | 80% | 15% | 5% | 0% | 0% | 월 1회 |
중립적 투자자 (균형 추구)
| 시장국면 | 현금 | BTC | ETH | 대형알트 | 중소형알트 | 밸런싱주기 |
| 강세장 초입 | 20% | 50% | 20% | 10% | 0% | 2주 1회 |
| 강세장 중반 | 10% | 30% | 30% | 20% | 10% | 주 1회 |
| 강세장 말기 | 50% | 30% | 15% | 5% | 0% | 3일 1회 |
| 약세장 | 70% | 20% | 10% | 0% | 0% | 2주 1회 |
공격적 투자자 (고수익 추구)
| 시장국면 | 현금 | BTC | ETH | 대형알트 | 중소형알트 | 밸런싱주기 |
| 강세장 초입 | 10% | 40% | 25% | 20% | 5% | 주 1회 |
| 강세장 중반 | 5% | 20% | 25% | 30% | 20% | 3일 1회 |
| 강세장 말기 | 40% | 35% | 15% | 10% | 0% | 매일 |
| 약세장 | 60% | 30% | 10% | 0% | 0% | 주 1회 |
포트폴리오 관리 원칙
- 리밸런싱은 필수
특정 코인이 과도하게 상승하면 비중이 높아지므로, 정기적으로 초기 비율로 되돌려야 합니다. 이는 "고점에 팔고 저점에 사는" 효과를 자동으로 만듭니다. - 단계별 진입/청산
한 번에 모든 자금을 투입하거나 회수하지 말고, 최소 3단계 이상으로 나누어 실행합니다. 예: 30% → 30% → 40% 또는 25% → 25% → 25% → 25% - 현금 비중의 중요성
많은 초보자들이 "현금은 죽은 자산"이라고 생각하지만, 현금은 기회를 잡을 수 있는 옵션입니다. 급락 시 매수할 현금이 없으면 기회를 놓치게 됩니다.
3. 전략 프로파일 자동 전환 시스템
시장 국면 자동 판단 알고리즘
다양한 채널에서 수집된 시장 지표를 근거로 한 현재 시장의 상황을 자동판단하는 시스템은 암호화폐 자동매매시스테의 첫걸음 입니다. 시장의 상황에 따라 종목 선정 전략, 매수 전략 및 매도 전략 프로파일이 맞춤형으로 적용되는 시스템에서 시장 국면을 판단하는 일은 첫걸음이자 투자 성공의 첫 단추입니다.
시장국면을 판단하기 위해 사용되는 각종 시장 지수와 시장 지수를 활용한 종합 시장 지표 산정방식은 이전 글 ' [코인] 자동매매시스템 - 14) 종합 시장 지표 산출 및 시장국면 판단'을 참조하시기 바랍니다.
아래는 시장 국면을 자동으로 판단하고 전략을 전환하는 Python 코드입니다. 아래의 샘플코드에서는 6개의 시장 지표를 사용하여 시장 국면을 판단하고 있습니다. 시장 국면을 판단하기 위해 사용되는 시장지표는 개인의 투자 성향에 따라 포함 여부를 결정하는게 좋습니다.
fear_greed_index: float # 공포탐용지수 : 0-100
kimchi_premium: float # 김치프리미엄 : %
btc_dominance: float # 비트코인 도미넌스 : %
volume_ratio: float # 거래량비율 : 평균대비
us_market_change: float # 미국증시변동률 : %
dxy_index: float # 달러 인덱스 : min-max
price_ration: float # 변동성 : %
gold_price : float # 금가격변동률 : %
시장 국면 자동 판단 알고리즘 예시 보기 >
from dataclasses import dataclass
from enum import Enum
from typing import Dict, List, Tuple
import numpy as np
class MarketPhase(Enum):
"""시장 국면 정의"""
BULL_EARLY = "강세장_초입"
BULL_MID = "강세장_중반"
BULL_LATE = "강세장_말기"
CORRECTION = "조정_국면"
BEAR_EARLY = "약세장_초입"
BEAR_MID = "약세장_중반"
BEAR_LATE = "약세장_말기"
RECOVERY = "회복_초기"
@dataclass
class MarketIndicators:
"""시장 지표 데이터 클래스"""
fear_greed_index: float # 0-100
kimchi_premium: float # 퍼센트
us_market_change: float # 미국 증시 변동률 (%)
dxy_index: float # 달러 인덱스
btc_dominance: float # 비트코인 도미넌스 (%)
volume_ratio: float # 거래량 비율 (평균 대비)
class MarketPhaseDetector:
"""시장 국면 자동 판단 시스템"""
def __init__(self):
self.phase_history: List[Tuple[datetime, MarketPhase]] = []
self.current_phase: MarketPhase = None
self.phase_confidence: float = 0.0
def detect_phase(self, indicators: MarketIndicators) -> MarketPhase:
"""
시장 지표를 기반으로 현재 국면 판단
Returns:
MarketPhase: 판단된 시장 국면
"""
# 각 국면별 점수 계산
scores = {
MarketPhase.BULL_EARLY: self._score_bull_early(indicators),
MarketPhase.BULL_MID: self._score_bull_mid(indicators),
MarketPhase.BULL_LATE: self._score_bull_late(indicators),
MarketPhase.CORRECTION: self._score_correction(indicators),
MarketPhase.BEAR_EARLY: self._score_bear_early(indicators),
MarketPhase.BEAR_MID: self._score_bear_mid(indicators),
MarketPhase.BEAR_LATE: self._score_bear_late(indicators),
MarketPhase.RECOVERY: self._score_recovery(indicators)
}
# 가장 높은 점수의 국면 선택
detected_phase = max(scores, key=scores.get)
self.phase_confidence = scores[detected_phase] / 100.0
# 국면 전환 확인 (급격한 변화 방지)
if self._should_change_phase(detected_phase):
self.current_phase = detected_phase
self.phase_history.append((datetime.now(), detected_phase))
print(f"[국면 전환] {detected_phase.value} (신뢰도: {self.phase_confidence:.2%})")
return self.current_phase
def _score_bull_early(self, ind: MarketIndicators) -> float:
"""강세장 초입 점수 계산"""
score = 0.0
# 공포-탐욕 지수: 30-50 구간이 최적
if 30 <= ind.fear_greed_index <= 50:
score += 30
elif 25 <= ind.fear_greed_index < 30 or 50 < ind.fear_greed_index <= 55:
score += 20
# 김치 프리미엄: 0-3% 구간
if 0 <= ind.kimchi_premium <= 3:
score += 25
elif -2 <= ind.kimchi_premium < 0 or 3 < ind.kimchi_premium <= 5:
score += 15
# 미국 증시: 상승 전환
if ind.us_market_change > 0.5:
score += 20
elif ind.us_market_change > 0:
score += 10
# 달러 인덱스: 95 이하 하락
if ind.dxy_index < 95:
score += 15
elif ind.dxy_index < 100:
score += 10
# BTC 도미넌스: 50-60%
if 50 <= ind.btc_dominance <= 60:
score += 10
return score
def _score_bull_mid(self, ind: MarketIndicators) -> float:
"""강세장 중반 점수 계산"""
score = 0.0
if 50 <= ind.fear_greed_index <= 70:
score += 30
if 3 <= ind.kimchi_premium <= 5:
score += 25
if ind.us_market_change > 1.0:
score += 20
if 90 <= ind.dxy_index <= 95:
score += 15
if 45 <= ind.btc_dominance <= 50:
score += 10
return score
def _score_bull_late(self, ind: MarketIndicators) -> float:
"""강세장 말기 점수 계산"""
score = 0.0
if 70 <= ind.fear_greed_index <= 90:
score += 35
if 5 <= ind.kimchi_premium <= 10:
score += 30
if ind.dxy_index < 90:
score += 15
if 40 <= ind.btc_dominance <= 45:
score += 10
if ind.volume_ratio > 3.0: # 거래량 폭증
score += 10
return score
def _score_correction(self, ind: MarketIndicators) -> float:
"""조정 국면 점수 계산"""
score = 0.0
if 40 <= ind.fear_greed_index <= 60:
score += 25
if 1 <= ind.kimchi_premium <= 4:
score += 20
if -0.5 <= ind.us_market_change <= 0.5:
score += 20
if 95 <= ind.dxy_index <= 100:
score += 20
if 50 <= ind.btc_dominance <= 55:
score += 15
return score
def _score_bear_early(self, ind: MarketIndicators) -> float:
"""약세장 초입 점수 계산"""
score = 0.0
if 30 <= ind.fear_greed_index <= 50:
score += 25
if -1 <= ind.kimchi_premium <= 2:
score += 20
if ind.us_market_change < -0.5:
score += 25
if 100 <= ind.dxy_index <= 105:
score += 20
if 55 <= ind.btc_dominance <= 60:
score += 10
return score
def _score_bear_mid(self, ind: MarketIndicators) -> float:
"""약세장 중반 점수 계산"""
score = 0.0
if 20 <= ind.fear_greed_index <= 40:
score += 30
if -2 <= ind.kimchi_premium <= 1:
score += 25
if ind.us_market_change < -1.0:
score += 20
if ind.dxy_index > 105:
score += 15
if 60 <= ind.btc_dominance <= 65:
score += 10
return score
def _score_bear_late(self, ind: MarketIndicators) -> float:
"""약세장 말기 점수 계산"""
score = 0.0
if 10 <= ind.fear_greed_index <= 25:
score += 35
if ind.kimchi_premium <= -3:
score += 30
if ind.dxy_index > 105:
score += 15
if ind.btc_dominance >= 65:
score += 10
if ind.volume_ratio < 0.5: # 거래량 급감
score += 10
return score
def _score_recovery(self, ind: MarketIndicators) -> float:
"""회복 초기 점수 계산"""
score = 0.0
if 25 <= ind.fear_greed_index <= 40:
score += 30
if -1 <= ind.kimchi_premium <= 2:
score += 25
if 0 < ind.us_market_change <= 1.0:
score += 20
if 100 <= ind.dxy_index <= 105 and ind.dxy_index < 105: # 하락 전환
score += 15
if 60 <= ind.btc_dominance <= 65:
score += 10
return score
def _should_change_phase(self, new_phase: MarketPhase) -> bool:
"""
국면 전환 여부 판단 (급격한 변화 방지)
Returns:
bool: 전환 허용 여부
"""
if self.current_phase is None:
return True
if self.current_phase == new_phase:
return False
# 신뢰도가 80% 이상일 때만 전환
if self.phase_confidence < 0.8:
return False
# 최근 24시간 내 전환이 없었을 때만 전환 (빈번한 전환 방지)
if self.phase_history:
last_change_time = self.phase_history[-1][0]
if (datetime.now() - last_change_time).seconds < 86400:
return False
return True
def get_phase_description(self) -> Dict:
"""현재 국면 상세 정보 반환"""
return {
'current_phase': self.current_phase.value if self.current_phase else None,
'confidence': f"{self.phase_confidence:.2%}",
'history': [(t.isoformat(), p.value) for t, p in self.phase_history[-5:]],
'recommended_action': self._get_recommended_action()
}
def _get_recommended_action(self) -> str:
"""국면별 권장 행동 반환"""
actions = {
MarketPhase.BULL_EARLY: "신중한 매수 시작, 분할 매수 전략",
MarketPhase.BULL_MID: "적극적 매수 및 보유, 수익 극대화",
MarketPhase.BULL_LATE: "부분 익절 시작, 경계 태세",
MarketPhase.CORRECTION: "선별적 매매, 관망 우선",
MarketPhase.BEAR_EARLY: "손절 및 현금 확보",
MarketPhase.BEAR_MID: "거래 최소화, 생존 모드",
MarketPhase.BEAR_LATE: "장기 투자 목적 DCA 시작",
MarketPhase.RECOVERY: "바닥 확인 후 선별적 매수"
}
return actions.get(self.current_phase, "대기")
전략 프로파일 관리 시스템
국면별 전략 프로파일을 자동으로 로드하고 적용하는 시스템입니다.
시장 국면에 따라서 종목 선정 전략, 매수 전략 및 매도 전략을 자동으로 선택함으써 기계적이고 자동화된 암호화폐 자동매매시스템이 구축되도록하는 핵심 모듈입니다.
아래의 샘플 코드에서는 시장 국면별 종목선정, 매수 및 매도전략을 통합하여 프로파일을 적용하고 있으나, 보다 전문화되고 유연성 있는 시스템 구축을 위해서는 종목 선정 전략 프로파일, 매수 전략 프로파일, 매도 전략 프로파일을 멀티형으로 별도로 관리하고, 시장 국면에 따라 재조합하는 형태로 구축하는것도 추천드립니다.

시장 국면별 전략 프로파일 자동 로딩 모듈 예시 보기 >
from typing import Dict, Any
import json
@dataclass
class StrategyProfile:
"""전략 프로파일 데이터 클래스"""
phase: MarketPhase
# 종목선정 파라미터
selection_strategy: str
selection_weights: Dict[str, float]
market_cap_range: Tuple[int, int]
volume_threshold: float
max_coins: int
# 매수 파라미터
buy_strategy: str
buy_splits: int
initial_position_pct: float
max_single_position: float
buy_conditions: Dict[str, Any]
# 매도 파라미터
sell_strategy: str
profit_targets: List[Tuple[float, float]] # (수익률, 매도비율)
stop_loss_pct: float
trailing_stop_pct: float
max_hold_days: int
class StrategyProfileManager:
"""전략 프로파일 관리자"""
def __init__(self):
self.profiles: Dict[MarketPhase, StrategyProfile] = {}
self._initialize_profiles()
self.current_profile: StrategyProfile = None
def _initialize_profiles(self):
"""모든 국면별 프로파일 초기화"""
# 강세장 초입 프로파일
self.profiles[MarketPhase.BULL_EARLY] = StrategyProfile(
phase=MarketPhase.BULL_EARLY,
selection_strategy="volume_trend_hybrid",
selection_weights={
"volume": 0.40,
"trend": 0.35,
"market_strength": 0.25
},
market_cap_range=(1, 100),
volume_threshold=1.5,
max_coins=5,
buy_strategy="trend_following",
buy_splits=3,
initial_position_pct=0.20,
max_single_position=0.10,
buy_conditions={
"golden_cross": True,
"adx_min": 20,
"rsi_range": (30, 40),
"volume_ratio_min": 1.2
},
sell_strategy="target_trailing",
profit_targets=[(0.15, 0.30), (0.30, 0.30), (0.50, 0.40)],
stop_loss_pct=-0.08,
trailing_stop_pct=-0.10,
max_hold_days=60
)
# 강세장 중반 프로파일
self.profiles[MarketPhase.BULL_MID] = StrategyProfile(
phase=MarketPhase.BULL_MID,
selection_strategy="momentum_theme_hybrid",
selection_weights={
"momentum": 0.45,
"theme": 0.35,
"volatility": 0.20
},
market_cap_range=(1, 200),
volume_threshold=1.2,
max_coins=8,
buy_strategy="breakout",
buy_splits=2,
initial_position_pct=0.60,
max_single_position=0.15,
buy_conditions={
"new_high": True,
"volume_spike": 2.0,
"rsi_range": (50, 70),
"bollinger_position": "upper"
},
sell_strategy="trailing_aggressive",
profit_targets=[(0.25, 0.30), (0.50, 0.30)],
stop_loss_pct=-0.12,
trailing_stop_pct=-0.08,
max_hold_days=45
)
# 강세장 말기 프로파일
self.profiles[MarketPhase.BULL_LATE] = StrategyProfile(
phase=MarketPhase.BULL_LATE,
selection_strategy="liquidity_only",
selection_weights={
"liquidity": 0.60,
"risk_control": 0.40
},
market_cap_range=(1, 10),
volume_threshold=5.0, # 매우 높은 유동성 요구
max_coins=3,
buy_strategy="minimal",
buy_splits=1,
initial_position_pct=0.05,
max_single_position=0.05,
buy_conditions={
"emergency_only": True,
"volume_rank": 10
},
sell_strategy="aggressive_profit_taking",
profit_targets=[(0.10, 0.50), (0.20, 0.30), (0.30, 0.20)],
stop_loss_pct=-0.07,
trailing_stop_pct=-0.05,
max_hold_days=14
)
# 약세장 초입/중반 프로파일
self.profiles[MarketPhase.BEAR_MID] = StrategyProfile(
phase=MarketPhase.BEAR_MID,
selection_strategy="btc_only",
selection_weights={
"safety": 1.0
},
market_cap_range=(1, 1), # BTC만
volume_threshold=0.5,
max_coins=1,
buy_strategy="dca",
buy_splits=20,
initial_position_pct=0.02,
max_single_position=0.03,
buy_conditions={
"fear_greed_max": 25,
"weekly_only": True
},
sell_strategy="fast_stop_loss",
profit_targets=[], # 익절 없음
stop_loss_pct=-0.05,
trailing_stop_pct=None,
max_hold_days=365 # 1년 이상 보유
)
# 약세장 말기 프로파일
self.profiles[MarketPhase.BEAR_LATE] = StrategyProfile(
phase=MarketPhase.BEAR_LATE,
selection_strategy="survivor_analysis",
selection_weights={
"btc": 0.50,
"eth": 0.20,
"layer1": 0.10
},
market_cap_range=(1, 20),
volume_threshold=0.3,
max_coins=3,
buy_strategy="dca_accelerated",
buy_splits=15,
initial_position_pct=0.03,
max_single_position=0.05,
buy_conditions={
"fear_greed_max": 15,
"extreme_fear_duration": 3, # 3일 이상
"below_200w_ma": True
},
sell_strategy="hold_long_term",
profit_targets=[],
stop_loss_pct=None, # 손절 없음
trailing_stop_pct=None,
max_hold_days=730 # 2년 장기 보유
)
# 나머지 국면들도 유사하게 정의...
def get_profile(self, phase: MarketPhase) -> StrategyProfile:
"""국면에 맞는 프로파일 반환"""
return self.profiles.get(phase)
def apply_profile(self, phase: MarketPhase) -> Dict[str, Any]:
"""
프로파일을 시스템에 적용하고 변경 사항 반환
Returns:
Dict: 적용된 파라미터 변경 사항
"""
new_profile = self.get_profile(phase)
if not new_profile:
return {"error": "Unknown phase"}
old_profile = self.current_profile
self.current_profile = new_profile
changes = self._calculate_changes(old_profile, new_profile)
print(f"\n{'='*60}")
print(f"[전략 프로파일 전환] {phase.value}")
print(f"{'='*60}")
print(f"종목선정: {new_profile.selection_strategy}")
print(f"매수전략: {new_profile.buy_strategy}")
print(f"매도전략: {new_profile.sell_strategy}")
print(f"최대 보유 종목: {new_profile.max_coins}개")
print(f"손절선: {new_profile.stop_loss_pct:.1%}")
print(f"{'='*60}\n")
return changes
def _calculate_changes(self, old: StrategyProfile, new: StrategyProfile) -> Dict:
"""프로파일 변경 사항 계산"""
if not old:
return {"message": "Initial profile setup"}
changes = {
"selection": old.selection_strategy != new.selection_strategy,
"buy": old.buy_strategy != new.buy_strategy,
"sell": old.sell_strategy != new.sell_strategy,
"risk_level": abs(old.stop_loss_pct - new.stop_loss_pct) if old.stop_loss_pct and new.stop_loss_pct else 0
}
return changes
def export_profile(self, phase: MarketPhase, filepath: str):
"""프로파일을 JSON 파일로 내보내기"""
profile = self.get_profile(phase)
with open(filepath, 'w', encoding='utf-8') as f:
json.dump(vars(profile), f, indent=2, ensure_ascii=False, default=str)
def import_profile(self, filepath: str) -> StrategyProfile:
"""JSON 파일에서 프로파일 불러오기"""
with open(filepath, 'r', encoding='utf-8') as f:
data = json.load(f)
return StrategyProfile(**data)
통합 실행 시스템
전략 프로파일 기반 암호화폐 자동매매시스템은
- 1. 시장 지표 수집
- 2. 시장 국면 판단 : 시장 지표 기반 통합 시장 지표 산출 및 통합 시장지표에 따른 시장 국면 판단
- 3. 시장 국면에 따른 전략 프로파일 선정 : 종목 선정, 매수 및 매도전략 상세 프로파일 그룹
- 4. 전략 프로파일에 따른 매매 프로세스
- 5. 매매 분석 시스템에 의한 전략 수정 및 변경 피드백
의 순환구조로 자동화되는 구조입니다.
통합 자동매매 시스템 예시 보기 >
class AutoTradingSystem:
"""통합 자동매매 시스템"""
def __init__(self):
self.phase_detector = MarketPhaseDetector()
self.profile_manager = StrategyProfileManager()
self.current_phase = None
self.is_running = False
async def start(self):
"""시스템 시작"""
self.is_running = True
print("=== 자동매매 시스템 시작 ===")
while self.is_running:
try:
# 1. 시장 지표 수집
indicators = await self._collect_market_indicators()
# 2. 시장 국면 판단
detected_phase = self.phase_detector.detect_phase(indicators)
# 3. 국면 전환 시 프로파일 변경
if detected_phase != self.current_phase:
self.current_phase = detected_phase
self.profile_manager.apply_profile(detected_phase)
await self._notify_phase_change(detected_phase)
# 4. 현재 프로파일에 따라 거래 실행
await self._execute_trading()
# 5. 대기 (1시간)
await asyncio.sleep(3600)
except Exception as e:
print(f"시스템 오류: {e}")
await asyncio.sleep(300) # 5분 후 재시도
async def _collect_market_indicators(self) -> MarketIndicators:
"""시장 지표 수집"""
# 실제 API 호출 코드 (앞서 작성한 데이터 수집기 활용)
orchestrator = MarketDataOrchestrator()
data = await orchestrator.collect_all_data()
return MarketIndicators(
fear_greed_index=data['sentiment']['fear_greed']['value'],
kimchi_premium=data['sentiment']['kimchi_premium']['premium_percent'],
us_market_change=data['global_markets']['us_indices']['average_change'],
dxy_index=95.0, # DXY 데이터 수집 추가 필요
btc_dominance=data['crypto']['btc_dominance']['dominance'],
volume_ratio=1.2 # 거래량 비율 계산 추가 필요
)
async def _execute_trading(self):
"""현재 프로파일에 따른 거래 실행"""
profile = self.profile_manager.current_profile
if not profile:
return
# 종목 선정
selected_coins = await self._select_coins(profile)
# 매수 신호 확인 및 실행
for coin in selected_coins:
if await self._check_buy_signal(coin, profile):
await self._execute_buy(coin, profile)
# 보유 종목 매도 신호 확인 및 실행
positions = await self._get_positions()
for position in positions:
if await self._check_sell_signal(position, profile):
await self._execute_sell(position, profile)
async def _select_coins(self, profile: StrategyProfile) -> List[str]:
"""프로파일에 따른 종목 선정"""
# 실제 종목 선정 로직 구현
# profile.selection_strategy, selection_weights 등 활용
pass
async def _check_buy_signal(self, coin: str, profile: StrategyProfile) -> bool:
"""매수 신호 확인"""
# profile.buy_conditions 기반 신호 확인
pass
async def _check_sell_signal(self, position: Dict, profile: StrategyProfile) -> bool:
"""매도 신호 확인"""
# profile.profit_targets, stop_loss_pct 등 기반 신호 확인
pass
async def _notify_phase_change(self, phase: MarketPhase):
"""국면 전환 알림"""
# 텔레그램, 이메일 등으로 알림 발송
message = f"시장 국면 전환: {phase.value}"
print(message)
# send_telegram(message)
4. 마치며
시장 국면에 따른 종목선정, 매수, 매도 전략의 유기적 조합은 자동매매 시스템의 핵심입니다. 같은 종목선정 전략이라도 강세장에서는 공격적으로, 약세장에서는 보수적으로 파라미터를 조정해야 하며, 매수와 매도 전략 역시 시장 상황에 맞게 최적화되어야 합니다. 이번 글에서 제시한 8가지 시장 국면별 전략 프로파일은 수년간의 실전 경험과 백테스팅을 통해 검증된 것들이지만, 투자자의 성향과 자금 규모에 따라 조정이 필요할 수 있습니다.
가장 중요한 것은 규칙을 만들고 지키는 것입니다. 시장이 극단적으로 변할 때 감정에 휘둘리지 않고 시스템이 판단한 전략을 따르는 것이 장기적 성공의 열쇠입니다. 다음 글에서는 이러한 전략들을 실제 백테스팅으로 검증하고, 모의투자 시스템에서 테스트하는 방법을 다룰 예정입니다.
'데이터과학' 카테고리의 다른 글
| [코인] 자동매매시스템 - 5-1) 종목 선정 전략 - 이해 (0) | 2026.03.09 |
|---|---|
| [코인] 자동매매시스템 - 4) 종목 필터링 (0) | 2026.02.17 |
| [코인] 자동매매시스템 - 2-2) 미시적 시장 파동 분석 (0) | 2026.02.15 |
| [코인] 자동매매시스템 - 2-1) 종합 시장 지표 산출 및 시장국면 판단 (0) | 2026.02.15 |
| [코인] 자동매매시스템 - 1) 시장 현황 분석 (0) | 2026.02.15 |