Compare commits
5 Commits
901243348e
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 7b205cad58 | |||
| 200c5b4270 | |||
| e60ecb8bde | |||
| fc3ff87e17 | |||
| c4ef0e0f43 |
@@ -33,3 +33,11 @@ Analyze today's trading result and write `reports/daily/YYYY-MM-DD.md`.
|
||||
|
||||
5. Discord:
|
||||
Send a concise result summary. If a proposal file was created, include that manual approval is required.
|
||||
|
||||
6. Git commit & push:
|
||||
Stage and commit the daily report (and proposal file if created), then push to origin master.
|
||||
```bash
|
||||
git add reports/daily/YYYY-MM-DD.md reports/proposals/YYYY-MM-DD_strategy_proposal.md # only if files exist
|
||||
git commit -m "[YYYY-MM-DD] 저녁 결산 — <trades>건 / <wins>승 <losses>패 / <pnl>원 (<brief exit summary>)"
|
||||
git push origin master
|
||||
```
|
||||
|
||||
@@ -67,5 +67,13 @@ print('Discord 전송 완료')
|
||||
"
|
||||
```
|
||||
|
||||
### 5. 완료
|
||||
### 5. Git commit & push
|
||||
`data/midday_context.json`을 커밋하고 push한다:
|
||||
```bash
|
||||
git add data/midday_context.json
|
||||
git commit -m "[YYYY-MM-DD] 장중 분석 — <한 줄 요약>"
|
||||
git push origin master
|
||||
```
|
||||
|
||||
### 6. 완료
|
||||
분석 요약을 한 줄로 출력하고 종료한다.
|
||||
|
||||
+63
-15
@@ -10,23 +10,48 @@
|
||||
python app/ai/morning.py --print
|
||||
```
|
||||
위 명령을 실행해 다음 데이터를 수집한다:
|
||||
- **글로벌 지표 (global_raw)**: 나스닥·S&P500·다우·SOX·달러/원·WTI·미국10년물
|
||||
- **RSS 뉴스**: 한경증권·한경경제·파이낸셜뉴스·매경증권 4개 언론사 (~80건)
|
||||
- **KIS 수급**: 거래량 상위 30종목, 외국인/기관 순매수 상위 10종목, 업종 동향
|
||||
- **종목별 뉴스**: 네이버 검색 API로 거래량 상위 20종목 각 5건
|
||||
|
||||
### 2. 분석
|
||||
수집된 데이터를 바탕으로 다음 항목을 판단한다:
|
||||
### 2. 글로벌 분석 (global_raw → global_context)
|
||||
수집된 `global_raw`를 바탕으로 글로벌 점수와 리스크를 산출한다.
|
||||
|
||||
**global_score 산출 기준 (0~100, 50=중립):**
|
||||
- 나스닥·SOX 등락이 가장 큰 가중치 (한국 반도체·기술주 직접 영향)
|
||||
- S&P500·다우 보조
|
||||
- USD/KRW 상승(달러 강세)은 외국인 매도 압력 → 감점
|
||||
- WTI 급등은 항공·운송 부담 → 소폭 감점
|
||||
- 미국 10년물 금리 급등은 성장주 할인 → 감점
|
||||
|
||||
**global_risk 판단:**
|
||||
- global_score >= 60 → 낮음
|
||||
- global_score 40~59 → 보통
|
||||
- global_score < 40 → 높음
|
||||
|
||||
**섹터 힌트 매핑 (hot/avoid 섹터에 반영):**
|
||||
- SOX < -2% → 반도체·AI 관련 보수적, hot_sectors에서 제외 또는 주의 표시
|
||||
- SOX > +1% → 반도체 hot_sectors 강화
|
||||
- WTI > +2% → 항공 avoid, 정유/해운 관심
|
||||
- WTI < -2% → 정유 보수적, 항공 우호
|
||||
- USD/KRW > +0.5% → 전체 포지션 배율 축소 압력
|
||||
- 미국장 전반 급락(나스닥 < -2%) → position_size_multiplier 하향
|
||||
|
||||
### 3. 국내 분석
|
||||
수집된 뉴스·수급 데이터를 바탕으로 다음 항목을 판단한다:
|
||||
- **시장 분위기**: 강세 / 중립 / 약세
|
||||
- **감성 점수**: 0~100 (50=중립, 70이상=강세, 30이하=약세)
|
||||
- **domestic_score**: 0~100 (50=중립, 70이상=강세, 30이하=약세)
|
||||
- **리스크 레벨**: 낮음 / 보통 / 높음
|
||||
- **주목 섹터**: 수급·뉴스 모두 긍정적인 섹터
|
||||
- **회피 섹터**: 악재·수급 부진 섹터
|
||||
- **주목 섹터**: 수급·뉴스 모두 긍정적인 섹터 (글로벌 힌트 반영)
|
||||
- **회피 섹터**: 악재·수급 부진 섹터 (글로벌 힌트 반영)
|
||||
- **boosted_tickers**: 거래량 상위 + 외국인 순매수 겹치는 종목코드
|
||||
- **blacklist_tickers**: 종목별 뉴스에서 악재(횡령·소송·거래정지 등) 감지된 종목코드
|
||||
- **position_size_multiplier**: 0.5(약세) ~ 1.0(중립) ~ 1.5(강세)
|
||||
- **sentiment_score**: domestic_score와 global_score를 6:4로 합산한 최종 점수
|
||||
- **position_size_multiplier**: 0.5(약세) ~ 1.0(중립) ~ 1.5(강세), 글로벌 리스크 반영
|
||||
- **trade_allowed**: sentiment_score < 40이면 false
|
||||
|
||||
### 3. daily_context.json 저장
|
||||
### 4. daily_context.json 저장
|
||||
분석 결과를 `data/daily_context.json`에 저장한다. 형식:
|
||||
```json
|
||||
{
|
||||
@@ -34,23 +59,46 @@ python app/ai/morning.py --print
|
||||
"generated_at": "HH:MM:SS",
|
||||
"trade_allowed": true,
|
||||
"market_sentiment": "중립",
|
||||
"sentiment_score": 62,
|
||||
"risk_level": "보통",
|
||||
"hot_sectors": ["반도체", "2차전지"],
|
||||
"avoid_sectors": ["금융", "건설"],
|
||||
"boosted_tickers": ["005930", "000660"],
|
||||
"sentiment_score": 55,
|
||||
"domestic_score": 62,
|
||||
"global_context": {
|
||||
"nasdaq_change": -1.15,
|
||||
"sp500_change": -0.57,
|
||||
"dow_change": 0.64,
|
||||
"sox_change": -5.71,
|
||||
"usdkrw_change": 0.0,
|
||||
"wti_change": -1.21,
|
||||
"us10y": 4.43,
|
||||
"global_score": 32,
|
||||
"global_risk": "높음"
|
||||
},
|
||||
"risk_level": "높음",
|
||||
"hot_sectors": ["방산", "2차전지"],
|
||||
"avoid_sectors": ["반도체", "항공"],
|
||||
"boosted_tickers": [],
|
||||
"blacklist_tickers": [],
|
||||
"position_size_multiplier": 1.0,
|
||||
"position_size_multiplier": 0.7,
|
||||
"reason": "50자 이내 시장 요약"
|
||||
}
|
||||
```
|
||||
|
||||
### 4. Discord 알림 전송
|
||||
**sentiment_score 계산 예시:**
|
||||
- domestic_score=62, global_score=32 → sentiment_score = 62×0.6 + 32×0.4 = 50
|
||||
|
||||
### 5. Discord 알림 전송
|
||||
아래 명령을 실행해 분석 결과를 Discord로 전송한다:
|
||||
```bash
|
||||
python app/ai/morning.py --send-discord
|
||||
```
|
||||
|
||||
### 5. 완료
|
||||
### 6. Git commit & push
|
||||
`data/daily_context.json`을 커밋하고 push한다:
|
||||
```bash
|
||||
git add data/daily_context.json
|
||||
git commit -m "[YYYY-MM-DD] 장전 분석 — <한 줄 시장 요약>"
|
||||
git push origin master
|
||||
```
|
||||
|
||||
### 7. 완료
|
||||
분석 요약을 한 줄로 출력하고 종료한다.
|
||||
이 명령 안에서는 `/start-bot` 또는 `python scripts/start_bot.py`를 실행하지 않는다.
|
||||
|
||||
+50
-3
@@ -84,6 +84,49 @@ RSS_FEEDS = [
|
||||
]
|
||||
|
||||
|
||||
# ── 글로벌 지표 수집 ──────────────────────────────────────────────────────────
|
||||
|
||||
def fetch_global_data() -> dict:
|
||||
"""Yahoo Finance로 미국 주요 지수·환율·원자재 전일 종가 및 등락률 수집"""
|
||||
try:
|
||||
import yfinance as yf
|
||||
except ImportError:
|
||||
logger.warning("yfinance 미설치 — 글로벌 데이터 스킵")
|
||||
return {}
|
||||
|
||||
SYMBOLS = {
|
||||
"nasdaq": "^IXIC",
|
||||
"sp500": "^GSPC",
|
||||
"dow": "^DJI",
|
||||
"sox": "^SOX",
|
||||
"usdkrw": "KRW=X",
|
||||
"wti": "CL=F",
|
||||
"us10y": "^TNX",
|
||||
}
|
||||
|
||||
result: dict = {}
|
||||
for name, sym in SYMBOLS.items():
|
||||
try:
|
||||
hist = yf.Ticker(sym).history(period="2d")
|
||||
if len(hist) >= 2:
|
||||
prev = float(hist["Close"].iloc[-2])
|
||||
last = float(hist["Close"].iloc[-1])
|
||||
result[name] = {
|
||||
"price": round(last, 2),
|
||||
"change_pct": round((last - prev) / prev * 100, 2),
|
||||
}
|
||||
elif len(hist) == 1:
|
||||
result[name] = {
|
||||
"price": round(float(hist["Close"].iloc[-1]), 2),
|
||||
"change_pct": None,
|
||||
}
|
||||
except Exception as e:
|
||||
logger.warning(f"글로벌 데이터 실패 [{name}/{sym}]: {e}")
|
||||
|
||||
logger.info(f"글로벌 데이터 수집: {list(result.keys())}")
|
||||
return result
|
||||
|
||||
|
||||
# ── RSS 뉴스 수집 ─────────────────────────────────────────────────────────────
|
||||
|
||||
async def fetch_rss_news() -> list[str]:
|
||||
@@ -223,10 +266,13 @@ async def main(print_mode: bool = False):
|
||||
for d in ["data/news", "data/market"]:
|
||||
os.makedirs(d, exist_ok=True)
|
||||
|
||||
# 1. RSS 뉴스 수집 (4개 언론사)
|
||||
# 1. 글로벌 지표 수집 (Yahoo Finance — 동기, 블로킹 짧음)
|
||||
global_data = fetch_global_data()
|
||||
|
||||
# 2. RSS 뉴스 수집 (4개 언론사)
|
||||
news = await fetch_rss_news()
|
||||
|
||||
# 2. KIS 시장 데이터 — 데이터 수집 전용이므로 실거래 API 사용 (주문 없음)
|
||||
# 3. KIS 시장 데이터 — 데이터 수집 전용이므로 실거래 API 사용 (주문 없음)
|
||||
_orig_mock = os.environ.get("KIS_MOCK", "true")
|
||||
os.environ["KIS_MOCK"] = "false"
|
||||
kis = KISClient()
|
||||
@@ -238,7 +284,7 @@ async def main(print_mode: bool = False):
|
||||
except Exception as e:
|
||||
logger.warning(f"KIS 수집 실패: {e}")
|
||||
|
||||
# 3. 네이버 종목별 뉴스 (거래량 상위 20종목)
|
||||
# 4. 네이버 종목별 뉴스 (거래량 상위 20종목)
|
||||
stock_news = await fetch_stock_news_naver(market["volume_rank"])
|
||||
|
||||
# 파일 저장
|
||||
@@ -257,6 +303,7 @@ async def main(print_mode: bool = False):
|
||||
print(json.dumps(
|
||||
{
|
||||
"date": TODAY,
|
||||
"global_raw": global_data, # 미국 지수·환율·원자재
|
||||
"news_headlines": news, # RSS 전체 (~80건)
|
||||
"volume_rank": market["volume_rank"][:20],
|
||||
"foreign_buy_top10": market["foreign_buy"],
|
||||
|
||||
@@ -11,3 +11,4 @@ pykrx==1.0.48
|
||||
finance-datareader==0.9.94
|
||||
scikit-learn==1.5.1
|
||||
joblib==1.4.2
|
||||
yfinance>=0.2.40
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
# 2026-06-16 일일 결산
|
||||
|
||||
## 요약
|
||||
|
||||
| 항목 | 값 |
|
||||
|---|---|
|
||||
| 총 거래 | 4건 |
|
||||
| 승/패 | 2승 2패 |
|
||||
| 승률 | 50.0% |
|
||||
| 순손익 | **-28,682원** |
|
||||
| 수수료 | 18,402원 |
|
||||
| 강제청산(FORCE) | 0건 |
|
||||
|
||||
## 거래 내역
|
||||
|
||||
| 종목 | 진입 | 청산 | 진입가 | 청산가 | 수량 | 이유 | 손익 |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
| 코스모로보틱스(439960) | 09:20:08 | 09:20:52 | 28,650 | 28,000 | 90 | SL | -63,801원 |
|
||||
| 대우건설(047040) | 09:20:41 | 09:26:47 | 27,200 | 27,900 | 95 | TP2 | +60,944원 |
|
||||
| 현대바이오(048410) | 09:21:34 | 09:24:39 | 10,120 | 9,950 | 179 | SL | -34,175원 |
|
||||
| 우리금융지주(316140) | 09:43:56 | 11:14:00 | 33,300 | 33,525 | 54 | TIME | +8,350원 |
|
||||
|
||||
## 진입/청산 분석
|
||||
|
||||
### 개장 초 3연속 진입 (09:20~09:21)
|
||||
- 3건 모두 09:20~09:21 사이에 진입 → 코스모로보틱스·대우건설·현대바이오
|
||||
- 코스모로보틱스: **진입 후 44초 만에 SL** (28,650 → 28,000, -2.27%)
|
||||
- 현대바이오: **진입 후 3분 만에 SL** (10,120 → 9,950, -1.68%)
|
||||
- 대우건설만 TP2 달성 (+2.57%)
|
||||
- 개장 직후 변동성 장세에서 SL 2건 연속 발생 → L3-B 연속 SL 카운터 누적 가능성 주의
|
||||
|
||||
### 우리금융지주 TIME 청산
|
||||
- 09:43 진입, 11:14 TIME 청산 (보유 90분)
|
||||
- 진입가 33,300 → 청산가 33,525 (+0.68%)
|
||||
- 수수료 3,800원 차감 후 순익 +8,350원 — 얇은 수익
|
||||
|
||||
### FORCE 청산 없음
|
||||
- 14:50 강제청산 실행됐으나 보유 포지션 없음 (모두 자연 청산됨)
|
||||
|
||||
## KIS API 타임아웃 이슈 (오후 집중)
|
||||
- 13:57~14:03 사이 SK이노베이션(096770), 우리금융지주(316140), 후성(093370), HPSP(403870), 대우건설(047040), 대한전선(001440), 서진시스템(178320) 등 **대부분 종목에서 연속 타임아웃**
|
||||
- 재시도 3회 후 진입 체크 포기 — 오후 진입 기회 전량 차단됨
|
||||
- 14:00 이후 신규 진입 중단 시간대이므로 실질 손실은 없으나 상황 자체는 위험
|
||||
- 재발 시 손절 중 가격 조회 실패 가능성 → 모니터링 필요
|
||||
|
||||
## AI 필터 품질
|
||||
- 오늘 AI 부스트 종목: **없음** (전 거래 ai_boosted=0)
|
||||
- 신호진단 로그상 오후 내내 목표가 미달 종목 다수 — 정상적 필터링
|
||||
- SL 차단(재진입 차단): 코스모로보틱스·현대바이오 → 당일 재진입 방지 정상 작동
|
||||
|
||||
## 초과매매 / 연속 SL 점검
|
||||
- 4건 진입 — 과다하지 않음
|
||||
- 09:20~09:21에 3건 집중 진입 (개장 초 쏠림)
|
||||
- 코스모로보틱스·현대바이오 SL 연속 2건 → L3-B 누적 카운터 1 상승했을 가능성
|
||||
- 이후 대우건설 TP2, 우리금융 TIME으로 카운터 영향 상쇄 여부 확인 필요
|
||||
|
||||
## 30일 누적 현황 (6거래일)
|
||||
|
||||
| 지표 | 값 | 기준 | 통과 |
|
||||
|---|---|---|---|
|
||||
| 운영 거래일 | 6일 | ≥30일 | ✗ |
|
||||
| 승률 | 58.6% | >48% | ✓ |
|
||||
| MDD | -0.3% | <-10% | ✓ |
|
||||
| 샤프 | 4.69 | >1.0 | ✓ |
|
||||
| L3 발동 | 0회 | ≤2회/월 | ✓ |
|
||||
|
||||
**라이브 전환 불가** — 운영 기간 요건 미충족 (6/30일)
|
||||
|
||||
## 리스크 관찰 사항
|
||||
|
||||
1. **개장 초 연속 SL 패턴**: 3일 중 2일에서 09:20~09:22 진입 후 빠른 SL 발생 (오늘 2건, 2026-06-12에도 유사). 개장 직후 진동성이 큰 구간에서 위험 집중.
|
||||
2. **KIS 오후 타임아웃 반복**: 2026-06-15에도 유사 증상 보고됨. 14:00 이후 집중 → 시스템 부하 패턴인지, KIS 서버 쪽 문제인지 추가 관찰 필요.
|
||||
3. **TIME 청산 수익 박리**: 우리금융 90분 보유 후 +8,350원 — 수수료 대비 얇은 수익. `MAX_HOLD_MIN` 90분이 실효성 있는지 장기적 검토 대상.
|
||||
|
||||
## 전략 제안 여부
|
||||
|
||||
전략 파라미터 변경은 근거 데이터 부족 (29거래 이하, 패턴 관찰 2일). 이번 결산에서 제안서 없음.
|
||||
|
||||
개장 초 진입 밀집 현상(09:20~09:22 구간 3건 집중)이 반복되면 `ENTRY_START` 이후 첫 N분간 진입 1건 제한 등의 검토가 가능하나, 현 시점에서 데이터 불충분.
|
||||
|
||||
## 실행 품질
|
||||
- 제로 가격 행 없음
|
||||
- 누락 가격 없음
|
||||
- 정상 청산 확인
|
||||
- 강제청산(FORCE) 없음 — 양호
|
||||
@@ -0,0 +1,99 @@
|
||||
# 2026-06-17 일일 결산
|
||||
|
||||
## 요약
|
||||
|
||||
| 항목 | 값 |
|
||||
|---|---|
|
||||
| 총 거래 | 3건 |
|
||||
| 승/패 | 1승 2패 |
|
||||
| 승률 | 33.3% |
|
||||
| 순손익 | **+36,844원** |
|
||||
| 수수료 | 10,056원 |
|
||||
| 강제청산(FORCE) | 0건 |
|
||||
|
||||
## 거래 내역
|
||||
|
||||
| 종목 | 진입 | 청산 | 진입가 | 청산가 | 수량 | 이유 | 손익 |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
| KBI메탈(024840) | 09:20:28 | 09:21:07 | 5,370 | 5,670 | 335 | TP2 | +96,526원 |
|
||||
| 제주반도체(080220) | 09:21:03 | 09:22:26 | 108,100 | 106,400 | 16 | SL | -30,779원 |
|
||||
| SK이터닉스(475150) | 10:08:09 | 10:14:51 | 55,300 | 54,100 | 22 | SL | -28,903원 |
|
||||
|
||||
## 진입/청산 분석
|
||||
|
||||
### KBI메탈 TP2 — 39초 만에 완료
|
||||
- 09:20:28 진입 → 09:21:07 TP2 청산 (보유 39초)
|
||||
- 진입가 5,370 → 청산가 5,670 (+5.59%)
|
||||
- 개장 초 모멘텀 완전 포착. TP2 수준(+5%대)에 빠르게 도달한 강한 상승 흐름
|
||||
- 1건이 오늘 전체 흑자를 결정 (순익 +96,526원 → 2 SL 합산 -59,682원 커버)
|
||||
|
||||
### 제주반도체 SL — 83초 만에 청산
|
||||
- 09:21:03 진입 → 09:22:26 SL (보유 83초)
|
||||
- 진입가 108,100 → 청산가 106,400 (-1.57%)
|
||||
- KBI메탈 진입 35초 후 바로 진입. 개장 초 연속 진입 패턴 반복
|
||||
- 고가 단위 종목(10만원대) 소량(16주)으로 위험 노출이 제한됨
|
||||
|
||||
### SK이터닉스 SL — 6분 만에 청산
|
||||
- 10:08:09 진입 → 10:14:51 SL (보유 6분 42초)
|
||||
- 진입가 55,300 → 청산가 54,100 (-2.17%)
|
||||
- 오전 2차 진입 시도. 개장 초 흥분이 가라앉은 이후 모멘텀 지속 실패
|
||||
|
||||
### FORCE 청산 없음
|
||||
- 14:50 강제청산 실행됐으나 보유 포지션 없음
|
||||
- 세 건 모두 10:15 이전에 자연 청산 완료
|
||||
|
||||
## 손익비 점검
|
||||
|
||||
| 지표 | 값 |
|
||||
|---|---|
|
||||
| 평균 수익 (TP) | +96,526원 (1건) |
|
||||
| 평균 손실 (SL) | -29,841원 (2건 평균) |
|
||||
| 손익비 | 3.23 : 1 |
|
||||
|
||||
오늘은 승률(33.3%)이 낮음에도 손익비 3.2:1이 흑자를 만든 구조적 성공 사례.
|
||||
TP2 도달 시 조기 청산하지 않고 완주한 것이 핵심.
|
||||
|
||||
## AI 필터 품질
|
||||
|
||||
- 오늘 AI 부스트 종목: **없음** (전 거래 ai_boosted=0)
|
||||
- AI 블랙리스트/필터 특이사항 없음
|
||||
- 세 종목 모두 순수 기술 신호 기반 진입
|
||||
|
||||
## 초과매매 / 연속 SL 점검
|
||||
|
||||
- 3건 진입 — 적정 수준
|
||||
- 개장 초(09:20~09:21) 2건 연속 진입 패턴 지속 — 과거 3거래일 연속 관찰
|
||||
- SL 2건 연속 발생 → L3-B 카운터 누적 확인 필요
|
||||
- 이후 추가 진입 없었으므로 실질 영향은 제한적
|
||||
- 14:00 이후 진입 차단 정상 작동 (로그 확인)
|
||||
|
||||
## 30일 누적 현황 (7거래일)
|
||||
|
||||
| 지표 | 값 | 기준 | 통과 |
|
||||
|---|---|---|---|
|
||||
| 운영 거래일 | 7일 | ≥30일 | ✗ |
|
||||
| 승률 | 56.2% | >48% | ✓ |
|
||||
| MDD | -0.3% | <-10% | ✓ |
|
||||
| 샤프 | 6.34 | >1.0 | ✓ |
|
||||
| L3 발동 | 0회 | ≤2회/월 | ✓ |
|
||||
|
||||
**라이브 전환 불가** — 운영 기간 요건 미충족 (7/30일)
|
||||
|
||||
## 리스크 관찰 사항
|
||||
|
||||
1. **개장 초 연속 진입 밀집 패턴 지속**: 3거래일 연속 09:20~09:21 구간에 복수 종목 동시 진입. 변동성이 극대화되는 시간대에 리스크가 집중됨. 단건 SL 시 손실이 크지 않으나, 연속 SL 가능성 상존.
|
||||
2. **TP2 단건 의존 구조**: 오늘처럼 1 TP2 + 2 SL 구조에서 흑자가 되려면 TP2 수익이 충분히 커야 함. KBI메탈 +5.59%라서 성공했지만, TP2가 +2~3% 수준에 그쳤다면 적자 전환.
|
||||
3. **SL 연속 후 추가 진입 자제**: SK이터닉스 SL(10:14) 이후 추가 진입 없었음 — L3-B 카운터 반응인지 진입 신호 부재인지 확인 필요.
|
||||
|
||||
## 전략 제안 여부
|
||||
|
||||
전략 파라미터 변경 근거 데이터 부족 (30거래 미만). 이번 결산에서 제안서 없음.
|
||||
|
||||
개장 초 집중 진입 패턴(4거래일 연속)이 추가 누적되면 `ENTRY_START` 이후 첫 5분간 진입 건수 제한 등 검토 가능.
|
||||
|
||||
## 실행 품질
|
||||
- 제로 가격 행 없음
|
||||
- 누락 가격 없음
|
||||
- 정상 청산 확인
|
||||
- 강제청산(FORCE) 없음 — 양호
|
||||
- 결산 중복 처리 방지 정상 작동 ("결산 이미 처리됨" 로그 확인)
|
||||
@@ -0,0 +1,115 @@
|
||||
# 2026-06-18 일일 결산
|
||||
|
||||
## 요약
|
||||
|
||||
| 항목 | 값 |
|
||||
|---|---|
|
||||
| 총 거래 | 3건 |
|
||||
| 승/패 | 0승 3패 |
|
||||
| 승률 | 0.0% |
|
||||
| 순손익 | **-50,524원** |
|
||||
| 수수료 | 6,794원 |
|
||||
| 강제청산(FORCE) | 0건 |
|
||||
|
||||
## 거래 내역
|
||||
|
||||
| 종목 | 진입 | 청산 | 진입가 | 청산가 | 수량 | 이유 | AI부스트 | 손익 |
|
||||
|---|---|---|---|---|---|---|---|---|
|
||||
| 대원전선(006340) | 09:20:58 | 09:23:51 | 13,160 | 12,950 | 113 | SL | ✗ | -26,807원 |
|
||||
| 삼성전자(005930) | 09:50:43 | 09:52:42 | 354,500 | 349,500 | 4 | SL | ✓ | -22,939원 |
|
||||
| 서산(079650) | 11:21:22 | 12:57:23 | 4,815 | 4,815 | 77 | TIME | ✗ | -779원 |
|
||||
|
||||
## 진입/청산 분석
|
||||
|
||||
### 대원전선 SL — 2분 53초 만에 청산
|
||||
- 09:20:58 진입 → 09:23:51 SL (보유 173초)
|
||||
- 진입가 13,160 → 청산가 12,950 (-1.60%)
|
||||
- `ENTRY_START=09:20` 직후 첫 번째 진입, 개장 초 변동성 구간
|
||||
- 진입 후 바로 방향이 꺾임 → 모멘텀 지속 실패
|
||||
|
||||
### 삼성전자 SL — 1분 59초 만에 청산 (AI 부스트)
|
||||
- 09:50:43 진입 → 09:52:42 SL (보유 119초)
|
||||
- 진입가 354,500 → 청산가 349,500 (-1.41%)
|
||||
- **AI 부스트 종목이 SL로 청산** — 역선택 사례 기록
|
||||
- 대형주 4주 포지션, 절대 손실액 -22,939원
|
||||
- 오전 2차 진입 시도였으나 모멘텀 부재
|
||||
|
||||
### 서산 TIME — 1시간 36분 보유 후 타임아웃
|
||||
- 11:21:22 진입 → 12:57:23 TIME (보유 96분 1초)
|
||||
- 진입가 = 청산가 = 4,815원 → **실질 수익 0원, 수수료 -779원만 손실**
|
||||
- MAX_HOLD_MIN(90분) 도달 직전 타임아웃
|
||||
- 점심 시간대 유동성 소멸로 방향성 없이 횡보
|
||||
|
||||
## 손익비 점검
|
||||
|
||||
| 지표 | 값 |
|
||||
|---|---|
|
||||
| 평균 수익 (TP/WIN) | — (없음) |
|
||||
| 평균 손실 (SL) | -24,873원 (2건 평균) |
|
||||
| 손익비 | 해당 없음 (승리 없음) |
|
||||
|
||||
오늘은 TP 진입 없이 전 거래가 손실 또는 비용 손실로 마감.
|
||||
8거래일 운영 중 최초 승률 0% 일. 최대 단일일 손실.
|
||||
|
||||
## AI 필터 품질
|
||||
|
||||
- AI 부스트 종목: **삼성전자 1건** → **SL 청산** (역선택)
|
||||
- AI 비부스트 종목: 대원전선(SL), 서산(TIME)
|
||||
- 오늘은 AI 부스트가 긍정적 역할을 하지 못함
|
||||
- 누적 AI 부스트 성과 추적 필요 (부스트 종목 승률 별도 집계 권장)
|
||||
|
||||
## 초과매매 / 연속 SL 점검
|
||||
|
||||
- 3건 진입 — 건수 자체는 적정 수준
|
||||
- SL 2건 연속 발생 → L3-B 카운터 영향 여부 확인 필요
|
||||
- 서산 진입(11:21)이 L3-B 발동 후 축소 사이징으로 집행됐을 가능성
|
||||
- **개장 초 SL 패턴 5거래일 연속 관찰**:
|
||||
- 06-12: 개장 초 SL 다수
|
||||
- 06-15: 개장 초 TP (예외)
|
||||
- 06-16: 코스모로보틱스·현대바이오 SL (09:20~09:22)
|
||||
- 06-17: 제주반도체 SL (09:21), KBI메탈 TP2 (09:21)
|
||||
- 06-18: 대원전선·삼성전자 모두 SL (09:20~09:52)
|
||||
- 14:00 이후 진입 차단 정상 작동 (로그 확인)
|
||||
- 14:50 강제청산 실행 → 포지션 없음 (정상)
|
||||
|
||||
## 30일 누적 현황 (8거래일)
|
||||
|
||||
| 지표 | 값 | 기준 | 통과 | 전일 대비 |
|
||||
|---|---|---|---|---|
|
||||
| 운영 거래일 | 8일 | ≥30일 | ✗ | +1일 |
|
||||
| 승률 | 51.4% | >48% | ✓ | 56.2% → 51.4% ▼ |
|
||||
| MDD | -0.5% | <-10% | ✓ | -0.3% → -0.5% ▼ |
|
||||
| 샤프 | 2.78 | >1.0 | ✓ | 6.34 → 2.78 ▼ |
|
||||
| L3 발동 | 0회 | ≤2회/월 | ✓ | 유지 |
|
||||
|
||||
**라이브 전환 불가** — 운영 기간 요건 미충족 (8/30일)
|
||||
|
||||
오늘의 전패로 주요 지표가 눈에 띄게 하락했으나 기준선은 모두 유지 중.
|
||||
샤프 6.34 → 2.78 급감은 일 변동성 확대를 반영한 정상 반응.
|
||||
|
||||
## 리스크 관찰 사항
|
||||
|
||||
1. **개장 초(09:20~09:30) SL 집중 패턴**: 5거래일 중 4거래일에서 관찰. 개장 직후 변동성이 전략 SL 범위 안에서 예측 불가능하게 작동. 오늘은 두 건 모두 2분 이내 청산됨.
|
||||
|
||||
2. **AI 부스트 역선택**: 삼성전자 부스트 후 SL. AI 신호가 개장 후 단기 가격 흐름을 정확히 예측하지 못하는 사례 누적 중. 부스트 종목 승률 별도 집계 필요.
|
||||
|
||||
3. **서산 TIME 패턴**: 진입가 = 청산가인 순수 수수료 손실. 명확한 모멘텀 없이 진입했을 가능성. 진입 신호 품질 확인 필요.
|
||||
|
||||
4. **오늘 시장 약세 맥락**: 대원전선·삼성전자 동시 SL은 개별 종목 문제보다 시장 전반의 개장 초 약세 분위기 반영일 가능성. 단일일 결과로 파라미터 조정 판단 자제.
|
||||
|
||||
## 전략 제안 여부
|
||||
|
||||
전략 파라미터 변경 근거 데이터 부족 (30거래 미만, 누적 35건 중 유효 분석 건수 제한적).
|
||||
**이번 결산에서 정식 제안서 없음.**
|
||||
|
||||
관찰 사항으로 기록:
|
||||
- 개장 초(09:20~09:30) SL 집중 패턴이 추가 거래일 누적되면 `ENTRY_START` 지연(09:20→09:25 또는 09:30) 또는 개장 후 첫 10분 진입 건수 제한 검토 가능
|
||||
- AI 부스트 종목 승률 별도 집계 후 부스트 효과 재평가 필요
|
||||
|
||||
## 실행 품질
|
||||
|
||||
- 제로 가격 행: 없음
|
||||
- 누락 가격: 없음
|
||||
- 정상 청산: 3건 모두 확인
|
||||
- 강제청산(FORCE): 없음 (포지션 없이 14:50 도달)
|
||||
- 결산 로그: 정상 ("결산: 3회 / 승0 패3 / -50,524원 (fee 6,794원)")
|
||||
Reference in New Issue
Block a user