Compare commits
12 Commits
9f439db191
..
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 7b205cad58 | |||
| 200c5b4270 | |||
| e60ecb8bde | |||
| fc3ff87e17 | |||
| c4ef0e0f43 | |||
| 901243348e | |||
| eac4ece01e | |||
| f16576bfb7 | |||
| 60109370f4 | |||
| 5ff6d32ea1 | |||
| 16b31b3154 | |||
| 24c526b9e5 |
@@ -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`를 실행하지 않는다.
|
||||
|
||||
@@ -150,14 +150,17 @@ Highest-leverage fixes:
|
||||
After /morning exits, run_morning.ps1 calls python scripts/start_bot.py.
|
||||
|
||||
08:30 Bot loads daily_context.json and builds the watch universe.
|
||||
08:50 Bot calculates volatility breakout targets.
|
||||
08:50 Bot calculates volatility breakout targets. If restarted after 08:50,
|
||||
the bot recalculates targets immediately; open=0 is ignored.
|
||||
09:00 Morning trading session starts.
|
||||
09:00-15:05 StockBot_Watchdog checks bot liveness every 5 minutes.
|
||||
11:00 New entries pause if midday_context.json has not loaded.
|
||||
11:20 StockBot_Midday -> scripts/run_midday.ps1 -> /midday
|
||||
Build data/midday_context.json; bot detects it and starts lunch controls.
|
||||
14:00 New entries stop; exits continue.
|
||||
14:50 Force exit all positions. This time is immutable.
|
||||
15:10 Daily settlement and Discord summary.
|
||||
Watchdog must not restart the bot at or after 15:10.
|
||||
15:30 StockBot_Evening -> scripts/run_evening.ps1 -> /evening
|
||||
Write daily report and proposal report when needed.
|
||||
16:00 StockBot_Training -> scripts/run_training_pipeline.ps1
|
||||
|
||||
@@ -150,14 +150,17 @@ Highest-leverage fixes:
|
||||
After /morning exits, run_morning.ps1 calls python scripts/start_bot.py.
|
||||
|
||||
08:30 Bot loads daily_context.json and builds the watch universe.
|
||||
08:50 Bot calculates volatility breakout targets.
|
||||
08:50 Bot calculates volatility breakout targets. If restarted after 08:50,
|
||||
the bot recalculates targets immediately; open=0 is ignored.
|
||||
09:00 Morning trading session starts.
|
||||
09:00-15:05 StockBot_Watchdog checks bot liveness every 5 minutes.
|
||||
11:00 New entries pause if midday_context.json has not loaded.
|
||||
11:20 StockBot_Midday -> scripts/run_midday.ps1 -> /midday
|
||||
Build data/midday_context.json; bot detects it and starts lunch controls.
|
||||
14:00 New entries stop; exits continue.
|
||||
14:50 Force exit all positions. This time is immutable.
|
||||
15:10 Daily settlement and Discord summary.
|
||||
Watchdog must not restart the bot at or after 15:10.
|
||||
15:30 StockBot_Evening -> scripts/run_evening.ps1 -> /evening
|
||||
Write daily report and proposal report when needed.
|
||||
16:00 StockBot_Training -> scripts/run_training_pipeline.ps1
|
||||
|
||||
@@ -24,8 +24,10 @@ AI에게 맡기지는 않습니다. AI는 장 전/장중/장후 시장을 분석
|
||||
| 시간 | 흐름 | 내용 |
|
||||
|---|---|---|
|
||||
| 08:15 | 장 전 분석 | 뉴스, 수급, 업종 분위기를 분석해 `daily_context.json` 생성 |
|
||||
| 08:30 | 봇 시작/준비 | 유니버스 선정, 목표가 계산, Discord 알림 |
|
||||
| 08:30 | 봇 시작/준비 | AI 컨텍스트 로드, 유니버스 선정 |
|
||||
| 08:50 | 목표가 계산 | 전일 고저와 당일 시가 기반, `open=0`이면 계산 제외 |
|
||||
| 09:00 | 오전 매매 | 변동성 돌파 조건과 AI 컨텍스트 필터를 함께 확인 |
|
||||
| 09:00-15:05 | Watchdog | 5분마다 봇 생존 감시, 15:10 결산 직후 재시작 금지 |
|
||||
| 11:20 | 장중 분석 | 오전 결과와 현재 시장을 비교해 `midday_context.json` 생성 |
|
||||
| 14:00 | 신규 진입 종료 | 새 진입은 막고 보유 포지션 청산 감시만 계속 |
|
||||
| 14:50 | 강제 청산 | 모든 포지션 정리 |
|
||||
@@ -38,6 +40,8 @@ AI에게 맡기지는 않습니다. AI는 장 전/장중/장후 시장을 분석
|
||||
- 전략: 변동성 돌파(`K=0.5`)
|
||||
- 진입 시작: `09:20`
|
||||
- 강제 청산: `14:50`
|
||||
- 일일 결산: `15:10`
|
||||
- Watchdog: `09:00-15:05`, 5분 간격
|
||||
- DB: SQLite (`data/stockbot.db`)
|
||||
- 알림: Discord Webhook
|
||||
- AI/ML: 시장 분석과 관찰용 점수 기록까지만 사용
|
||||
|
||||
+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"],
|
||||
|
||||
@@ -55,9 +55,17 @@ class KISClient:
|
||||
)
|
||||
self._load_token_from_file()
|
||||
|
||||
# rate limit: 모의투자 1건/초보다 보수적, 실거래 5건/초 이하
|
||||
self._rate_limit = 1 if self.is_mock else 5
|
||||
self._request_spacing = 1.2 if self.is_mock else 0.22
|
||||
# rate limit: KIS occasionally rejects even nominally safe bursts.
|
||||
# Keep defaults conservative and allow local override from .env.
|
||||
self._rate_limit = int(os.getenv(
|
||||
"KIS_MOCK_RATE_LIMIT" if self.is_mock else "KIS_REAL_RATE_LIMIT",
|
||||
"1" if self.is_mock else "3",
|
||||
))
|
||||
self._request_spacing = float(os.getenv(
|
||||
"KIS_MOCK_REQUEST_SPACING" if self.is_mock else "KIS_REAL_REQUEST_SPACING",
|
||||
"1.7" if self.is_mock else "0.35",
|
||||
))
|
||||
self._cooldown_until = 0.0
|
||||
self._semaphore = asyncio.Semaphore(1)
|
||||
self._req_times : list = []
|
||||
|
||||
@@ -175,6 +183,9 @@ class KISClient:
|
||||
|
||||
async with self._semaphore:
|
||||
now = time.monotonic()
|
||||
if now < self._cooldown_until:
|
||||
await asyncio.sleep(self._cooldown_until - now)
|
||||
now = time.monotonic()
|
||||
if self._req_times:
|
||||
wait = self._request_spacing - (now - self._req_times[-1])
|
||||
if wait > 0:
|
||||
@@ -204,6 +215,8 @@ class KISClient:
|
||||
rt_cd = data.get("rt_cd", "")
|
||||
if rt_cd != "0":
|
||||
msg = data.get("msg1", "알 수 없는 오류")
|
||||
if "초당" in msg or "거래건수" in msg or "rate" in msg.lower():
|
||||
self._cooldown_until = time.monotonic() + max(2.5, self._request_spacing * 2)
|
||||
logger.error(f"KIS API 오류 [{tr_id}]: {rt_cd} - {msg}")
|
||||
raise RuntimeError(f"KIS API 오류: {msg}")
|
||||
|
||||
|
||||
+20
-3
@@ -844,15 +844,28 @@ class StockBot:
|
||||
async def calc_targets(self):
|
||||
"""당일 시가 기반 목표가 계산"""
|
||||
logger.info("목표가 계산 시작")
|
||||
self.strategy.targets.clear()
|
||||
self.strategy.today_open.clear()
|
||||
now_str = datetime.now().strftime("%H:%M")
|
||||
valid_count = 0
|
||||
for ticker in self.universe:
|
||||
try:
|
||||
price_info = await self._get_price_with_retry(ticker, "TARGET")
|
||||
self.strategy.set_today_open(ticker, price_info["open"])
|
||||
target = self.strategy.get_target(ticker)
|
||||
open_price = price_info.get("open") or 0
|
||||
name = self.ticker_names.get(ticker, ticker)
|
||||
if open_price <= 0:
|
||||
current = price_info.get("current") or 0
|
||||
if now_str >= "09:00" and current > 0:
|
||||
open_price = current
|
||||
logger.warning(f"시가 0 감지({name}/{ticker}) → 현재가 {current:,}를 임시 시가로 사용")
|
||||
else:
|
||||
logger.info(f"목표가 제외({name}/{ticker}): 시가 미확정(open=0)")
|
||||
await asyncio.sleep(1.1)
|
||||
continue
|
||||
self.strategy.set_today_open(ticker, open_price)
|
||||
target = self.strategy.get_target(ticker)
|
||||
if target > 0:
|
||||
logger.info(f"목표가: {name}({ticker}) {target:,.0f}원 [시가 {price_info['open']:,}]")
|
||||
logger.info(f"목표가: {name}({ticker}) {target:,.0f}원 [시가 {open_price:,}]")
|
||||
valid_count += 1
|
||||
await asyncio.sleep(1.1)
|
||||
except Exception as e:
|
||||
@@ -1329,6 +1342,9 @@ async def run():
|
||||
ctx = bot.strategy.load_ai_context()
|
||||
bot.risk.set_risk_level(ctx.get("risk_level", "보통"))
|
||||
await bot.update_universe()
|
||||
if now >= "08:50":
|
||||
logger.info("08:50 이후 장 전 재시작 감지 → 목표가 즉시 계산")
|
||||
await bot.calc_targets()
|
||||
|
||||
while True:
|
||||
now = datetime.now().strftime("%H:%M")
|
||||
@@ -1354,6 +1370,7 @@ async def run():
|
||||
|
||||
# 09:00 매매 루프 시작
|
||||
elif now == "09:00":
|
||||
await bot.calc_targets()
|
||||
await bot.trading_loop()
|
||||
|
||||
# 15:10 결산
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -47,6 +47,7 @@ class VolatilityBreakout:
|
||||
self._entry_times: dict = {} # ticker → 마지막 진입 datetime (쿨다운 추적)
|
||||
self._exit_times: dict = {} # ticker -> 마지막 최종 청산 datetime (쿨다운 추적)
|
||||
self._tp_closed_tickers: set[str] = set() # TP로 전량 청산된 당일 재진입 차단
|
||||
self._rebreak_required_tickers: set[str] = set() # TIME/FORCE 후 목표가 재돌파 대기
|
||||
|
||||
# ── AI 컨텍스트 로드 ──
|
||||
|
||||
@@ -103,6 +104,9 @@ class VolatilityBreakout:
|
||||
if not prev:
|
||||
logger.info(f"목표가 제외({ticker}): 전일 데이터 없음")
|
||||
return
|
||||
if open_price <= 0:
|
||||
logger.info(f"목표가 제외({ticker}): 당일 시가 미확정({open_price})")
|
||||
return
|
||||
if prev["amount"] < MIN_TRADE_AMOUNT:
|
||||
logger.info(
|
||||
f"목표가 제외({ticker}): 전일 거래대금 {prev['amount']/1e8:.0f}억"
|
||||
@@ -126,8 +130,10 @@ class VolatilityBreakout:
|
||||
exit_time = exit_time or datetime.now()
|
||||
if reason in ("TIME", "FORCE"):
|
||||
self._exit_times[ticker] = exit_time
|
||||
self._rebreak_required_tickers.add(ticker)
|
||||
elif reason in ("TP1", "TP2"):
|
||||
self._tp_closed_tickers.add(ticker)
|
||||
self._rebreak_required_tickers.discard(ticker)
|
||||
|
||||
# ── 진입 신호 판단 ──
|
||||
|
||||
@@ -151,6 +157,16 @@ class VolatilityBreakout:
|
||||
result["reason"] = "TP 당일 재진입 차단"
|
||||
return result
|
||||
|
||||
# 목표가 확인
|
||||
target = self.targets.get(ticker, 0)
|
||||
if target <= 0:
|
||||
result["reason"] = "목표가 없음"
|
||||
return result
|
||||
|
||||
# TIME/FORCE 이후 쿨다운 중이라도 목표가 아래로 내려온 사실은 기록한다.
|
||||
if ticker in self._rebreak_required_tickers and current_price < target:
|
||||
self._rebreak_required_tickers.discard(ticker)
|
||||
|
||||
# TIME/FORCE 청산 후 쿨다운은 진입 시각이 아니라 청산 시각 기준이다.
|
||||
last_exit = self._exit_times.get(ticker)
|
||||
if last_exit is not None:
|
||||
@@ -159,10 +175,10 @@ class VolatilityBreakout:
|
||||
result["reason"] = f"재진입 쿨다운 ({elapsed:.0f}분 / {TICKER_REENTRY_COOLDOWN_MIN}분)"
|
||||
return result
|
||||
|
||||
# 목표가 확인
|
||||
target = self.targets.get(ticker, 0)
|
||||
if target <= 0:
|
||||
result["reason"] = "목표가 없음"
|
||||
# TIME/FORCE 청산 뒤에는 남아 있는 당일 돌파 신호를 그대로 재사용하지 않는다.
|
||||
# 목표가 아래로 식은 뒤 다시 돌파해야 새로운 진입 신호로 인정한다.
|
||||
if ticker in self._rebreak_required_tickers:
|
||||
result["reason"] = f"재돌파 대기 ({current_price:,} >= {target:,.0f})"
|
||||
return result
|
||||
|
||||
# 기술적 조건: 현재가 >= 목표가
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,10 +1,19 @@
|
||||
{
|
||||
"date": "2026-05-28",
|
||||
"date": "2026-06-15",
|
||||
"generated_at": "11:20:18",
|
||||
"lunch_trade_allowed": false,
|
||||
"position_size_multiplier": 0.3,
|
||||
"hot_sectors": [],
|
||||
"avoid_sectors": ["전기전자", "반도체", "전기가스업", "기계", "의약품"],
|
||||
"strategy_note": "인버스ETF 거래량 1~3위, 전업종 하락. 오전 강세 예측 완전 빗나감. 현재 보유 2종목(흥아해운·SFA반도체)만 관리, 신규 진입 없음.",
|
||||
"reason": "연속손절6회·전업종약세·인버스거래량1위→점심진입중단"
|
||||
"lunch_trade_allowed": true,
|
||||
"position_size_multiplier": 0.5,
|
||||
"hot_sectors": [
|
||||
"반도체",
|
||||
"기계",
|
||||
"철강금속",
|
||||
"의약품"
|
||||
],
|
||||
"avoid_sectors": [
|
||||
"전기전자",
|
||||
"건설업",
|
||||
"방산"
|
||||
],
|
||||
"strategy_note": "연속손절 2회(에이팩트SL+삼성전자TIME) → L3-B 0.5x 적용. 기계·철강 오전 최강세 섹터로 hot 업데이트. 전기전자 예측 빗나감(-1.5%), 금융은 avoid 해제. 점심 진입 허용, 배율만 축소.",
|
||||
"reason": "KOSPI +4.7% 강세 / 오전 75% 승률+9만원 / 연속손절2회 L3-B 배율0.5 유지"
|
||||
}
|
||||
|
||||
+11
-66
@@ -1,67 +1,12 @@
|
||||
trade_id,date,ticker,name,entry_time,current_price,entry_price,target_price,stop_price,today_open,prev_high,prev_low,prev_amount,volume,change_pct,market_sentiment,sentiment_score,risk_level,trade_allowed,hot_sectors,avoid_sectors,boosted_tickers,blacklist_tickers,ai_boosted,ai_win_score,ai_stop_loss_score,ai_model_version,position_size_multiplier,combined_multiplier,entry_reason,price_1m,ret_1m,mfe_1m,mae_1m,price_3m,ret_3m,mfe_3m,mae_3m,price_5m,ret_5m,mfe_5m,mae_5m,price_10m,ret_10m,mfe_10m,mae_10m,exit_time,exit_price,quantity,exit_reason,pnl,label_win,label_stop_loss
|
||||
128,2026-05-28,490470,세미파이브,09:15:21,41350.0,41300.0,1925.0,40680.5,0.0,37600.0,33750.0,41601686200.0,380384.0,0.36,강세,72,보통,1,"[""반도체"", ""AI/로봇"", ""방산""]","[""건설업"", ""전기가스업"", ""주류""]","[""000100"", ""000150""]",[],0,,,,1.3,1.3,"목표가 돌파 (41,350 >= 1,925)",41550.0,0.6053268765133172,0.6053268765133172,0.0,41900.0,1.4527845036319613,1.4527845036319613,0.0,41400.0,0.24213075060532688,1.4527845036319613,0.0,41650.0,0.847457627118644,1.4527845036319613,0.0,09:39:16,40700.0,62,SL,-42504.72,0,1
|
||||
129,2026-05-28,034220,LG디스플레이,09:15:30,15970.0,15990.0,1160.0,15750.15,0.0,15170.0,12850.0,292284486340.0,6789154.0,13.02,강세,72,보통,1,"[""반도체"", ""AI/로봇"", ""방산""]","[""건설업"", ""전기가스업"", ""주류""]","[""000100"", ""000150""]",[],0,,,,1.3,1.3,"목표가 돌파 (15,970 >= 1,160)",15980.0,-0.06253908692933083,0.0,-0.06253908692933083,15810.0,-1.125703564727955,0.0,-1.125703564727955,15760.0,-1.4383989993746091,0.0,-1.4383989993746091,15690.0,-1.876172607879925,0.0,-1.876172607879925,09:18:16,15740.0,162,SL,-45860.823,0,1
|
||||
130,2026-05-28,066980,한성크린텍,09:18:21,2170.0,2170.0,276.5,2137.45,0.0,2450.0,1897.0,38143145612.0,897862.0,7.69,강세,72,보통,1,"[""반도체"", ""AI/로봇"", ""방산""]","[""건설업"", ""전기가스업"", ""주류""]","[""000100"", ""000150""]",[],0,,,,1.3,0.9099999999999999,"목표가 돌파 (2,170 >= 276)",2190.0,0.9216589861751152,0.9216589861751152,0.0,2205.0,1.6129032258064515,1.6129032258064515,0.0,2185.0,0.6912442396313364,1.6129032258064515,0.0,2290.0,5.529953917050691,5.529953917050691,0.0,09:23:55,2235.0,252,TP2,15199.695,1,0
|
||||
132,2026-05-28,001740,SK네트웍스,09:24:06,11060.0,11040.0,385.0,10874.4,0.0,8580.0,7810.0,98137982810.0,6320902.0,-2.81,강세,72,보통,1,"[""반도체"", ""AI/로봇"", ""방산""]","[""건설업"", ""전기가스업"", ""주류""]","[""000100"", ""000150""]",[],0,,,,1.3,1.3,"목표가 돌파 (11,060 >= 385)",11000.0,-0.36231884057971014,0.0,-0.36231884057971014,10910.0,-1.177536231884058,0.0,-1.177536231884058,10890.0,-1.358695652173913,0.0,-1.358695652173913,10740.0,-2.717391304347826,0.0,-2.717391304347826,09:29:18,10870.0,235,SL,-45320.3375,0,1
|
||||
133,2026-05-28,047040,대우건설,09:29:24,25975.0,25900.0,1575.0,25511.5,0.0,30150.0,27000.0,466483203900.0,2085879.0,-2.9,강세,72,보통,1,"[""반도체"", ""AI/로봇"", ""방산""]","[""건설업"", ""전기가스업"", ""주류""]","[""000100"", ""000150""]",[],0,,,,1.3,0.9099999999999999,"목표가 돌파 (25,975 >= 1,575)",25750.0,-0.5791505791505791,0.0,-0.5791505791505791,25750.0,-0.5791505791505791,0.0,-0.5791505791505791,25750.0,-0.5791505791505791,0.0,-0.5791505791505791,25850.0,-0.19305019305019305,0.0,-0.5791505791505791,09:50:12,25500.0,70,SL,-31752.7,0,1
|
||||
134,2026-05-28,261780,차백신연구소,09:39:31,3885.0,3850.0,217.5,3792.25,0.0,3570.0,3135.0,16732062900.0,3255260.0,-1.89,강세,72,보통,1,"[""반도체"", ""AI/로봇"", ""방산""]","[""건설업"", ""전기가스업"", ""주류""]","[""000100"", ""000150""]",[],0,,,,1.3,0.65,"목표가 돌파 (3,885 >= 218)",3840.0,-0.2597402597402597,0.0,-0.2597402597402597,3810.0,-1.0389610389610389,0.0,-1.0389610389610389,3850.0,0.0,0.0,-1.0389610389610389,3837.0,-0.33766233766233766,0.0,-1.0389610389610389,09:57:17,3785.0,334,SL,-24368.0555,0,1
|
||||
135,2026-05-28,142280,녹십자엠에스,09:50:24,4890.0,4890.0,605.0,4816.65,0.0,6660.0,5450.0,108215421060.0,854870.0,-7.91,강세,72,보통,1,"[""반도체"", ""AI/로봇"", ""방산""]","[""건설업"", ""전기가스업"", ""주류""]","[""000100"", ""000150""]",[],0,,,,1.3,0.39,"목표가 돌파 (4,890 >= 605)",4890.0,0.0,0.0,0.0,4865.0,-0.5112474437627812,0.0,-0.5112474437627812,4835.0,-1.1247443762781186,0.0,-1.1247443762781186,4875.0,-0.3067484662576687,0.0,-1.1247443762781186,10:16:56,4815.0,159,SL,-13534.51725,0,1
|
||||
136,2026-05-28,232680,라온로보틱스,09:57:26,21700.0,21700.0,1945.0,21374.5,0.0,18300.0,14410.0,48862061400.0,707046.0,-3.56,강세,72,보통,1,"[""반도체"", ""AI/로봇"", ""방산""]","[""건설업"", ""전기가스업"", ""주류""]","[""000100"", ""000150""]",[],0,,,,1.3,0.39,"목표가 돌파 (21,700 >= 1,945)",21750.0,0.2304147465437788,0.2304147465437788,0.0,21800.0,0.4608294930875576,0.4608294930875576,0.0,21700.0,0.0,0.4608294930875576,0.0,21800.0,0.4608294930875576,0.4608294930875576,0.0,10:03:27,21350.0,35,SL,-13821.0625,0,1
|
||||
137,2026-05-28,003280,흥아해운,10:03:35,2240.0,2240.0,67.5,2206.4,0.0,2550.0,2415.0,22990880850.0,3718070.0,-0.67,강세,72,보통,1,"[""반도체"", ""AI/로봇"", ""방산""]","[""건설업"", ""전기가스업"", ""주류""]","[""000100"", ""000150""]",[],0,,,,1.3,0.39,"목표가 돌파 (2,240 >= 68)",2235.0,-0.2232142857142857,0.0,-0.2232142857142857,2245.0,0.2232142857142857,0.2232142857142857,-0.2232142857142857,2250.0,0.4464285714285714,0.4464285714285714,-0.2232142857142857,2250.0,0.4464285714285714,0.4464285714285714,-0.2232142857142857,12:03:39,2260.0,105,TIME,1601.9850000000001,1,0
|
||||
138,2026-05-28,036540,SFA반도체,10:17:11,9020.0,9010.0,605.0,8874.85,0.0,9220.0,8010.0,168105719900.0,2973961.0,-4.04,강세,72,보통,1,"[""반도체"", ""AI/로봇"", ""방산""]","[""건설업"", ""전기가스업"", ""주류""]","[""000100"", ""000150""]",[],0,,,,1.3,0.39,"목표가 돌파 (9,020 >= 605)",8980.0,-0.3329633740288568,0.0,-0.3329633740288568,8970.0,-0.4439511653718091,0.0,-0.4439511653718091,8940.0,-0.776914539400666,0.0,-0.776914539400666,8920.0,-0.9988901220865706,0.0,-0.9988901220865706,12:17:12,8990.0,86,TIME,-3343.852,0,0
|
||||
140,2026-05-29,066980,한성크린텍,09:20:12,2205.0,2205.0,144.5,2171.925,0.0,2150.0,1861.0,19122994350.0,1092946.0,-6.37,중립,62,보통,1,"[""반도체"", ""AI인프라"", ""로봇""]","[""건설"", ""음식료""]","[""018260"", ""000100"", ""012330"", ""000150""]",[],0,0.4351604210599285,0.731136896055066,2026-05-28T20:24:00,1.0,1.0,"목표가 돌파 (2,205 >= 144)",2185.0,-0.9070294784580499,0.0,-0.9070294784580499,2185.0,-0.9070294784580499,0.0,-0.9070294784580499,2195.0,-0.45351473922902497,0.0,-0.9070294784580499,2275.0,3.1746031746031744,3.1746031746031744,-0.9070294784580499,09:21:33,2170.0,907,SL,-35882.96075,0,1
|
||||
141,2026-05-29,290690,소룩스,09:20:21,5140.0,5140.0,215.0,5062.9,0.0,5440.0,5010.0,14487763710.0,716299.0,-6.88,중립,62,보통,1,"[""반도체"", ""AI인프라"", ""로봇""]","[""건설"", ""음식료""]","[""018260"", ""000100"", ""012330"", ""000150""]",[],0,0.3696454015844157,0.7310477196261284,2026-05-28T20:24:00,1.0,1.0,"목표가 돌파 (5,140 >= 215)",5150.0,0.19455252918287938,0.19455252918287938,0.0,5190.0,0.9727626459143969,0.9727626459143969,0.0,5290.0,2.9182879377431905,2.9182879377431905,0.0,5230.0,1.7509727626459144,2.9182879377431905,0.0,09:24:39,5280.0,117,TP2,15085.161,1,0
|
||||
142,2026-05-29,005880,대한해운,09:21:40,2215.0,2215.0,60.0,2181.775,0.0,2585.0,2465.0,14927338200.0,1159105.0,-4.73,중립,62,보통,1,"[""반도체"", ""AI인프라"", ""로봇""]","[""건설"", ""음식료""]","[""018260"", ""000100"", ""012330"", ""000150""]",[],0,0.4165395566639716,0.7318896407628258,2026-05-28T20:24:00,1.0,0.7,"목표가 돌파 (2,215 >= 60)",2225.0,0.4514672686230248,0.4514672686230248,0.0,2220.0,0.2257336343115124,0.4514672686230248,0.0,2215.0,0.0,0.4514672686230248,0.0,2225.0,0.4514672686230248,0.4514672686230248,0.0,11:21:42,2215.0,632,TIME,-2939.748,0,0
|
||||
144,2026-05-29,003280,흥아해운,09:24:45,2140.0,2135.0,70.0,2102.975,0.0,2570.0,2430.0,24474088830.0,5989975.0,-7.96,중립,62,보통,1,"[""반도체"", ""AI인프라"", ""로봇""]","[""건설"", ""음식료""]","[""018260"", ""000100"", ""012330"", ""000150""]",[],0,0.4387159451976146,0.7095595342416872,2026-05-28T20:24:00,1.0,1.0,"목표가 돌파 (2,140 >= 70)",2130.0,-0.234192037470726,0.0,-0.234192037470726,2115.0,-0.936768149882904,0.0,-0.936768149882904,2125.0,-0.468384074941452,0.0,-0.936768149882904,2125.0,-0.468384074941452,0.0,-0.936768149882904,10:07:42,2100.0,934,SL,-36813.8435,0,1
|
||||
145,2026-05-29,032580,피델릭스,10:07:49,6650.0,6630.0,1020.0,6530.55,0.0,8460.0,6420.0,58393931760.0,1288602.0,-2.35,중립,62,보통,1,"[""반도체"", ""AI인프라"", ""로봇""]","[""건설"", ""음식료""]","[""018260"", ""000100"", ""012330"", ""000150""]",[],0,0.4179516797368605,0.8026114336313444,2026-05-28T20:24:00,1.0,0.7,"목표가 돌파 (6,650 >= 1,020)",6620.0,-0.1508295625942685,0.0,-0.1508295625942685,6640.0,0.1508295625942685,0.1508295625942685,-0.1508295625942685,6720.0,1.3574660633484164,1.3574660633484164,-0.1508295625942685,6800.0,2.564102564102564,2.564102564102564,-0.1508295625942685,10:16:48,6800.0,63,TP2,9811.9665,1,0
|
||||
147,2026-05-29,477850,마키나락스,10:16:56,36000.0,35850.0,14500.0,35312.25,0.0,83600.0,54600.0,511302300600.0,764746.0,0.0,중립,62,보통,1,"[""반도체"", ""AI인프라"", ""로봇""]","[""건설"", ""음식료""]","[""018260"", ""000100"", ""012330"", ""000150""]",[],0,0.3233400234590251,0.8175514874030767,2026-05-28T20:24:00,1.0,1.0,"목표가 돌파 (36,000 >= 14,500)",35950.0,0.2789400278940028,0.2789400278940028,0.0,36200.0,0.9762900976290098,0.9762900976290098,0.0,35900.0,0.1394700139470014,0.9762900976290098,0.0,36100.0,0.697350069735007,0.9762900976290098,0.0,10:42:07,35150.0,55,SL,-42565.6,0,1
|
||||
148,2026-05-29,024840,KBI메탈,10:42:17,5170.0,5160.0,545.0,5082.6,0.0,8180.0,7090.0,139089194880.0,1496955.0,-12.96,중립,62,보통,1,"[""반도체"", ""AI인프라"", ""로봇""]","[""건설"", ""음식료""]","[""018260"", ""000100"", ""012330"", ""000150""]",[],0,0.4338043614374876,0.7374319919650496,2026-05-28T20:24:00,1.0,0.7,"목표가 돌파 (5,170 >= 545)",5180.0,0.3875968992248062,0.3875968992248062,0.0,5260.0,1.937984496124031,1.937984496124031,0.0,5310.0,2.9069767441860463,2.9069767441860463,0.0,5320.0,3.10077519379845,3.10077519379845,0.0,10:46:00,5290.0,81,TP2,9631.7505,1,0
|
||||
150,2026-05-29,001740,SK네트웍스,10:46:23,11300.0,11300.0,275.0,11130.5,0.0,8630.0,8080.0,79641500400.0,1738408.0,-5.68,중립,62,보통,1,"[""반도체"", ""AI인프라"", ""로봇""]","[""건설"", ""음식료""]","[""018260"", ""000100"", ""012330"", ""000150""]",[],0,0.40453855863241456,0.7809700225459555,2026-05-28T20:24:00,1.0,1.0,"목표가 돌파 (11,300 >= 275)",11300.0,0.0,0.0,0.0,11300.0,0.0,0.0,0.0,11300.0,0.0,0.0,0.0,11300.0,0.0,0.0,0.0,12:46:25,11270.0,176,TIME,-9446.184000000001,0,0
|
||||
151,2026-05-29,005880,대한해운,11:21:51,2215.0,2215.0,60.0,2181.775,0.0,2585.0,2465.0,14927338200.0,3241257.0,-4.73,중립,62,보통,1,"[""운수창고"", ""금융업"", ""철강금속""]","[""반도체"", ""의약품"", ""건설업"", ""화학""]","[""018260"", ""000100"", ""012330"", ""000150""]",[],0,0.41761836541992037,0.7196576370404046,2026-05-28T20:24:00,1.0,1.0,"목표가 돌파 (2,215 >= 60)",2215.0,0.0,0.0,0.0,2215.0,0.0,0.0,0.0,2205.0,-0.4514672686230248,0.0,-0.4514672686230248,2210.0,-0.2257336343115124,0.0,-0.4514672686230248,13:21:53,2235.0,902,TIME,13809.169,1,0
|
||||
152,2026-05-29,032580,피델릭스,12:46:33,6580.0,6580.0,1020.0,6481.3,0.0,8460.0,6420.0,58393931760.0,2188412.0,-3.38,중립,62,보통,1,"[""운수창고"", ""금융업"", ""철강금속""]","[""반도체"", ""의약품"", ""건설업"", ""화학""]","[""018260"", ""000100"", ""012330"", ""000150""]",[],0,0.422704933505687,0.7937182159021703,2026-05-28T20:24:00,1.0,0.7,"목표가 돌파 (6,580 >= 1,020)",6620.0,0.60790273556231,0.60790273556231,0.0,6640.0,0.911854103343465,0.911854103343465,0.0,6630.0,0.7598784194528876,0.911854103343465,0.0,6540.0,-0.60790273556231,0.911854103343465,-0.60790273556231,13:04:51,6480.0,212,SL,-24088.076,0,1
|
||||
153,2026-05-29,024840,KBI메탈,13:04:57,5470.0,5470.0,545.0,5387.95,0.0,8180.0,7090.0,139089194880.0,2093384.0,-7.91,중립,62,보통,1,"[""운수창고"", ""금융업"", ""철강금속""]","[""반도체"", ""의약품"", ""건설업"", ""화학""]","[""018260"", ""000100"", ""012330"", ""000150""]",[],0,0.42571653655154934,0.785533230878018,2026-05-28T20:24:00,1.0,0.5,"목표가 돌파 (5,470 >= 545)",5460.0,-0.18281535648994515,0.0,-0.18281535648994515,5430.0,-0.7312614259597806,0.0,-0.7312614259597806,5420.0,-0.9140767824497258,0.0,-0.9140767824497258,5400.0,-1.2797074954296161,0.0,-1.2797074954296161,13:16:28,5350.0,182,SL,-23888.046,0,1
|
||||
154,2026-05-29,001740,SK네트웍스,13:16:40,11210.0,11210.0,275.0,11041.85,0.0,8630.0,8080.0,79641500400.0,2780508.0,-6.43,중립,62,보통,1,"[""운수창고"", ""금융업"", ""철강금속""]","[""반도체"", ""의약품"", ""건설업"", ""화학""]","[""018260"", ""000100"", ""012330"", ""000150""]",[],0,0.4045385586324146,0.7801186798378126,2026-05-28T20:24:00,1.0,0.3,"목표가 돌파 (11,210 >= 275)",11210.0,0.0,0.0,0.0,11210.0,0.0,0.0,0.0,11210.0,0.0,0.0,0.0,11210.0,0.0,0.0,0.0,14:50:07,11130.0,53,FORCE,-5479.405,0,0
|
||||
155,2026-05-29,005880,대한해운,13:22:01,2235.0,2235.0,60.0,2201.475,0.0,2585.0,2465.0,14927338200.0,4150881.0,-3.87,중립,62,보통,1,"[""운수창고"", ""금융업"", ""철강금속""]","[""반도체"", ""의약품"", ""건설업"", ""화학""]","[""018260"", ""000100"", ""012330"", ""000150""]",[],0,0.41761836541992037,0.7196576370404048,2026-05-28T20:24:00,1.0,0.5,"목표가 돌파 (2,235 >= 60)",2235.0,0.0,0.0,0.0,2240.0,0.22371364653243847,0.22371364653243847,0.0,2240.0,0.22371364653243847,0.22371364653243847,0.0,2235.0,0.0,0.22371364653243847,0.0,14:50:14,2255.0,447,FORCE,6824.5725,1,0
|
||||
156,2026-06-01,006340,대원전선,09:20:12,12250.0,12240.0,650.0,12056.4,0.0,15250.0,13950.0,79885329860.0,1343846.0,2.6,강세,68,보통,1,"[""반도체"", ""방산"", ""제약바이오"", ""AI/IT""]","[""건설업"", ""금융업""]","[""000100"", ""000150"", ""000070""]",[],0,0.46391521101257543,0.7687711249122031,2026-05-28T20:24:00,1.2,1.2,"목표가 돌파 (12,250 >= 650)",12260.0,0.16339869281045752,0.16339869281045752,0.0,12300.0,0.49019607843137253,0.49019607843137253,0.0,12200.0,-0.32679738562091504,0.49019607843137253,-0.32679738562091504,12170.0,-0.5718954248366013,0.49019607843137253,-0.5718954248366013,09:41:36,12050.0,195,SL,-41990.0325,0,1
|
||||
157,2026-06-01,425040,티이엠씨,09:20:21,18980.0,18830.0,1700.0,18547.55,0.0,29250.0,25850.0,46745332000.0,484537.0,5.44,강세,68,보통,1,"[""반도체"", ""방산"", ""제약바이오"", ""AI/IT""]","[""건설업"", ""금융업""]","[""000100"", ""000150"", ""000070""]",[],0,0.35475607063065256,0.8238569608722319,2026-05-28T20:24:00,1.2,1.2,"목표가 돌파 (18,980 >= 1,700)",18980.0,0.7966011683483802,0.7966011683483802,0.0,18950.0,0.6372809346787042,0.7966011683483802,0.0,18660.0,-0.9028146574614976,0.7966011683483802,-0.9028146574614976,18770.0,-0.3186404673393521,0.7966011683483802,-0.9028146574614976,09:27:09,18540.0,126,SL,-41451.165,0,1
|
||||
158,2026-06-01,332570,PS일렉트로닉스,09:20:22,12330.0,12470.0,460.0,12282.95,0.0,13110.0,12190.0,34905124500.0,1699230.0,4.85,강세,68,보통,1,"[""반도체"", ""방산"", ""제약바이오"", ""AI/IT""]","[""건설업"", ""금융업""]","[""000100"", ""000150"", ""000070""]",[],0,0.433213726318522,0.7919377953975175,2026-05-28T20:24:00,1.2,1.2,"목표가 돌파 (12,330 >= 460)",,,,,,,,,12970.0,4.0096230954290295,4.0096230954290295,0.0,13030.0,4.490777866880514,4.490777866880514,0.0,09:23:37,12800.0,59,TP2,17887.000500000002,1,0
|
||||
159,2026-06-01,425040,티이엠씨,09:20:29,18830.0,18820.0,1700.0,18537.7,0.0,29250.0,25850.0,46745332000.0,496458.0,4.61,강세,68,보통,1,"[""반도체"", ""방산"", ""제약바이오"", ""AI/IT""]","[""건설업"", ""금융업""]","[""000100"", ""000150"", ""000070""]",[],0,0.35475607063065256,0.8238569608722321,2026-05-28T20:24:00,1.2,1.2,"목표가 돌파 (18,830 >= 1,700)",18950.0,0.6907545164718385,0.6907545164718385,0.0,18900.0,0.4250797024442083,0.6907545164718385,0.0,18660.0,-0.8501594048884166,0.6907545164718385,-0.8501594048884166,18770.0,-0.2656748140276302,0.6907545164718385,-0.8501594048884166,09:26:59,18510.0,127,SL,-44312.5225,0,1
|
||||
161,2026-06-01,027360,아주IB투자,09:23:47,12200.0,12220.0,720.0,12036.7,0.0,17690.0,16250.0,253773674570.0,2087881.0,0.91,강세,68,보통,1,"[""반도체"", ""방산"", ""제약바이오"", ""AI/IT""]","[""건설업"", ""금융업""]","[""000100"", ""000150"", ""000070""]",[],0,0.4657874233200197,0.7341750273456272,2026-05-28T20:24:00,1.2,1.2,"목표가 돌파 (12,200 >= 720)",12220.0,0.0,0.0,0.0,12180.0,-0.32733224222585927,0.0,-0.32733224222585927,12110.0,-0.900163666121113,0.0,-0.900163666121113,12330.0,0.900163666121113,0.900163666121113,-0.900163666121113,10:05:15,12010.0,59,SL,-13879.8975,0,1
|
||||
162,2026-06-01,001740,SK네트웍스,09:27:19,11500.0,11500.0,1085.0,11327.5,0.0,10920.0,8750.0,703642124640.0,278929.0,1.95,강세,68,보통,1,"[""반도체"", ""방산"", ""제약바이오"", ""AI/IT""]","[""건설업"", ""금융업""]","[""000100"", ""000150"", ""000070""]",[],0,0.4417259535599868,0.7166326202855798,2026-05-28T20:24:00,1.2,0.84,"목표가 돌파 (11,500 >= 1,085)",11500.0,0.0,0.0,0.0,11570.0,0.6086956521739131,0.6086956521739131,0.0,11570.0,0.6086956521739131,0.6086956521739131,0.0,11570.0,0.6086956521739131,0.6086956521739131,0.0,10:00:23,12000.0,146,TP2,69331.75,1,0
|
||||
163,2026-06-01,001740,SK네트웍스,09:27:20,11500.0,11500.0,1085.0,11327.5,0.0,10920.0,8750.0,703642124640.0,278929.0,1.95,강세,68,보통,1,"[""반도체"", ""방산"", ""제약바이오"", ""AI/IT""]","[""건설업"", ""금융업""]","[""000100"", ""000150"", ""000070""]",[],0,0.4417259535599865,0.7166326202855801,2026-05-28T20:24:00,1.2,0.84,"목표가 돌파 (11,500 >= 1,085)",11500.0,0.0,0.0,0.0,11570.0,0.6086956521739131,0.6086956521739131,0.0,11570.0,0.6086956521739131,0.6086956521739131,0.0,11570.0,0.6086956521739131,0.6086956521739131,0.0,10:00:14,12000.0,146,TP2,69331.75,1,0
|
||||
164,2026-06-01,010170,대한광통신,09:41:50,20900.0,20800.0,1600.0,20488.0,0.0,27900.0,24700.0,840928760800.0,6380259.0,-7.93,강세,68,보통,1,"[""반도체"", ""방산"", ""제약바이오"", ""AI/IT""]","[""건설업"", ""금융업""]","[""000100"", ""000150"", ""000070""]",[],0,0.40079640837172215,0.749086920694635,2026-05-28T20:24:00,1.2,0.6,"목표가 돌파 (20,900 >= 1,600)",20800.0,0.0,0.0,0.0,20750.0,-0.2403846153846154,0.0,-0.2403846153846154,20900.0,0.4807692307692308,0.4807692307692308,-0.2403846153846154,20850.0,0.2403846153846154,0.4807692307692308,-0.2403846153846154,10:25:48,21400.0,18,TP2,9992.7,1,0
|
||||
166,2026-06-01,457370,한켐,10:00:30,10970.0,10940.0,1185.0,10775.9,0.0,12310.0,9940.0,42778677960.0,577420.0,-8.35,강세,68,보통,1,"[""반도체"", ""방산"", ""제약바이오"", ""AI/IT""]","[""건설업"", ""금융업""]","[""000100"", ""000150"", ""000070""]",[],0,0.43365506082981103,0.7868097740079766,2026-05-28T20:24:00,1.2,1.2,"목표가 돌파 (10,970 >= 1,185)",,,,,10830.0,-1.0054844606946984,0.0,-1.0054844606946984,10800.0,-1.2797074954296161,0.0,-1.2797074954296161,,,,,10:22:05,10740.0,218,SL,-48523.312,0,1
|
||||
167,2026-06-01,034220,LG디스플레이,10:00:51,16130.0,16060.0,535.0,15819.1,0.0,16420.0,15350.0,272529087660.0,26629308.0,0.25,강세,68,보통,1,"[""반도체"", ""방산"", ""제약바이오"", ""AI/IT""]","[""건설업"", ""금융업""]","[""000100"", ""000150"", ""000070""]",[],0,0.3215532418967578,0.8058851328107793,2026-05-28T20:24:00,1.2,0.84,"목표가 돌파 (16,130 >= 535)",16190.0,0.809464508094645,0.809464508094645,0.0,16290.0,1.432129514321295,1.432129514321295,0.0,16350.0,1.805728518057285,1.805728518057285,0.0,16130.0,0.43586550435865506,1.805728518057285,0.0,10:21:50,16560.0,32,TP2,14889.568,1,0
|
||||
169,2026-06-01,018880,한온시스템,10:05:36,5340.0,5340.0,190.0,5259.9,0.0,5400.0,5020.0,130064780520.0,14563034.0,-5.15,강세,68,보통,1,"[""반도체"", ""방산"", ""제약바이오"", ""AI/IT""]","[""건설업"", ""금융업""]","[""000100"", ""000150"", ""000070""]",[],0,0.3848762551192131,0.7789769754074529,2026-05-28T20:24:00,1.2,0.84,"목표가 돌파 (5,340 >= 190)",5360.0,0.37453183520599254,0.37453183520599254,0.0,,,,,5340.0,0.0,0.37453183520599254,0.0,5290.0,-0.9363295880149813,0.37453183520599254,-0.9363295880149813,12:05:42,5310.0,314,TIME,-12922.827,0,0
|
||||
170,2026-06-01,024060,흥구석유,10:21:59,12580.0,12540.0,290.0,12351.9,0.0,13740.0,13160.0,10448147500.0,444691.0,0.8,강세,68,보통,1,"[""반도체"", ""방산"", ""제약바이오"", ""AI/IT""]","[""건설업"", ""금융업""]","[""000100"", ""000150"", ""000070""]",[],0,0.4392924838463846,0.7999231728020089,2026-05-28T20:24:00,1.2,1.2,"목표가 돌파 (12,580 >= 290)",12550.0,0.07974481658692185,0.07974481658692185,0.0,12530.0,-0.07974481658692185,0.07974481658692185,-0.07974481658692185,,,,,12560.0,0.1594896331738437,0.1594896331738437,-0.07974481658692185,12:22:03,12550.0,190,TIME,-3107.165,0,0
|
||||
171,2026-06-01,005935,삼성전자우,10:22:19,227500.0,228000.0,2750.0,224580.0,0.0,192000.0,186500.0,756390772800.0,5061108.0,12.35,강세,68,보통,1,"[""반도체"", ""방산"", ""제약바이오"", ""AI/IT""]","[""건설업"", ""금융업""]","[""000100"", ""000150"", ""000070""]",[],0,0.4016687804349751,0.37683891996396657,2026-05-28T20:24:00,1.2,0.6,"목표가 돌파 (227,500 >= 2,750)",227250.0,-0.3289473684210526,0.0,-0.3289473684210526,225500.0,-1.0964912280701753,0.0,-1.0964912280701753,227500.0,-0.21929824561403508,0.0,-1.0964912280701753,230000.0,0.8771929824561403,0.8771929824561403,-1.0964912280701753,10:36:48,233500.0,2,TP2,10020.95,1,0
|
||||
173,2026-06-01,332570,PS일렉트로닉스,10:26:05,12440.0,12410.0,460.0,12223.85,0.0,13110.0,12190.0,34905124500.0,3385873.0,5.78,강세,68,보통,1,"[""반도체"", ""방산"", ""제약바이오"", ""AI/IT""]","[""건설업"", ""금융업""]","[""000100"", ""000150"", ""000070""]",[],0,0.4356142665028452,0.7919288098544557,2026-05-28T20:24:00,1.2,1.2,"목표가 돌파 (12,440 >= 460)",12450.0,0.32232070910556004,0.32232070910556004,0.0,12410.0,0.0,0.32232070910556004,0.0,12350.0,-0.4834810636583401,0.32232070910556004,-0.4834810636583401,12380.0,-0.24174053182917005,0.32232070910556004,-0.4834810636583401,10:52:03,12220.0,192,SL,-41412.576,0,1
|
||||
175,2026-06-01,010170,대한광통신,10:36:58,21200.0,21200.0,1600.0,20882.0,0.0,27900.0,24700.0,840928760800.0,9380056.0,-6.61,강세,68,보통,1,"[""반도체"", ""방산"", ""제약바이오"", ""AI/IT""]","[""건설업"", ""금융업""]","[""000100"", ""000150"", ""000070""]",[],0,0.4007964083717222,0.7490869206946349,2026-05-28T20:24:00,1.2,1.2,"목표가 돌파 (21,200 >= 1,600)",21200.0,0.0,0.0,0.0,21150.0,-0.2358490566037736,0.0,-0.2358490566037736,21150.0,-0.2358490566037736,0.0,-0.2358490566037736,21150.0,-0.2358490566037736,0.0,-0.2358490566037736,10:50:57,20900.0,113,SL,-38864.655,0,1
|
||||
176,2026-06-01,021880,메이슨캐피탈,10:51:11,186.0,186.0,35.5,183.21,0.0,287.0,216.0,13998574527.0,4834067.0,-5.58,강세,68,보통,1,"[""반도체"", ""방산"", ""제약바이오"", ""AI/IT""]","[""건설업"", ""금융업""]","[""000100"", ""000150"", ""000070""]",[],0,0.4082727808510595,0.3034321736579565,2026-05-28T20:24:00,1.2,0.84,목표가 돌파 (186 >= 36),185.0,-0.5376344086021506,0.0,-0.5376344086021506,185.0,-0.5376344086021506,0.0,-0.5376344086021506,183.0,-1.6129032258064515,0.0,-1.6129032258064515,185.0,-0.5376344086021506,0.0,-1.6129032258064515,10:55:46,183.0,9032,SL,-30571.061999999998,0,1
|
||||
177,2026-06-01,001440,대한전선,10:56:15,49350.0,49350.0,2700.0,48609.75,0.0,58400.0,53000.0,234275246400.0,4599816.0,8.58,강세,68,보통,1,"[""반도체"", ""방산"", ""제약바이오"", ""AI/IT""]","[""건설업"", ""금융업""]","[""000100"", ""000150"", ""000070""]",[],0,0.3061406800017308,0.8257458231407364,2026-05-28T20:24:00,1.2,0.6,"목표가 돌파 (49,350 >= 2,700)",49200.0,-0.303951367781155,0.0,-0.303951367781155,48750.0,-1.21580547112462,0.0,-1.21580547112462,48550.0,-1.6210739614994936,0.0,-1.6210739614994936,48400.0,-1.9250253292806485,0.0,-1.9250253292806485,10:58:12,48600.0,24,SL,-20452.14,0,1
|
||||
178,2026-06-01,036540,SFA반도체,10:58:30,7990.0,7980.0,695.0,7860.3,0.0,11640.0,10250.0,463103060400.0,2829685.0,-3.97,강세,68,보통,1,"[""반도체"", ""방산"", ""제약바이오"", ""AI/IT""]","[""건설업"", ""금융업""]","[""000100"", ""000150"", ""000070""]",[],0,0.44363434978941074,0.7474588780204732,2026-05-28T20:24:00,1.2,0.36,"목표가 돌파 (7,990 >= 695)",,,,,8010.0,0.37593984962406013,0.37593984962406013,0.0,,,,,8040.0,0.7518796992481203,0.7518796992481203,0.0,12:58:33,7920.0,90,TIME,-6897.6900000000005,0,0
|
||||
179,2026-06-02,034220,LG디스플레이,09:20:08,16250.0,16400.0,535.0,16154.0,0.0,16420.0,15350.0,272529087660.0,12688058.0,2.85,강세,68,보통,1,"[""반도체"", ""로봇"", ""의약품""]","[""건설"", ""금융""]","[""000150"", ""000157"", ""000070""]",[],0,0.3215532418967578,0.8058851328107793,2026-05-28T20:24:00,1.2,1.2,"목표가 돌파 (16,250 >= 535)",16710.0,1.8902439024390243,1.8902439024390243,0.0,16670.0,1.6463414634146343,1.8902439024390243,0.0,16240.0,-0.975609756097561,1.8902439024390243,-0.975609756097561,16310.0,-0.548780487804878,1.8902439024390243,-0.975609756097561,09:25:17,16130.0,147,SL,-44675.2845,0,1
|
||||
180,2026-06-02,010170,대한광통신,09:20:25,18930.0,18980.0,1600.0,18695.3,0.0,27900.0,24700.0,840928760800.0,5244315.0,-8.11,강세,68,보통,1,"[""반도체"", ""로봇"", ""의약품""]","[""건설"", ""금융""]","[""000150"", ""000157"", ""000070""]",[],0,0.3981870275665069,0.7543469473034201,2026-05-28T20:24:00,1.2,1.2,"목표가 돌파 (18,930 >= 1,600)",19640.0,3.477344573234984,3.477344573234984,0.0,19490.0,2.6870389884088515,3.477344573234984,0.0,19980.0,5.268703898840886,5.268703898840886,0.0,20050.0,5.637513171759747,5.637513171759747,0.0,09:21:17,19600.0,38,TP2,21999.454,1,0
|
||||
182,2026-06-02,043260,성호전자,09:21:25,41600.0,41600.0,2600.0,40976.0,0.0,45750.0,40550.0,132291841500.0,1742625.0,5.45,강세,68,보통,1,"[""반도체"", ""로봇"", ""의약품""]","[""건설"", ""금융""]","[""000150"", ""000157"", ""000070""]",[],0,0.3033092791475277,0.8396825457478589,2026-05-28T20:24:00,1.2,1.2,"목표가 돌파 (41,600 >= 2,600)",41100.0,-1.201923076923077,0.0,-1.201923076923077,41300.0,-0.7211538461538461,0.0,-1.201923076923077,40650.0,-2.283653846153846,0.0,-2.283653846153846,43300.0,4.086538461538462,4.086538461538462,-2.283653846153846,09:22:41,40850.0,57,SL,-47646.1575,0,1
|
||||
183,2026-06-02,036540,SFA반도체,09:22:49,7470.0,7460.0,695.0,7348.099999999999,0.0,11640.0,10250.0,463103060400.0,1300612.0,-5.8,강세,68,보통,1,"[""반도체"", ""로봇"", ""의약품""]","[""건설"", ""금융""]","[""000150"", ""000157"", ""000070""]",[],0,0.43994692657038625,0.7557304579561245,2026-05-28T20:24:00,1.2,0.84,"목표가 돌파 (7,470 >= 695)",7420.0,-0.5361930294906166,0.0,-0.5361930294906166,7380.0,-1.0723860589812333,0.0,-1.0723860589812333,7390.0,-0.938337801608579,0.0,-1.0723860589812333,7430.0,-0.40214477211796246,0.0,-1.0723860589812333,09:56:55,7340.0,224,SL,-30336.768,0,1
|
||||
184,2026-06-02,098460,고영,09:25:26,32450.0,32450.0,1025.0,31963.25,0.0,41850.0,39800.0,92634237600.0,406770.0,-4.14,강세,68,보통,1,"[""반도체"", ""로봇"", ""의약품""]","[""건설"", ""금융""]","[""000150"", ""000157"", ""000070""]",[],0,0.29978995643395917,0.8471768805207506,2026-05-28T20:24:00,1.2,0.6,"목표가 돌파 (32,450 >= 1,025)",32600.0,0.46224961479198773,0.46224961479198773,0.0,32850.0,1.2326656394453006,1.2326656394453006,0.0,32850.0,1.2326656394453006,1.2326656394453006,0.0,32700.0,0.7704160246533128,1.2326656394453006,0.0,09:58:43,31950.0,11,SL,-6238.87,0,1
|
||||
186,2026-06-02,022100,포스코DX,09:57:09,33850.0,33850.0,900.0,33342.25,0.0,34100.0,32300.0,12030123600.0,1148689.0,-12.53,강세,68,보통,1,"[""반도체"", ""로봇"", ""의약품""]","[""건설"", ""금융""]","[""000150"", ""000157"", ""000070""]",[],0,0.305738945097692,0.8526834612459052,2026-05-28T20:24:00,1.2,0.6,"목표가 돌파 (33,850 >= 900)",33800.0,-0.14771048744460857,0.0,-0.14771048744460857,33850.0,0.0,0.0,-0.14771048744460857,33800.0,-0.14771048744460857,0.0,-0.14771048744460857,34100.0,0.7385524372230428,0.7385524372230428,-0.14771048744460857,10:22:23,34900.0,11,TP2,10745.5425,1,0
|
||||
187,2026-06-02,357880,SKAI,09:58:55,4415.0,4405.0,427.5,4338.925,0.0,5830.0,4975.0,34888267080.0,1822079.0,-17.48,강세,68,보통,1,"[""반도체"", ""로봇"", ""의약품""]","[""건설"", ""금융""]","[""000150"", ""000157"", ""000070""]",[],0,0.4203791808518471,0.7864215467759593,2026-05-28T20:24:00,1.2,0.36,"목표가 돌파 (4,415 >= 428)",4380.0,-0.5675368898978433,0.0,-0.5675368898978433,4370.0,-0.7945516458569807,0.0,-0.7945516458569807,4380.0,-0.5675368898978433,0.0,-0.7945516458569807,4445.0,0.9080590238365494,0.9080590238365494,-0.7945516458569807,10:02:28,4330.0,163,SL,-13708.99275,0,1
|
||||
188,2026-06-02,006340,대원전선,10:02:39,10900.0,10890.0,650.0,10726.65,0.0,15250.0,13950.0,79885329860.0,2364186.0,-6.12,강세,68,보통,1,"[""반도체"", ""로봇"", ""의약품""]","[""건설"", ""금융""]","[""000150"", ""000157"", ""000070""]",[],0,0.46853872014132963,0.7642501882516862,2026-05-28T20:24:00,1.2,0.36,"목표가 돌파 (10,900 >= 650)",10960.0,0.642791551882461,0.642791551882461,0.0,10990.0,0.9182736455463728,0.9182736455463728,0.0,10960.0,0.642791551882461,0.9182736455463728,0.0,10940.0,0.4591368227731864,0.9182736455463728,0.0,12:02:41,11040.0,20,TIME,2536.77,1,0
|
||||
190,2026-06-02,080220,제주반도체,10:22:41,95500.0,95700.0,6200.0,94264.5,0.0,125000.0,112600.0,396407725100.0,757971.0,-3.05,강세,68,보통,1,"[""반도체"", ""로봇"", ""의약품""]","[""건설"", ""금융""]","[""000150"", ""000157"", ""000070""]",[],0,0.3099738195042713,0.8224795183192154,2026-05-28T20:24:00,1.2,0.6,"목표가 돌파 (95,500 >= 6,200)",95500.0,-0.20898641588296762,0.0,-0.20898641588296762,95500.0,-0.20898641588296762,0.0,-0.20898641588296762,95300.0,-0.41797283176593525,0.0,-0.41797283176593525,95800.0,0.10449320794148381,0.10449320794148381,-0.41797283176593525,10:50:59,94200.0,12,SL,-20376.54,0,1
|
||||
191,2026-06-02,078150,HB테크놀러지,10:51:18,2960.0,2955.0,175.0,2910.675,0.0,4465.0,4115.0,18546097120.0,3136805.0,-6.03,강세,68,보통,1,"[""반도체"", ""로봇"", ""의약품""]","[""건설"", ""금융""]","[""000150"", ""000157"", ""000070""]",[],0,0.4082024397059335,0.7961953794270091,2026-05-28T20:24:00,1.2,0.36,"목표가 돌파 (2,960 >= 175)",2960.0,0.1692047377326565,0.1692047377326565,0.0,2955.0,0.0,0.1692047377326565,0.0,2950.0,-0.1692047377326565,0.1692047377326565,-0.1692047377326565,2955.0,0.0,0.1692047377326565,-0.1692047377326565,12:51:20,2945.0,243,TIME,-3933.198,0,0
|
||||
193,2026-06-02,003280,흥아해운,12:02:53,2000.0,2005.0,67.5,1974.925,0.0,2515.0,2380.0,19807212040.0,6979826.0,-2.91,강세,68,보통,1,"[""운수창고""]","[""전기전자"", ""의약품"", ""전기가스업"", ""기계"", ""반도체""]","[""000150"", ""000157"", ""000070""]",[],0,0.4387159451976146,0.709559534241687,2026-05-28T20:24:00,1.2,0.588,"목표가 돌파 (2,000 >= 68)",2005.0,0.0,0.0,0.0,2010.0,0.24937655860349126,0.24937655860349126,0.0,2005.0,0.0,0.24937655860349126,0.0,2005.0,0.0,0.24937655860349126,0.0,14:02:56,1979.0,588,TIME,-17733.9624,0,0
|
||||
194,2026-06-02,478150,TIME 글로벌우주테크&방산액티브,12:51:34,23560.0,23560.0,387.5,23206.6,0.0,24750.0,23975.0,15654623085.0,333256.0,-5.06,강세,68,보통,1,"[""운수창고""]","[""전기전자"", ""의약품"", ""전기가스업"", ""기계"", ""반도체""]","[""000150"", ""000157"", ""000070""]",[],0,0.3479374615027259,0.8081346033908917,2026-05-28T20:24:00,1.2,0.42,"목표가 돌파 (23,560 >= 388)",23565.0,0.021222410865874362,0.021222410865874362,0.0,23570.0,0.042444821731748725,0.042444821731748725,0.0,23580.0,0.08488964346349745,0.08488964346349745,0.0,23585.0,0.10611205432937182,0.10611205432937182,0.0,14:50:09,23915.0,35,FORCE,10669.11125,1,0
|
||||
195,2026-06-05,034220,LG디스플레이,09:20:13,14920.0,14920.0,950.0,14770.8,0.0,16600.0,14700.0,969593504520.0,2490989.0,-7.44,중립,52,높음,1,"[""AI/로봇"", ""우주항공"", ""건설/재건축""]","[""반도체"", ""금융""]","[""454910"", ""011070"", ""051910""]",[],0,0.3827240469611287,0.7697687478645221,2026-06-02T18:36:28,0.8,0.8,"목표가 돌파 (14,920 >= 950)",14820.0,-0.6702412868632708,0.0,-0.6702412868632708,14800.0,-0.8042895442359249,0.0,-0.8042895442359249,14820.0,-0.6702412868632708,0.0,-0.8042895442359249,15020.0,0.6702412868632708,0.6702412868632708,-0.8042895442359249,09:25:48,14770.0,107,SL,-19371.2265,0,1
|
||||
196,2026-06-05,052710,아모텍,09:20:23,22950.0,22950.0,2750.0,22720.5,0.0,32000.0,26500.0,43734665200.0,171039.0,-7.46,중립,52,높음,1,"[""AI/로봇"", ""우주항공"", ""건설/재건축""]","[""반도체"", ""금융""]","[""454910"", ""011070"", ""051910""]",[],0,0.3638854438238923,0.817808397712043,2026-06-02T18:36:28,0.8,0.8,"목표가 돌파 (22,950 >= 2,750)",22900.0,-0.2178649237472767,0.0,-0.2178649237472767,22550.0,-1.7429193899782136,0.0,-1.7429193899782136,22450.0,-2.178649237472767,0.0,-2.178649237472767,23600.0,2.832244008714597,2.832244008714597,-2.178649237472767,09:22:09,22650.0,69,SL,-23985.09,0,1
|
||||
197,2026-06-05,077360,덕산하이메탈,09:22:17,14460.0,14460.0,2135.0,14315.4,0.0,15710.0,11440.0,84122239770.0,628619.0,-3.66,중립,52,높음,1,"[""AI/로봇"", ""우주항공"", ""건설/재건축""]","[""반도체"", ""금융""]","[""454910"", ""011070"", ""051910""]",[],0,0.37891442938484005,0.8453358566731978,2026-06-02T18:36:28,0.8,0.5599999999999999,"목표가 돌파 (14,460 >= 2,135)",14290.0,-1.1756569847856155,0.0,-1.1756569847856155,14370.0,-0.6224066390041494,0.0,-1.1756569847856155,14530.0,0.48409405255878285,0.48409405255878285,-1.1756569847856155,14630.0,1.1756569847856155,1.1756569847856155,-1.1756569847856155,09:23:07,14290.0,77,SL,-15402.6565,0,1
|
||||
198,2026-06-05,010170,대한광통신,09:23:12,18560.0,18560.0,1950.0,18374.4,0.0,25400.0,21500.0,420850554400.0,2580655.0,-8.57,중립,52,높음,1,"[""AI/로봇"", ""우주항공"", ""건설/재건축""]","[""반도체"", ""금융""]","[""454910"", ""011070"", ""051910""]",[],0,0.42866294164340485,0.7877062752702315,2026-06-02T18:36:28,0.8,0.4,"목표가 돌파 (18,560 >= 1,950)",18620.0,0.3232758620689655,0.3232758620689655,0.0,18500.0,-0.3232758620689655,0.3232758620689655,-0.3232758620689655,18620.0,0.3232758620689655,0.3232758620689655,-0.3232758620689655,18490.0,-0.3771551724137931,0.3232758620689655,-0.3771551724137931,09:34:34,18370.0,43,SL,-9830.0365,0,1
|
||||
199,2026-06-05,204320,HL만도,09:25:57,53800.0,53800.0,1500.0,53262.0,0.0,64500.0,61500.0,54912111300.0,62751.0,-6.6,중립,52,높음,1,"[""AI/로봇"", ""우주항공"", ""건설/재건축""]","[""반도체"", ""금융""]","[""454910"", ""011070"", ""051910""]",[],0,0.3111670478450407,0.7879673579754577,2026-06-02T18:36:28,0.8,0.24,"목표가 돌파 (53,800 >= 1,500)",53800.0,0.0,0.0,0.0,53900.0,0.18587360594795538,0.18587360594795538,0.0,54100.0,0.5576208178438662,0.5576208178438662,0.0,53900.0,0.18587360594795538,0.5576208178438662,0.0,09:52:11,53200.0,8,SL,-5694.48,0,1
|
||||
200,2026-06-05,001510,SK증권,09:34:41,3590.0,3590.0,152.5,3554.1,0.0,3530.0,3225.0,25118288000.0,18762403.0,12.19,중립,52,높음,1,"[""AI/로봇"", ""우주항공"", ""건설/재건축""]","[""반도체"", ""금융""]","[""454910"", ""011070"", ""051910""]",[],0,0.433642576954848,0.780144530394883,2026-06-02T18:36:28,0.8,0.24,"목표가 돌파 (3,590 >= 152)",3590.0,0.0,0.0,0.0,3610.0,0.5571030640668524,0.5571030640668524,0.0,3555.0,-0.9749303621169917,0.5571030640668524,-0.9749303621169917,3525.0,-1.8105849582172702,0.5571030640668524,-1.8105849582172702,09:36:23,3550.0,133,SL,-6312.313,0,1
|
||||
201,2026-06-05,261780,아리바이오랩,09:36:29,2700.0,2700.0,372.5,2673.0,0.0,3880.0,3135.0,13478473660.0,647644.0,1.89,중립,52,높음,1,"[""AI/로봇"", ""우주항공"", ""건설/재건축""]","[""반도체"", ""금융""]","[""454910"", ""011070"", ""051910""]",[],0,0.47894143647841786,0.8013313288800499,2026-06-02T18:36:28,0.8,0.24,"목표가 돌파 (2,700 >= 372)",2690.0,-0.3703703703703704,0.0,-0.3703703703703704,2695.0,-0.1851851851851852,0.0,-0.3703703703703704,2680.0,-0.7407407407407408,0.0,-0.7407407407407408,2685.0,-0.5555555555555556,0.0,-0.7407407407407408,09:43:09,2670.0,177,SL,-6303.2355,0,1
|
||||
202,2026-06-05,347850,디앤디파마텍,09:43:15,91200.0,91200.0,6850.0,90288.0,0.0,106300.0,92600.0,310029079800.0,537165.0,-2.98,중립,52,높음,1,"[""AI/로봇"", ""우주항공"", ""건설/재건축""]","[""반도체"", ""금융""]","[""454910"", ""011070"", ""051910""]",[],0,0.3624412212679356,0.8339408325832915,2026-06-02T18:36:28,0.8,0.24,"목표가 돌파 (91,200 >= 6,850)",91000.0,-0.21929824561403508,0.0,-0.21929824561403508,90900.0,-0.3289473684210526,0.0,-0.3289473684210526,90600.0,-0.6578947368421052,0.0,-0.6578947368421052,89700.0,-1.644736842105263,0.0,-1.644736842105263,09:49:38,90200.0,5,SL,-5947.85,0,1
|
||||
203,2026-06-05,027360,아주IB투자,09:49:47,9710.0,9710.0,1245.0,9612.9,0.0,13790.0,11300.0,101099868480.0,1288553.0,-5.18,중립,52,높음,1,"[""AI/로봇"", ""우주항공"", ""건설/재건축""]","[""반도체"", ""금융""]","[""454910"", ""011070"", ""051910""]",[],0,0.37020411801246755,0.8009178007551034,2026-06-02T18:36:28,0.8,0.24,"목표가 돌파 (9,710 >= 1,245)",9640.0,-0.7209062821833162,0.0,-0.7209062821833162,9660.0,-0.5149330587023687,0.0,-0.7209062821833162,9680.0,-0.30895983522142123,0.0,-0.7209062821833162,9710.0,0.0,0.0,-0.7209062821833162,11:19:48,9910.0,15,TIME,2688.285,1,0
|
||||
204,2026-06-05,003280,흥아해운,09:52:20,1952.0,1952.0,112.5,1932.48,0.0,2290.0,2065.0,32976325200.0,1922900.0,0.15,중립,52,높음,1,"[""AI/로봇"", ""우주항공"", ""건설/재건축""]","[""반도체"", ""금융""]","[""454910"", ""011070"", ""051910""]",[],0,0.44352127575320216,0.7588575618154888,2026-06-02T18:36:28,0.8,0.24,"목표가 돌파 (1,952 >= 112)",1940.0,-0.6147540983606558,0.0,-0.6147540983606558,1940.0,-0.6147540983606558,0.0,-0.6147540983606558,1942.0,-0.5122950819672131,0.0,-0.6147540983606558,1932.0,-1.0245901639344261,0.0,-1.0245901639344261,10:00:45,1930.0,245,SL,-6383.7935,0,1
|
||||
205,2026-06-05,290690,소룩스,10:00:55,4595.0,4595.0,195.0,4549.05,0.0,5350.0,4960.0,13424635680.0,1303919.0,-5.45,중립,52,높음,1,"[""AI/로봇"", ""우주항공"", ""건설/재건축""]","[""반도체"", ""금융""]","[""454910"", ""011070"", ""051910""]",[],0,0.3491354113731506,0.7819601622060224,2026-06-02T18:36:28,0.8,0.24,"목표가 돌파 (4,595 >= 195)",4630.0,0.7616974972796519,0.7616974972796519,0.0,4625.0,0.6528835690968444,0.7616974972796519,0.0,4615.0,0.4352557127312296,0.7616974972796519,0.0,4595.0,0.0,0.7616974972796519,0.0,10:13:11,4540.0,104,SL,-6712.394,0,1
|
||||
206,2026-06-05,439960,코스모로보틱스,10:13:20,32350.0,32350.0,3550.0,32026.5,0.0,43750.0,36650.0,97240509800.0,6583783.0,11.36,중립,52,높음,1,"[""AI/로봇"", ""우주항공"", ""건설/재건축""]","[""반도체"", ""금융""]","[""454910"", ""011070"", ""051910""]",[],0,0.34360924042427765,0.8451523917392261,2026-06-02T18:36:28,0.8,0.24,"목표가 돌파 (32,350 >= 3,550)",32750.0,1.2364760432766615,1.2364760432766615,0.0,32600.0,0.7727975270479135,1.2364760432766615,0.0,32450.0,0.3091190108191654,1.2364760432766615,0.0,33000.0,2.009273570324575,2.009273570324575,0.0,10:19:48,32000.0,5,SL,-2086.2625,0,1
|
||||
208,2026-06-05,088350,한화생명,10:19:54,4850.0,4850.0,137.5,4801.5,0.0,5050.0,4775.0,26196328000.0,6055425.0,-0.31,중립,52,높음,1,"[""AI/로봇"", ""우주항공"", ""건설/재건축""]","[""반도체"", ""금융""]","[""454910"", ""011070"", ""051910""]",[],0,0.3726991567547378,0.7673860653015449,2026-06-02T18:36:28,0.8,0.24,"목표가 돌파 (4,850 >= 138)",4845.0,-0.10309278350515465,0.0,-0.10309278350515465,4830.0,-0.4123711340206186,0.0,-0.4123711340206186,4825.0,-0.5154639175257731,0.0,-0.5154639175257731,4830.0,-0.4123711340206186,0.0,-0.5154639175257731,11:25:58,4780.0,98,SL,-7844.753,0,1
|
||||
1,2026-06-09,003280,흥아해운,09:20:27,1884.0,1884.0,1868.5,1865.16,1796.0,2110.0,1965.0,18532852710.0,1896824.0,-0.48,중립,58,높음,1,"[""반도체"", ""AI/빅테크"", ""로봇""]","[""건설"", ""금융""]","[""090460"", ""036170""]",[],0,0.5895623059382584,0.7897254275291135,2026-06-08T16:01:30,0.8,0.8,"목표가 돌파 (1,884 >= 1,868)",1903.0,1.0084925690021231,1.0084925690021231,0.0,1911.0,1.4331210191082804,1.4331210191082804,0.0,1889.0,0.2653927813163482,1.4331210191082804,0.0,1905.0,1.1146496815286624,1.4331210191082804,0.0,10:24:47,1864.0,255,SL,-6098.937,0,1
|
||||
2,2026-06-09,010170,대한광통신,09:21:05,19640.0,19640.0,19310.0,19443.6,18060.0,20800.0,18300.0,400882172100.0,6653900.0,18.46,중립,58,높음,1,"[""반도체"", ""AI/빅테크"", ""로봇""]","[""건설"", ""금융""]","[""090460"", ""036170""]",[],0,0.4842664499981124,0.7414840107790897,2026-06-08T16:01:30,0.8,0.8,"목표가 돌파 (19,640 >= 19,310)",19540.0,-0.5091649694501018,0.0,-0.5091649694501018,19860.0,1.120162932790224,1.120162932790224,-0.5091649694501018,19800.0,0.8146639511201629,1.120162932790224,-0.5091649694501018,19330.0,-1.5784114052953158,1.120162932790224,-1.5784114052953158,09:21:25,19430.0,81,SL,-20317.5945,0,1
|
||||
4,2026-06-10,388790,라이콤,09:20:39,8750.0,8750.0,8747.5,8662.5,8170.0,4910.0,3755.0,14816406180.0,2768948.0,15.13,중립,48,높음,1,"[""반도체"", ""광통신"", ""방산""]","[""조선"", ""건설""]","[""005930"", ""000660""]",[],0,0.448541274183742,0.7513088385450986,2026-06-09T16:01:34,0.8,0.8,"목표가 돌파 (8,750 >= 8,748)",8900.0,1.7142857142857144,1.7142857142857144,0.0,8740.0,-0.1142857142857143,1.7142857142857144,-0.1142857142857143,8640.0,-1.2571428571428571,1.7142857142857144,-1.2571428571428571,8710.0,-0.4571428571428572,1.7142857142857144,-1.2571428571428571,09:21:24,8980.0,55,TP2,11614.7075,1,0
|
||||
6,2026-06-10,017900,광전자,09:46:00,9860.0,9860.0,9700.0,9761.4,9040.0,10450.0,9130.0,28967583920.0,2023995.0,7.29,중립,48,높음,1,"[""반도체"", ""광통신"", ""방산""]","[""조선"", ""건설""]","[""005930"", ""000660""]",[],0,0.5465898151140837,0.6943945504744956,2026-06-09T16:01:34,0.8,0.8,"목표가 돌파 (9,860 >= 9,700)",9940.0,0.8113590263691683,0.8113590263691683,0.0,10180.0,3.2454361054766734,3.2454361054766734,0.0,10610.0,7.606490872210954,7.606490872210954,0.0,10530.0,6.7951318458417855,7.606490872210954,0.0,09:48:46,10200.0,49,TP2,15612.919,1,0
|
||||
8,2026-06-10,222080,씨아이에스,10:32:43,10380.0,10380.0,10380.0,10276.2,10030.0,11780.0,11080.0,13659411600.0,493681.0,0.97,중립,48,높음,1,"[""반도체"", ""광통신"", ""방산""]","[""조선"", ""건설""]","[""005930"", ""000660""]",[],0,0.5472823440678635,0.6684702303044338,2026-06-09T16:01:34,0.8,0.8,"목표가 돌파 (10,380 >= 10,380)",10400.0,0.1926782273603083,0.1926782273603083,0.0,10470.0,0.8670520231213872,0.8670520231213872,0.0,10490.0,1.0597302504816954,1.0597302504816954,0.0,10470.0,0.8670520231213872,1.0597302504816954,0.0,11:02:32,10270.0,154,SL,-20263.859,0,1
|
||||
9,2026-06-10,047040,대우건설,11:21:27,21000.0,21000.0,20975.0,20790.0,20150.0,23850.0,22200.0,168768837900.0,3143910.0,-0.24,중립,48,높음,1,"[""전기전자"", ""반도체"", ""광통신""]","[""금융업"", ""철강금속"", ""2차전지""]","[""005930"", ""000660""]",[],0,0.46560294658060114,0.7542593982166793,2026-06-09T16:01:34,0.8,0.33599999999999997,"목표가 돌파 (21,000 >= 20,975)",21050.0,0.2380952380952381,0.2380952380952381,0.0,20975.0,-0.11904761904761905,0.2380952380952381,-0.11904761904761905,20950.0,-0.2380952380952381,0.2380952380952381,-0.2380952380952381,21050.0,0.2380952380952381,0.2380952380952381,-0.2380952380952381,12:41:15,20750.0,31,SL,-9101.9875,0,1
|
||||
10,2026-06-12,279570,케이뱅크,09:20:30,6470.0,6470.0,6450.0,6372.95,6250.0,5900.0,5500.0,14520293750.0,2054198.0,4.02,강세,72,보통,1,"[""반도체"", ""방산"", ""조선"", ""항공""]","[""건설"", ""광통신""]",[],[],0,0.5527329283625976,0.6632574176449582,2026-06-11T16:02:03,1.3,1.3,"목표가 돌파 (6,470 >= 6,450)",6480.0,0.1545595054095827,0.1545595054095827,0.0,6410.0,-0.9273570324574961,0.1545595054095827,-0.9273570324574961,6440.0,-0.46367851622874806,0.1545595054095827,-0.9273570324574961,6410.0,-0.9273570324574961,0.1545595054095827,-0.9273570324574961,09:56:29,6680.0,121,TP2,23716.4235,1,0
|
||||
11,2026-06-12,001740,SK네트웍스,09:20:45,13220.0,13220.0,12785.0,13021.7,12100.0,12270.0,10900.0,100766706800.0,8322389.0,13.28,강세,72,보통,1,"[""반도체"", ""방산"", ""조선"", ""항공""]","[""건설"", ""광통신""]",[],[],0,0.606595436105498,0.6944608641373307,2026-06-11T16:02:03,1.3,1.3,"목표가 돌파 (13,220 >= 12,785)",13240.0,0.15128593040847202,0.15128593040847202,0.0,13130.0,-0.680786686838124,0.15128593040847202,-0.680786686838124,13320.0,0.7564296520423601,0.7564296520423601,-0.680786686838124,13370.0,1.13464447806354,1.13464447806354,-0.680786686838124,09:28:07,13590.0,59,TP2,20149.4735,1,0
|
||||
13,2026-06-12,028670,팬오션,09:28:49,5310.0,5310.0,5290.0,5230.35,5180.0,5170.0,4950.0,11425592320.0,718062.0,6.31,강세,72,보통,1,"[""반도체"", ""방산"", ""조선"", ""항공""]","[""건설"", ""광통신""]",[],[],0,0.4769262690888751,0.6867203151088846,2026-06-11T16:02:03,1.3,1.3,"목표가 돌파 (5,310 >= 5,290)",5320.0,0.18832391713747645,0.18832391713747645,0.0,5290.0,-0.3766478342749529,0.18832391713747645,-0.3766478342749529,5290.0,-0.3766478342749529,0.18832391713747645,-0.3766478342749529,5250.0,-1.1299435028248588,0.18832391713747645,-1.1299435028248588,09:39:11,5230.0,489,SL,-44496.555,0,1
|
||||
14,2026-06-12,038500,삼표시멘트,09:39:31,12340.0,12340.0,12060.0,12154.9,11760.0,10500.0,9900.0,19350995120.0,723410.0,5.56,강세,72,보통,1,"[""반도체"", ""방산"", ""조선"", ""항공""]","[""건설"", ""광통신""]",[],[],0,0.6221551391896822,0.6631901016211622,2026-06-11T16:02:03,1.3,0.9099999999999999,"목표가 돌파 (12,340 >= 12,060)",12260.0,-0.6482982171799028,0.0,-0.6482982171799028,12230.0,-0.8914100486223663,0.0,-0.8914100486223663,12210.0,-1.053484602917342,0.0,-1.053484602917342,12270.0,-0.5672609400324149,0.0,-1.053484602917342,09:44:40,12140.0,147,SL,-33152.028,0,1
|
||||
16,2026-06-12,085620,미래에셋생명,12:29:49,30750.0,30750.0,30545.0,30288.75,27400.0,24200.0,17910.0,135360240730.0,4432039.0,4.77,강세,72,보통,1,"[""금융업"", ""전기전자"", ""유통업"", ""의약품""]","[""운수창고"", ""건설업""]",[],[],0,0.4703866335841655,0.7848740490945602,2026-06-11T16:02:03,1.3,1.4300000000000002,"목표가 돌파 (30,750 >= 30,545)",30400.0,-1.1382113821138211,0.0,-1.1382113821138211,30325.0,-1.3821138211382114,0.0,-1.3821138211382114,30150.0,-1.951219512195122,0.0,-1.951219512195122,30250.0,-1.6260162601626018,0.0,-1.951219512195122,12:31:36,30150.0,93,SL,-61696.665,0,1
|
||||
|
||||
|
Binary file not shown.
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"created_at": "2026-06-06T12:35:25",
|
||||
"created_at": "2026-06-12T16:01:42",
|
||||
"input_files": [
|
||||
"data\\training_dataset.csv",
|
||||
"data\\external_training_dataset.csv"
|
||||
@@ -25,22 +25,22 @@
|
||||
],
|
||||
"targets": {
|
||||
"label_stop_loss": {
|
||||
"rows": 5786,
|
||||
"train_rows": 4339,
|
||||
"test_rows": 1447,
|
||||
"positive_rows": 1241,
|
||||
"accuracy": 0.7988942639944713,
|
||||
"precision": 0.5189620758483033,
|
||||
"roc_auc": 0.8921085482452407
|
||||
"rows": 16885,
|
||||
"train_rows": 12663,
|
||||
"test_rows": 4222,
|
||||
"positive_rows": 3469,
|
||||
"accuracy": 0.7524869729985789,
|
||||
"precision": 0.4453316953316953,
|
||||
"roc_auc": 0.855688199712251
|
||||
},
|
||||
"label_win": {
|
||||
"rows": 5786,
|
||||
"train_rows": 4339,
|
||||
"test_rows": 1447,
|
||||
"positive_rows": 2188,
|
||||
"accuracy": 0.635798203178991,
|
||||
"precision": 0.511520737327189,
|
||||
"roc_auc": 0.7276183221612837
|
||||
"rows": 16885,
|
||||
"train_rows": 12663,
|
||||
"test_rows": 4222,
|
||||
"positive_rows": 7093,
|
||||
"accuracy": 0.6271909047844624,
|
||||
"precision": 0.5365230094959824,
|
||||
"roc_auc": 0.704072786104295
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,112 @@
|
||||
# 일간 결산 — 2026-06-08
|
||||
|
||||
## 요약
|
||||
|
||||
| 항목 | 값 |
|
||||
|------|-----|
|
||||
| 총 거래 | 0회 |
|
||||
| 승/패 | 0승 / 0패 |
|
||||
| 승률 | — |
|
||||
| 순손익 | **0원** |
|
||||
| 수수료 | 0원 |
|
||||
| FORCE 청산 | 0건 |
|
||||
|
||||
**완전 무진입일** — KOSPI -6% 폭락 환경에서 전 종목 목표가 미달성, 시스템이 진입을 자제함.
|
||||
|
||||
---
|
||||
|
||||
## 청산 사유 분포
|
||||
|
||||
없음.
|
||||
|
||||
---
|
||||
|
||||
## 오늘 시장 상황
|
||||
|
||||
midday_context.json (11:20 생성) 기준:
|
||||
|
||||
- **KOSPI -6% 급락**: 인버스 ETF가 거래량 1~3위 석권
|
||||
- **전 업종 급락**: 피해야 할 섹터에 반도체·전기전자·의약품·철강금속 등 6개 섹터 포함
|
||||
- **Hot sector**: 운수창고 (하락장 방어 성격)
|
||||
- **점심 세션 진입 중단**: lunch_trade_allowed=False, 배율 ×0.3
|
||||
|
||||
---
|
||||
|
||||
## 신호 진단
|
||||
|
||||
09:30~10:55 전체 구간 (`신호진단` 로그 기준):
|
||||
|
||||
- 유니버스 21종목 **전 종목 "목표가없음"**
|
||||
- 변동성 돌파 전략은 전일 고가 기반 목표가 돌파를 조건으로 삼음
|
||||
- KOSPI -6% 하락장에서는 대부분 종목이 갭다운 후 목표가 아래에서만 거래 → 유효 신호 없음
|
||||
- **전략이 의도대로 작동한 결과**: 롱 진입 신호 없음 = 손실 없음
|
||||
|
||||
---
|
||||
|
||||
## 과매매 평가
|
||||
|
||||
- 0회 거래 — 과매매 없음
|
||||
- 06-05의 SL cascade 12건 (-100,737원) 이후 이틀 연속 무진입
|
||||
- 오늘은 시장 조건 때문에 자연스럽게 무진입, 06-04는 AI trade_allowed=false 설정
|
||||
|
||||
---
|
||||
|
||||
## AI 필터
|
||||
|
||||
- midday_context가 하락장 진단 후 lunch_trade_allowed=False 정확히 설정
|
||||
- 오전 신호 자체가 없어 AI 필터 개입 불필요
|
||||
- 06-05 SL cascade 12건 직후 이틀 무진입 — 시스템 측면에서 자기보호적 결과
|
||||
|
||||
---
|
||||
|
||||
## 실행 품질
|
||||
|
||||
| 항목 | 상태 |
|
||||
|------|------|
|
||||
| 봇 기동 | 정상 (09:30 신호진단 시작) |
|
||||
| midday_context 로드 | 정상 (11:20, 위험 판단 반영) |
|
||||
| 강제 청산 (14:50) | 정상 완료 (포지션 없음) |
|
||||
| 결산 (15:10) | 정상 완료 |
|
||||
| 중복 결산 방지 | 정상 동작 (`결산 이미 처리됨: 2026-06-08`) |
|
||||
|
||||
---
|
||||
|
||||
## 30일 누적 현황
|
||||
|
||||
| 지표 | 값 | 기준 | 통과 |
|
||||
|------|-----|------|------|
|
||||
| 운영 거래일 | 13일 | 30일 이상 | ✗ |
|
||||
| 30일 승률 | 41.1% | >48% | ✗ |
|
||||
| MDD | -10.7% | >-10% | ✗ |
|
||||
| Sharpe | -18.34 | >1.0 | ✗ |
|
||||
| L3 발생 | 0회 | ≤2회 | ✓ |
|
||||
|
||||
오늘 0거래이므로 30일 누적 지표 변동 없음.
|
||||
|
||||
---
|
||||
|
||||
## 실거래 준비도
|
||||
|
||||
**전 항목 미통과 — 실거래 전환 불가.**
|
||||
|
||||
- 운영 기간: 13/30일 (43%)
|
||||
- Sharpe -18.34: 연속 소손실 구조 근본 개선 없이는 해소 불가
|
||||
- 승률 41.1%: 기준 48% 대비 7% 부족
|
||||
|
||||
---
|
||||
|
||||
## 오늘 특이사항
|
||||
|
||||
1. **KOSPI -6% 급락**: 역대급 하락 환경에서 전략이 자동으로 무진입 처리 — 올바른 동작
|
||||
2. **06-05 SL cascade 12건 이후 두 번째 무진입**: 연속 무진입이 반드시 나쁜 신호는 아님, 시장이 진입 불가 조건일 때는 쉬는 것이 정상
|
||||
3. **SL cascade 차단 룰 (06-06 적용)**: 오늘은 진입 자체가 없어 cascade 발동 조건 미달 — 작동 검증 기회 없음
|
||||
4. **봇 이중 실행 방지**: lock 파일 정상 유지, 중복 프로세스 없음
|
||||
|
||||
---
|
||||
|
||||
## 다음 검토 포인트
|
||||
|
||||
1. **목표가 계산 개선 가능성 검토**: 하락장에서도 일부 반등 종목은 목표가 형성 — 현재 전략은 이를 포착하지 못함 (단, 하락장 롱은 위험하므로 신중)
|
||||
2. **06-05 SL cascade 차단 룰 (threshold=5)**: 다음 활성 거래일에 정상 발동 여부 관찰 필요
|
||||
3. **06-02 제안 (TP2_PCT 2.5%→3.5%)**: 미적용 상태, 검토 대기 중
|
||||
4. **13거래일 승률 41.1%**: 통계 신뢰 기준(30일)까지 17거래일 부족
|
||||
@@ -0,0 +1,94 @@
|
||||
# 일일 결산 — 2026-06-09
|
||||
|
||||
## 시장 요약
|
||||
|
||||
어제(6월 8일) KOSPI -6% 급락 이후 오늘 V자 반등. KOSPI +3.5%, SK하이닉스 레버리지 +15% 이상(젠슨황 방한 모멘텀 실현). 오전 예측과 달리 건설·금융이 반등 주도. 인버스 ETF 대규모 청산 확인. 변동성이 여전히 높은 날이었음.
|
||||
|
||||
- 리스크 레벨(오전): 높음 / 감성 점수: 58 / 포지션 배수: 0.8x → 점심 0.7x
|
||||
- 오전 피해야 할 섹터: 건설, 금융
|
||||
- 점심 피해야 할 섹터 변경: 기계, 운수창고, 2차전지
|
||||
|
||||
---
|
||||
|
||||
## 거래 결과
|
||||
|
||||
| 종목 | 진입 시간 | 청산 시간 | 진입가 | 청산가 | 수량 | 청산 이유 | 순손익 | 수수료 |
|
||||
|---|---|---|---|---|---|---|---|---|
|
||||
| 흥아해운(003280) | 09:20:20 | 09:34:51 | 1,884 | 1,923 | 594 | TP1 | +20,771원 | 2,395원 |
|
||||
| 흥아해운(003280) | 09:20:20 | 10:24:47 | 1,884 | 1,864 | 255 | SL | -6,099원 | 999원 |
|
||||
| 대한광통신(010170) | 09:21:04 | 09:21:25 | 19,640 | 19,430 | 81 | SL | -20,318원 | 3,308원 |
|
||||
|
||||
### 집계
|
||||
|
||||
| 항목 | 값 |
|
||||
|---|---|
|
||||
| 총 거래 | 3건 |
|
||||
| 승/패 | 1승 2패 |
|
||||
| 승률 | 33.3% |
|
||||
| 순손익 | **-5,646원** |
|
||||
| 총 수수료 | 6,702원 |
|
||||
| 청산 분포 | SL 2 / TP1 1 / TIME 0 / FORCE 0 |
|
||||
| AI 부스트 진입 | 0건 |
|
||||
|
||||
---
|
||||
|
||||
## 분석
|
||||
|
||||
### 1. 거래 품질
|
||||
|
||||
**흥아해운 분할 매매**: 동일 진입 시간(09:20:20)에 255주(SL 로트)와 594주(TP1 로트) 두 건이 기록됨 — 분할 진입 메커니즘이 동작한 것으로 추정. TP1 로트(+20,771원)가 SL 로트(-6,099원)를 만회해 종목 기준 +14,672원 순익. 어제 급락 이후 반등 수혜 정상 포착.
|
||||
|
||||
**대한광통신 즉시 SL (21초)**: 09:21:04 진입 → 09:21:25 청산(21초). 진입가 19,640 → 청산가 19,430, -1.07% 급하락. 손실 -20,318원으로 오늘 최대 단일 손실. 어제 급락 후 갭 복구 시도 중 진입했을 가능성이 높으며, 변동성이 큰 날 가격 확인 전 진입의 위험성을 보여주는 사례. 단일 사례이므로 전략 변경 근거로는 부족하나 지속 모니터링 필요.
|
||||
|
||||
### 2. 오버트레이딩
|
||||
|
||||
3건은 과하지 않음. 단, SL 2건 중 대한광통신이 21초 만에 청산된 것은 진입 조건 재검토 신호.
|
||||
|
||||
### 3. AI 필터
|
||||
|
||||
- 오전 부스트 티커: 090460, 036170 → 실제 진입 종목과 불일치 (두 종목 모두 진입 없음)
|
||||
- 전체 거래 ai_boosted = 0 → AI 필터가 오늘 진입 결정에 기여하지 않음
|
||||
- 모델 관찰용으로 운용 중이므로 정상 동작
|
||||
|
||||
### 4. 청산 품질
|
||||
|
||||
- FORCE 청산 0건 — 포지션이 장 마감 전 모두 정리됨. 양호.
|
||||
- 14:00 이후 진입 차단 로그 정상 동작 확인.
|
||||
|
||||
### 5. 시스템 이슈
|
||||
|
||||
- **15:10 봇 재시작 감지(수정 완료)**: 로그에서 결산(15:10:01) 직후 watchdog이 종료된 봇을 재시작함(15:10:04). 이후 KIS API "초당 거래건수 초과" 오류 발생. 원인은 watchdog 감시 조건이 `15:10`을 포함한 것이며, `scripts/_watchdog.py`, `scripts/run_watchdog.ps1`, `scripts/setup_scheduler.ps1`을 수정해 watchdog을 09:00-15:05로 제한했다.
|
||||
- **점심 섹터 변경**: 오전 어보이드(건설, 금융) → 점심 어보이드(기계, 운수창고, 2차전지). 흥아해운(해운업/운수창고)은 오전 진입이므로 룰 위반 없음. 그러나 점심 이후 해당 종목 재진입 시 차단이 정상 작동했는지 확인 필요.
|
||||
|
||||
---
|
||||
|
||||
## 전략 제안
|
||||
|
||||
오늘 하루 3건, 단일 사례 부족으로 전략 파라미터 변경 근거 없음. 모니터링 포인트:
|
||||
|
||||
- 고변동성 장(전일 급락 이후)에서 즉시 SL 패턴 축적 시 진입 조건 강화 검토
|
||||
- 점심 섹터 어보이드 동적 변경과 기존 포지션 관계 정리
|
||||
|
||||
→ 현시점 별도 제안서 작성 없음.
|
||||
|
||||
---
|
||||
|
||||
## 라이브 현금 준비도
|
||||
|
||||
| 항목 | 기준 | 현재 | 결과 |
|
||||
|---|---|---|---|
|
||||
| 누적 운영 거래일 | 30일 이상 | 1일 | FAIL |
|
||||
| 승률(30일) | > 48% | 33.3% | FAIL |
|
||||
| MDD | > -10% | -0.1% | PASS |
|
||||
| 샤프 비율 | > 1.0 | 0.00 | FAIL |
|
||||
| L3 월 발동 | ≤ 2회 | 0회 | PASS |
|
||||
|
||||
**라이브 준비 미충족** — 데이터 축적 단계.
|
||||
|
||||
---
|
||||
|
||||
## 다음 체크 포인트
|
||||
|
||||
- 대한광통신 형태(고변동성 즉시 SL) 재발 시 진입 슬리피지/변동성 필터 강화 검토
|
||||
- 2026-06-10 15:10에 watchdog이 결산 직후 봇을 재시작하지 않는지 확인
|
||||
- KIS API 초당 거래건수 초과 오류 빈도 모니터링
|
||||
@@ -0,0 +1,124 @@
|
||||
# 일일 결산 — 2026-06-10
|
||||
|
||||
## 핵심 지표
|
||||
|
||||
| 항목 | 값 |
|
||||
|---|---|
|
||||
| 총 거래 | 6건 (2 티커) |
|
||||
| 승/패 | 4승 2패 |
|
||||
| 승률 | 66.7% |
|
||||
| 순손익 | **+45,606원** |
|
||||
| 수수료 | 11,534원 |
|
||||
| 총손익(수수료 전) | +57,140원 |
|
||||
|
||||
## 청산 사유 분포
|
||||
|
||||
| 사유 | 건수 | 비율 |
|
||||
|---|---|---|
|
||||
| TP2 | 2 | 33.3% |
|
||||
| TP1 | 2 | 33.3% |
|
||||
| SL | 2 | 33.3% |
|
||||
| TIME | 0 | — |
|
||||
| FORCE | 0 | — |
|
||||
|
||||
TP 청산 비율 66.7%, FORCE/TIME 0%. 강제청산 없이 깔끔하게 마감.
|
||||
|
||||
## 거래 내역
|
||||
|
||||
### 라이콤 (388790) — +34,632원
|
||||
|
||||
| 구분 | 진입 | 청산 | 가격 | 수량 | 손익 |
|
||||
|---|---|---|---|---|---|
|
||||
| TP1 | 09:20:31 | 09:21:05 (34초) | 8,750 → 8,950 | 127주 | +23,017원 |
|
||||
| TP2 | 09:20:31 | 09:21:24 (53초) | 8,750 → 8,980 | 55주 | +11,615원 |
|
||||
|
||||
- 장 시작 20분 만에 진입, 1분 이내 TP1·TP2 모두 도달. 완벽 실행.
|
||||
- AI 부스트 없음. 전략 자체 신호만으로 진입.
|
||||
|
||||
### 광전자 (017900) — +40,340원
|
||||
|
||||
| 구분 | 진입 | 청산 | 가격 | 수량 | 손익 |
|
||||
|---|---|---|---|---|---|
|
||||
| TP1 | 09:46:00 | 09:48:30 (2분 30초) | 9,860 → 10,100 | 113주 | +24,727원 |
|
||||
| TP2 | 09:46:00 | 09:48:46 (2분 46초) | 9,860 → 10,200 | 49주 | +15,613원 |
|
||||
|
||||
- 2분 46초 만에 TP2 청산. 빠른 돌파 종목.
|
||||
- AI 부스트 없음.
|
||||
|
||||
### 씨아이에스 (222080) — -20,264원
|
||||
|
||||
| 구분 | 진입 | 청산 | 가격 | 수량 | 손익 |
|
||||
|---|---|---|---|---|---|
|
||||
| SL | 10:32:43 | 11:02:32 (30분) | 10,380 → 10,270 | 154주 | -20,264원 |
|
||||
|
||||
- 진입 후 30분 버티다가 SL 발동. -1.06% 손실.
|
||||
- 오후 신호 진단에서 SL 재진입 차단 정상 동작 확인.
|
||||
|
||||
### 대우건설 (047040) — -9,102원
|
||||
|
||||
| 구분 | 진입 | 청산 | 가격 | 수량 | 손익 |
|
||||
|---|---|---|---|---|---|
|
||||
| SL | 11:21:27 | 12:41:15 (80분) | 21,000 → 20,750 | 31주 | -9,102원 |
|
||||
|
||||
- MAX_HOLD_MIN=90 내에 SL 발동. -1.19% 손실.
|
||||
- 수량(31주)이 소량으로, 손실 영향이 제한적.
|
||||
- 오후 신호 진단에서 SL 재진입 차단 정상 동작 확인.
|
||||
|
||||
## 과매매 점검
|
||||
|
||||
- 6건 / 2 티커 — 정상 범위.
|
||||
- 동일 티커 2회(TP1+TP2 분할) 진입은 전략 설계에 따른 것으로 과매매 아님.
|
||||
- 연속 SL: 씨아이에스(10:32) → 대우건설(11:21). 연속 2회지만 L3-B 발동 수준은 아님.
|
||||
|
||||
## AI 필터 품질
|
||||
|
||||
- 오늘 전 거래 `ai_boosted = 0`. AI 모델은 관찰 모드만.
|
||||
- 학습 데이터는 아직 대부분 외부 분봉 기반 후보 행이며, 실제 봇 거래 표본은 부족해 AI 판단 의존은 아직 부적절.
|
||||
- 오후 신호 진단: 목표가 미달 종목 다수, SL 차단 2종, TP 재진입 차단 2종 — 필터링 정상.
|
||||
|
||||
## 실행 품질
|
||||
|
||||
- 제로 가격 행 없음, 가격 불일치 없음.
|
||||
- 라이콤/광전자 진입 후 초단시간 TP 달성 — 변동성 돌파 로직 정상.
|
||||
- KIS 율한도 초과 경고가 장중 여러 차례 발생: `ENTRY price retry 1/4` 로그 확인.
|
||||
- retry 후 정상 재개. 치명적 장애 아님.
|
||||
- 장 마감 후 KISClient 기본 조회 간격 확대 및 rate-limit 전역 쿨다운 추가.
|
||||
- 14:00 이후 ENTRY 차단 정상 동작 확인.
|
||||
- 14:50 강제 청산 시작 → 완료 정상 (미청산 포지션 없음).
|
||||
- 결산 중복 처리 방어 정상: `결산 이미 처리됨: 2026-06-10` 로그 확인.
|
||||
|
||||
## 운영 이슈
|
||||
|
||||
### KIS 율한도 초과 (경미)
|
||||
- 가격 조회 시 `초당 거래건수를 초과하였습니다`가 여러 차례 발생.
|
||||
- 현행 retry 로직으로 자동 복구됨.
|
||||
- 오후 감시 루프에서 다수 종목 순차 조회 시 빈도 집중 가능성.
|
||||
- 2026-06-10 장 마감 후 `app/execution/kis_client.py`에서 기본 조회 간격을 보수화하고 rate-limit 응답 후 전역 쿨다운을 추가함.
|
||||
|
||||
## 30일 누적 지표 (2거래일)
|
||||
|
||||
| 지표 | 값 | 기준 | 판정 |
|
||||
|---|---|---|---|
|
||||
| 누적 운영일 | 2일 | 30일 | FAIL |
|
||||
| 승률 | 55.6% | >48% | PASS |
|
||||
| MDD | -0.1% | >-10% | PASS |
|
||||
| Sharpe | 12.38 | >1.0 | PASS |
|
||||
| L3 발동 | 0회 | ≤2/월 | PASS |
|
||||
|
||||
**라이브 준비: 미완료** — 운영 일수 부족 (2/30일).
|
||||
|
||||
## 전략 제안
|
||||
|
||||
오늘 결과로는 전략 변경 근거 없음.
|
||||
|
||||
- TP1/TP2 분할 청산 구조가 오전 두 거래에서 최대 수익 포착.
|
||||
- SL 2건은 모두 정상 범위 내 발동. 손실 과다 없음.
|
||||
- 샘플 수 부족(누적 9거래)으로 파라미터 최적화 시도는 시기상조.
|
||||
|
||||
별도 제안서 미작성.
|
||||
|
||||
## 다음 체크사항
|
||||
|
||||
- 2026-06-11에 KIS 율한도 초과 빈도가 줄었는지 확인.
|
||||
- 대우건설 80분 보유 후 SL: `MAX_HOLD_MIN=90` 경계에 근접. 현행 유지.
|
||||
- 운영 데이터 누적 지속. 30거래일 도달 시 라이브 준비 재점검.
|
||||
@@ -0,0 +1,108 @@
|
||||
# 일일 결산 — 2026-06-11
|
||||
|
||||
## 핵심 지표
|
||||
|
||||
| 항목 | 값 |
|
||||
|---|---|
|
||||
| 총 거래 | 0건 |
|
||||
| 승/패 | — |
|
||||
| 승률 | — |
|
||||
| 순손익 | **0원** |
|
||||
| 수수료 | 0원 |
|
||||
|
||||
완전 무진입일. 6월 들어 두 번째 무진입 (6/8에 이어).
|
||||
|
||||
## 무진입 원인
|
||||
|
||||
### 1. AI 블랙리스트 — 매크로 쇼크 차단
|
||||
|
||||
오전 9:27부터 감시 로그 전반에서 다음 사유로 거래 차단:
|
||||
|
||||
> **미·이란 군사충돌 발발 + 미 CPI 4.2%(37개월 최대) + 코스피 변동성 쇼크**
|
||||
|
||||
차단 적용 종목 (로그 확인):
|
||||
|
||||
| 종목 | 설명 |
|
||||
|---|---|
|
||||
| 이수화학 (005950) | 9:27부터 종일 차단. 장중 13,540–13,950, 목표가 13,060 상회했으나 블랙리스트로 진입 불가 |
|
||||
| 대한광통신 (010170) | 간헐적 차단 — 9:27, 9:32 등. 일부 시간대에 차단 해제 후 재차단 반복 |
|
||||
| 디아이씨 (092200) | 9:32, 10:35 등 반복 차단 |
|
||||
| 에치에프알 (230240) | 10:35에 단회 차단 후 해제 |
|
||||
|
||||
**이수화학 특이사항:** 목표가(13,060)보다 현재가(13,540–13,950)가 높았음에도 AI 블랙리스트가 진입을 차단했다. 변동성 쇼크 국면에서 역방향 급락 리스크를 선제 차단한 것으로 판단 — 올바른 동작.
|
||||
|
||||
### 2. 전종목 목표가 미달
|
||||
|
||||
AI 블랙리스트 미적용 종목들도 전부 목표가에 미달. 특히 근접 미달 사례:
|
||||
|
||||
| 종목 | 현재가(최고) | 목표가 | 도달률 |
|
||||
|---|---|---|---|
|
||||
| HPSP (403870) | 54,600 | 54,725 | 99.8% |
|
||||
| 에치에프알 (230240) | 24,600 | 25,025 | 98.3% |
|
||||
| 신성이엔지 (011930) | 20,200 | 20,640 | 97.9% |
|
||||
| SK증권 (001510) | 2,840 | 2,848 | 99.7% |
|
||||
| 삼성중공업 (010140) | 25,200 | 26,050 | 96.7% |
|
||||
|
||||
변동성이 전반적으로 낮아 돌파 신호 발생 조건이 충족되지 않은 날.
|
||||
|
||||
### 3. 점심 세션 진입 중단
|
||||
|
||||
11:20 `midday_context.json` 로드 후 `진입허용: False` 설정 확인. 포지션 배율 ×0.5 설정도 정상 적용. (오전에 이미 진입이 없었으므로 실질적 영향은 없음.)
|
||||
|
||||
## 청산 사유 분포
|
||||
|
||||
거래 없음 — 해당 없음.
|
||||
|
||||
## 과매매 점검
|
||||
|
||||
거래 없음. 연속 SL 없음. L3-B 미발동.
|
||||
|
||||
## AI 필터 품질
|
||||
|
||||
- 블랙리스트 차단이 매크로 고위험 날에 전종목 적용되어 보호 역할 수행.
|
||||
- 이수화학처럼 목표가를 상회한 종목도 블랙리스트로 차단 — 단기 과잉 차단의 가능성은 있으나 변동성 쇼크 국면에서는 보수적 판단이 타당.
|
||||
- AI 모델 관찰 모드 유지 (실거래 표본 9건으로 신뢰도 부족).
|
||||
|
||||
## 실행 품질
|
||||
|
||||
- 봇 정상 가동 확인 (9:27 첫 신호 진단 로그 ~ 15:10 결산 로그).
|
||||
- 14:50 강제 청산 실행: 포지션 없어 무처리 정상.
|
||||
- 15:10 결산: 0건 / 0원 정상 출력.
|
||||
- 결산 중복 방어: `결산 이미 처리됨: 2026-06-11` 정상 동작.
|
||||
- 전날 체크사항(KIS 율한도 초과 빈도): 오늘 거래 없어 직접 확인 불가. 다음 유의미한 거래일에 재확인 필요.
|
||||
|
||||
## 시장 컨텍스트
|
||||
|
||||
| 이슈 | 내용 |
|
||||
|---|---|
|
||||
| 지정학 | 미·이란 군사충돌 발발 |
|
||||
| 인플레이션 | 미 CPI 4.2% — 37개월 최대 |
|
||||
| 증시 | 코스피 변동성 쇼크 |
|
||||
|
||||
이 조합은 단기 방향성 불확실성이 매우 높은 국면으로, 모멘텀 돌파 전략이 작동하기 어려운 환경. 목표가 미달 + AI 블랙리스트 이중 방어가 정상 작동했고, 자본 손실 없이 하루를 넘긴 것은 전략적으로 올바른 결과.
|
||||
|
||||
## 30일 누적 지표 (3거래일)
|
||||
|
||||
| 지표 | 값 | 기준 | 판정 |
|
||||
|---|---|---|---|
|
||||
| 누적 운영일 | 3일 | 30일 | FAIL |
|
||||
| 승률 | 55.6% | >48% | PASS |
|
||||
| MDD | -0.1% | >-10% | PASS |
|
||||
| Sharpe | 9.22 | >1.0 | PASS |
|
||||
| L3 발동 | 0회 | ≤2/월 | PASS |
|
||||
|
||||
**라이브 준비: 미완료** — 운영 일수 부족 (3/30일).
|
||||
|
||||
## 전략 제안
|
||||
|
||||
전략 변경 근거 없음. 제안서 미작성.
|
||||
|
||||
- 무진입일 자체는 전략 결함이 아님. 고변동성 날에 자본 보전이 기본 방어 목표.
|
||||
- 목표가 근접 미달 패턴(99.7–96.7% 도달)은 관찰이 필요하나 표본 1일로 판단 불가.
|
||||
- 누적 실거래 9건 — 어떤 파라미터 변경도 근거 불충분.
|
||||
|
||||
## 다음 체크사항
|
||||
|
||||
- 다음 거래일에 KIS 율한도 초과 빈도 재확인 (6/10 픽스 이후 첫 유의미한 거래일).
|
||||
- 미·이란 / 미 CPI 이슈가 지속될 경우 AI 블랙리스트가 며칠 연속 전종목 차단할 수 있음 — 단순 무진입과 구분하여 모니터링.
|
||||
- 운영 데이터 누적 지속. 30거래일 도달 시 라이브 준비 재점검.
|
||||
@@ -0,0 +1,150 @@
|
||||
# 일일 결산 — 2026-06-12
|
||||
|
||||
## 핵심 지표
|
||||
|
||||
| 항목 | 값 |
|
||||
|---|---|
|
||||
| 총 거래 | 7건 (5 티커) |
|
||||
| 승/패 | 4승 3패 |
|
||||
| 승률 | 57.1% |
|
||||
| 순손익 | **-25,678원** |
|
||||
| 수수료 | 26,158원 |
|
||||
| 총손익(수수료 전) | +482원 |
|
||||
|
||||
## 청산 사유 분포
|
||||
|
||||
| 사유 | 건수 | 비율 |
|
||||
|---|---|---|
|
||||
| TP2 | 2 | 28.6% |
|
||||
| TP1 | 2 | 28.6% |
|
||||
| SL | 3 | 42.9% |
|
||||
| TIME | 0 | — |
|
||||
| FORCE | 0 | — |
|
||||
|
||||
TP 청산 비율 57.1%, SL 비율 42.9%. 강제청산 없음.
|
||||
|
||||
## 거래 내역
|
||||
|
||||
### 케이뱅크 (279570) — +59,035원
|
||||
|
||||
| 구분 | 진입 | 청산 | 가격 | 수량 | 손익 |
|
||||
|---|---|---|---|---|---|
|
||||
| TP1 | 09:20:23 | 09:55:58 (35분) | 6,470 → 6,610 | 280주 | +35,319원 |
|
||||
| TP2 | 09:20:23 | 09:56:29 (36분) | 6,470 → 6,680 | 121주 | +23,716원 |
|
||||
|
||||
- TP1·TP2 모두 정상 달성. 35분 보유.
|
||||
- AI 부스트 없음.
|
||||
|
||||
### SK네트웍스 (001740) — +54,631원
|
||||
|
||||
| 구분 | 진입 | 청산 | 가격 | 수량 | 손익 |
|
||||
|---|---|---|---|---|---|
|
||||
| TP1 | 09:20:45 | 09:27:13 (6분) | 13,220 → 13,500 | 137주 | +34,482원 |
|
||||
| TP2 | 09:20:45 | 09:28:07 (7분) | 13,220 → 13,590 | 59주 | +20,149원 |
|
||||
|
||||
- 7분 만에 TP1·TP2 완료. 오전 단기 돌파 최적 실행.
|
||||
- AI 부스트 없음.
|
||||
|
||||
### 팬오션 (028670) — -44,497원
|
||||
|
||||
| 구분 | 진입 | 청산 | 가격 | 수량 | 손익 |
|
||||
|---|---|---|---|---|---|
|
||||
| SL | 09:28:48 | 09:39:11 (10분) | 5,310 → 5,230 | 489주 | -44,497원 |
|
||||
|
||||
- 진입 10분 후 SL. -1.51% 하락.
|
||||
- 489주 대량 포지션 → 손실 규모 확대.
|
||||
|
||||
### 삼표시멘트 (038500) — -33,152원
|
||||
|
||||
| 구분 | 진입 | 청산 | 가격 | 수량 | 손익 |
|
||||
|---|---|---|---|---|---|
|
||||
| SL | 09:39:31 | 09:44:40 (5분) | 12,340 → 12,140 | 147주 | -33,152원 |
|
||||
|
||||
- 팬오션 SL 직후 연속 진입, 5분 만에 SL. -1.62% 하락.
|
||||
- 연속 SL 2번째 (L3-B 미발동, 임계값 미도달).
|
||||
|
||||
### 미래에셋생명 (085620) — -61,697원
|
||||
|
||||
| 구분 | 진입 | 청산 | 가격 | 수량 | 손익 |
|
||||
|---|---|---|---|---|---|
|
||||
| SL | 12:29:48 | 12:31:36 (2분) | 30,750 → 30,150 | 93주 | -61,697원 |
|
||||
|
||||
- **오늘 최대 단일 손실.** 점심 시간대 진입, 2분 만에 SL 발동.
|
||||
- 진입 60초 시점 mae=-1.14%로 이미 빠르게 하락.
|
||||
- 주가 단기 낙폭(-1.95%)이 크고 SL이 즉각 발동.
|
||||
- 93주 × 30,750원 ≈ 285만원 포지션 대비 손실 2.16% 실효.
|
||||
|
||||
## 과매매 점검
|
||||
|
||||
- 7건 / 5 티커 — 동일 티커 TP1+TP2 분할 포함 시 5회 진입. 정상 범위.
|
||||
- 연속 SL: 팬오션(09:39) → 삼표시멘트(09:44) → 미래에셋생명(12:31). 총 3회지만
|
||||
SL_CASCADE_HALT_THRESHOLD=5 (60분 내) 미도달.
|
||||
- 14:00 이후 ENTRY 차단 정상. 신규 진입 없음.
|
||||
|
||||
## AI 필터 품질
|
||||
|
||||
- 전 거래 `ai_boosted = 0`. AI 모델 관찰 전용 모드 유지.
|
||||
- 오후 신호 진단: 팬오션·삼표시멘트·미래에셋생명 SL차단 정상 작동.
|
||||
케이뱅크·SK네트웍스 TP 당일 재진입 차단 정상 작동.
|
||||
- 블랙리스트/부스트 기능이 오늘 거래에 영향 없음.
|
||||
|
||||
## 실행 품질
|
||||
|
||||
- 제로 가격 행 없음. 가격 불일치 없음.
|
||||
- 오전 두 티커(케이뱅크·SK네트웍스) TP1+TP2 완전 청산 — 변동성 돌파 로직 정상.
|
||||
- 14:50 강제 청산 실행 → 미청산 포지션 없음.
|
||||
- 결산 중복 처리 방어 정상: `결산 이미 처리됨: 2026-06-12` 로그 확인.
|
||||
|
||||
## 손익비 분석
|
||||
|
||||
| 구분 | 건수 | 합산 손익 | 건당 평균 |
|
||||
|---|---|---|---|
|
||||
| 승리 (TP) | 4 | +113,666원 | +28,417원 |
|
||||
| 패배 (SL) | 3 | -139,346원 | -46,449원 |
|
||||
|
||||
- 오늘 손익비(R:R) ≈ 0.61. 승률 57.1%에도 불구하고 순손실 발생.
|
||||
- 미래에셋생명 1건(-61,697원)이 전체 수익(+113,666원)의 54%에 달하는 손실.
|
||||
- 팬오션 대량 포지션(489주)도 손실 기여.
|
||||
|
||||
## 운영 이슈 분석
|
||||
|
||||
### 점심 시간대 단기 SL (미래에셋생명)
|
||||
- 12:29 진입은 미드데이 컨텍스트 로드 이후 구간.
|
||||
- Post-entry t=60s mae=-1.14%, t=180s mae=-1.38% — 진입 즉시 역방향 이동.
|
||||
- 점심 시간대는 거래량이 줄어 단기 변동성이 높아질 수 있음.
|
||||
- **관찰 사항**: 12:00~14:00 구간 진입 시 SL 발생 빈도 지속 모니터링 권장.
|
||||
현재 샘플(16거래) 부족으로 파라미터 변경 근거 없음.
|
||||
|
||||
### 연속 SL 패턴
|
||||
- 팬오션(09:39) → 삼표시멘트(09:44): 5분 간격 연속 SL.
|
||||
- 두 번째 SL 발동 후에도 신규 진입이 이루어짐 (미래에셋생명 12:29).
|
||||
- L3-B 발동 기준(연속 3회 이상)에 아직 미도달. 현행 유지.
|
||||
|
||||
## 30일 누적 지표 (4거래일)
|
||||
|
||||
| 지표 | 값 | 기준 | 판정 |
|
||||
|---|---|---|---|
|
||||
| 누적 운영일 | 4일 | 30일 | FAIL |
|
||||
| 승률 | 56.2% | >48% | PASS |
|
||||
| MDD | -0.3% | >-10% | PASS |
|
||||
| Sharpe | 2.17 | >1.0 | PASS |
|
||||
| L3 발동 | 0회 | ≤2/월 | PASS |
|
||||
|
||||
**라이브 준비: 미완료** — 운영 일수 부족 (4/30일). 나머지 4개 지표 모두 기준 충족.
|
||||
|
||||
## 전략 제안
|
||||
|
||||
오늘 결과로는 전략 변경 근거 없음.
|
||||
|
||||
- 오전 모멘텀 두 거래(케이뱅크·SK네트웍스) 완벽 실행. 전략 핵심 로직 정상.
|
||||
- SL 3건은 모두 정상 발동. 개별 손실이 크지만 리스크 제어 기전 작동.
|
||||
- 미래에셋생명 점심 시간대 신속 SL은 개별 이벤트로 판단. 반복 시 `ENTRY_END_MORNING` 적용 검토 가능하나 현재 샘플 1건으로 근거 불충분.
|
||||
- 팬오션 대량 포지션(489주)이 손실을 키운 점: 포지션 사이징 파라미터 검토 가능하나 역시 누적 데이터 필요.
|
||||
|
||||
별도 제안서 미작성.
|
||||
|
||||
## 다음 체크사항
|
||||
|
||||
- 점심 시간대(12:00~14:00) SL 비율을 향후 데이터 누적 후 확인.
|
||||
- 연속 SL 이후 익일 첫 진입에서 L3-B 승수가 정상 적용되는지 확인.
|
||||
- 운영 데이터 누적 지속. 30거래일 도달 시 라이브 준비 재점검.
|
||||
@@ -0,0 +1,159 @@
|
||||
# 일일 결산 — 2026-06-15
|
||||
|
||||
## 핵심 지표
|
||||
|
||||
| 항목 | 값 |
|
||||
|---|---|
|
||||
| 총 거래 | 9건 (5 티커) |
|
||||
| 승/패 | 6승 3패 |
|
||||
| 승률 | 66.7% |
|
||||
| 순손익 | **+88,648원** |
|
||||
| 수수료 | 27,357원 |
|
||||
| 총손익(수수료 전) | +116,005원 |
|
||||
|
||||
## 청산 사유 분포
|
||||
|
||||
| 사유 | 건수 | 비율 |
|
||||
|---|---|---|
|
||||
| TP1 | 3 | 33.3% |
|
||||
| TP2 | 3 | 33.3% |
|
||||
| TIME | 2 | 22.2% |
|
||||
| SL | 1 | 11.1% |
|
||||
| FORCE | 0 | — |
|
||||
|
||||
TP 청산 비율 66.7%, SL 비율 11.1%. 강제청산 없음.
|
||||
|
||||
## 거래 내역
|
||||
|
||||
### HL만도 (204320) — +56,291원
|
||||
|
||||
| 구분 | 진입 | 청산 | 가격 | 수량 | 손익 |
|
||||
|---|---|---|---|---|---|
|
||||
| TP1 | 09:20:27 | 09:22:28 (2분) | 66,000 → 67,400 | 25주 | +31,467원 |
|
||||
| TP2 | 09:20:27 | 09:25:18 (5분) | 66,000 → 68,400 | 11주 | +24,824원 |
|
||||
|
||||
- 2~5분 안에 TP1·TP2 완료. 오전 첫 돌파 가장 빠른 실행.
|
||||
- AI 부스트 없음.
|
||||
|
||||
### 삼성전자 (005930) — -21,681원 ⚠️
|
||||
|
||||
| 구분 | 진입 | 청산 | 가격 | 수량 | 손익 |
|
||||
|---|---|---|---|---|---|
|
||||
| TIME | 09:20:46 | 10:51:30 (91분) | 340,000 → 338,000 | 8주 | -21,681원 |
|
||||
|
||||
- **AI 부스트 적용**. 91분 보유 후 TIME 청산.
|
||||
- 목표가 334,000 — 진입가 340,000 **보다 낮음**. 진입 시점부터 TP 달성 불가 구조.
|
||||
- 아침 변동성 돌파 목표가가 갭업 진입가를 밑돌았으나 진입 차단 로직 없어 통과.
|
||||
|
||||
### HMM (011200) — +47,997원
|
||||
|
||||
| 구분 | 진입 | 청산 | 가격 | 수량 | 손익 |
|
||||
|---|---|---|---|---|---|
|
||||
| TP1 | 09:44:06 | 10:12:59 (29분) | 21,175 → 21,600 | 79주 | +29,997원 |
|
||||
| TP2 | 09:44:06 | 10:14:27 (30분) | 21,175 → 21,750 | 34주 | +18,000원 |
|
||||
|
||||
- 30분 내 TP1·TP2 달성. 안정적 돌파 패턴.
|
||||
- AI 부스트 없음.
|
||||
|
||||
### HPSP (403870) — +49,100원
|
||||
|
||||
| 구분 | 진입 | 청산 | 가격 | 수량 | 손익 |
|
||||
|---|---|---|---|---|---|
|
||||
| TP1 | 10:18:15 | 10:25:07 (7분) | 75,950 → 77,600 | 21주 | +31,233원 |
|
||||
| TP2 | 10:18:15 | 10:26:31 (8분) | 75,950 → 77,900 | 10주 | +17,867원 |
|
||||
|
||||
- 7~8분 만에 TP1·TP2 완료. HMM과 함께 오전 중반 최고 수익 거래.
|
||||
- AI 부스트 없음.
|
||||
|
||||
### 에이팩트 (200470) — -41,636원
|
||||
|
||||
| 구분 | 진입 | 청산 | 가격 | 수량 | 손익 |
|
||||
|---|---|---|---|---|---|
|
||||
| SL | 10:35:15 | 10:38:48 (3분) | 12,430 → 12,240 | 193주 | -41,636원 |
|
||||
|
||||
- 진입 3분 만에 SL. -1.53% 하락.
|
||||
- 193주 포지션 → 손실 규모 큼.
|
||||
- 오늘 유일한 SL. SL차단 이후 당일 재진입 차단 정상 작동.
|
||||
|
||||
### 삼성전자 (005930) 2차 — -1,422원 ⚠️
|
||||
|
||||
| 구분 | 진입 | 청산 | 가격 | 수량 | 손익 |
|
||||
|---|---|---|---|---|---|
|
||||
| TIME | 11:51:54 | 13:22:28 (90분) | 338,500 → 338,500 | 2주 | -1,422원 |
|
||||
|
||||
- **AI 부스트 적용**. 1차 TIME 청산(10:51) 후 60분 쿨다운 소진 후 재진입.
|
||||
- 목표가 334,000 — 진입가 338,500보다 낮음. 재진입도 TP 달성 불가 구조.
|
||||
- 손익은 수수료만(-1,422원). 90분 보유 후 TIME 청산.
|
||||
|
||||
## 손익비 분석
|
||||
|
||||
| 구분 | 건수 | 합산 손익 | 건당 평균 |
|
||||
|---|---|---|---|
|
||||
| 승리 (TP) | 6 | +153,388원 | +25,565원 |
|
||||
| 패배 (TIME+SL) | 3 | -64,739원 | -21,580원 |
|
||||
|
||||
- R:R ≈ **1.18**. 승률 66.7% × 양의 R:R = 드라이런 최고 성과일.
|
||||
- 삼성전자 2건(-23,103원)이 없었다면 순손익 +111,751원.
|
||||
|
||||
## 과매매 점검
|
||||
|
||||
- 9건 / 5 티커. TP1+TP2 분할 포함 시 5회 진입. 정상 범위.
|
||||
- SL 연속 없음. 에이팩트 SL 1건 후 신규 진입은 없었음 (SL차단 적용).
|
||||
삼성전자 2차는 에이팩트 SL과 무관한 별도 쿨다운 만료 진입.
|
||||
- 14:00 이후 진입 없음. 강제청산 대상 없음.
|
||||
|
||||
## AI 필터 품질
|
||||
|
||||
- 삼성전자 양쪽 모두 `ai_boosted = 1`. 두 거래 모두 TIME 손실(-23,103원 합산).
|
||||
AI 부스트가 오히려 수익성 낮은 종목 진입을 유발한 패턴.
|
||||
- HL만도·HMM·HPSP·에이팩트 — `ai_boosted = 0`. 수익 +153,388원 / 손실 -41,636원.
|
||||
- 오늘 기준: AI 미부스트 거래가 부스트 거래보다 수익 우위.
|
||||
**관찰**: AI 부스트 종목 누적 손익 추적 지속 권장. 현재 샘플 미미.
|
||||
- SL차단(에이팩트), TP 당일 재진입 차단(HL만도·HMM·HPSP) 모두 정상 작동.
|
||||
|
||||
## 실행 품질
|
||||
|
||||
- 제로 가격 행 없음. 가격 불일치 없음.
|
||||
- TP1+TP2 3쌍(HL만도·HMM·HPSP) 완전 청산 — 변동성 돌파 로직 정상.
|
||||
- 14:50 강제 청산 실행 → 미청산 포지션 없음 (강제청산 전 전 포지션 이미 청산).
|
||||
- 결산 중복 처리 방어 정상: `결산 이미 처리됨: 2026-06-15` 로그 확인.
|
||||
- KIS 타임아웃: 라이콤(388790) 12:30 2회 재시도, 현대건설(000720) 12:57 1회 재시도.
|
||||
모두 정상 복구. 실거래 영향 없음.
|
||||
|
||||
## 구조 이슈 — 삼성전자 TIME 후 동일 신호 재진입
|
||||
|
||||
| 항목 | 1차 진입 | 2차 진입 |
|
||||
|---|---|---|
|
||||
| 진입가 | 340,000 | 338,500 |
|
||||
| 돌파 목표가 | 334,000 | 334,000 |
|
||||
| 차이 | **-6,000원** | **-4,500원** |
|
||||
| 청산 | TIME | TIME |
|
||||
|
||||
- 코드상 `목표가`는 익절가가 아니라 변동성 돌파 진입 기준가.
|
||||
따라서 `현재가 >= 목표가` 자체는 정상 진입 조건.
|
||||
- 실제 문제는 1차 `TIME` 청산 후에도 가격이 목표가 위에 머물러,
|
||||
60분 쿨다운 종료만으로 같은 돌파 신호를 재사용해 2차 진입한 점.
|
||||
- **적용 완료**: `TIME/FORCE` 청산 후에는 목표가 아래로 한 번 내려왔다가
|
||||
다시 돌파해야 재진입 가능하도록 `재돌파 대기` 필터 추가.
|
||||
- 적용 문서: `reports/proposals/2026-06-15_strategy_proposal.md`.
|
||||
|
||||
## 30일 누적 지표 (5거래일)
|
||||
|
||||
| 지표 | 값 | 기준 | 판정 |
|
||||
|---|---|---|---|
|
||||
| 누적 운영일 | 5일 | 30일 | FAIL |
|
||||
| 승률 | 60.0% | >48% | PASS |
|
||||
| MDD | -0.3% | >-10% | PASS |
|
||||
| Sharpe | 7.92 | >1.0 | PASS |
|
||||
| L3 발동 | 0회 | ≤2/월 | PASS |
|
||||
|
||||
**라이브 준비: 미완료** — 운영 일수 부족 (5/30일).
|
||||
|
||||
누적 PnL (운영 5일): -5,646 + 45,606 + 0 + (-25,678) + 88,648 = **+102,930원**
|
||||
|
||||
## 다음 체크사항
|
||||
|
||||
- `TIME/FORCE` 후 재돌파 대기 필터 내일 로그에서 정상 차단 여부 확인.
|
||||
- AI 부스트 누적 손익 별도 집계 시작 권장.
|
||||
- 에이팩트 대량 포지션 사이징(193주) — 리스크 대비 포지션 계산 재확인.
|
||||
- 운영 데이터 누적 지속. 30거래일 도달 시 라이브 준비 재점검.
|
||||
@@ -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원)")
|
||||
@@ -1,5 +1,32 @@
|
||||
# Implementation Log
|
||||
|
||||
## 2026-06-10
|
||||
|
||||
- Enabled wake-from-sleep behavior for Scheduler tasks:
|
||||
- `scripts/setup_scheduler.ps1` now registers stock tasks with `WakeToRun`.
|
||||
- Re-registered tasks and verified `WakeToRun=True` and `StartWhenAvailable=True`.
|
||||
- Hardened KIS request throttling:
|
||||
- Mock request spacing default: 1.7s.
|
||||
- Real request spacing default: 0.35s, rate limit default: 3/sec.
|
||||
- Added local `.env` override support for request spacing/rate limits.
|
||||
- Added global cooldown after rate-limit responses.
|
||||
- Updated the 2026-06-10 daily report to reflect repeated KIS rate-limit retries.
|
||||
|
||||
## 2026-06-09
|
||||
|
||||
- Re-registered all Windows Scheduler tasks from the live project path:
|
||||
- `C:\Users\whdwo\Desktop\coding\stockbot_v3`
|
||||
- Verified every task action script exists at that path.
|
||||
- Fixed watchdog end-of-day behavior:
|
||||
- `StockBot_Watchdog` now runs 09:00-15:05 every 5 minutes.
|
||||
- `scripts/_watchdog.py` excludes 15:10 so normal daily settlement shutdown is not restarted.
|
||||
- `scripts/run_watchdog.ps1` skips after 15:09:59.
|
||||
- Hardened target calculation:
|
||||
- Targets are cleared before recalculation.
|
||||
- `open=0` is ignored before market open.
|
||||
- Delayed restarts after 08:50 recalculate targets immediately.
|
||||
- Updated operational docs and the 2026-06-09 daily report.
|
||||
|
||||
## 2026-05-28
|
||||
|
||||
- Applied the approved 2026-05-28 strategy update:
|
||||
@@ -120,3 +147,18 @@ Open risks:
|
||||
- Verification:
|
||||
- Python compile check passed.
|
||||
- Runtime import confirmed `ENTRY_START == "09:15"`.
|
||||
|
||||
## 2026-06-15
|
||||
|
||||
- Applied a stale breakout re-entry guard after reviewing the Samsung Electronics `TIME` re-entry.
|
||||
- Changed `app/strategy/volatility_breakout.py`:
|
||||
- `TIME` and `FORCE` final exits now mark the ticker as requiring a fresh breakout.
|
||||
- While that marker is active, a ticker is blocked with `재돌파 대기` if it remains above the same volatility breakout target.
|
||||
- The marker clears only after price moves back below the target, allowing a later fresh breakout entry.
|
||||
- Rationale:
|
||||
- The existing `current_price >= target` condition is the normal volatility breakout entry rule.
|
||||
- The bug was reusing a still-active same-day breakout signal after `TIME/FORCE` cooldown, not the first breakout itself.
|
||||
- This would have blocked the 2026-06-15 Samsung Electronics second entry after the first `TIME` exit.
|
||||
- Updated docs:
|
||||
- `reports/daily/2026-06-15.md`
|
||||
- `reports/proposals/2026-06-15_strategy_proposal.md`
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
# 전략 제안서 — 2026-06-15
|
||||
|
||||
## 요약
|
||||
|
||||
`TIME/FORCE` 청산 후에는 같은 당일 돌파 신호를 그대로 재사용하지 않고,
|
||||
목표가 아래로 한 번 식었다가 다시 돌파할 때만 재진입하도록 필터 추가.
|
||||
|
||||
**적용 완료:** 2026-06-15
|
||||
|
||||
---
|
||||
|
||||
## 관찰된 문제
|
||||
|
||||
오늘(2026-06-15) 삼성전자(005930)가 두 차례 진입됐다. 1차는 09:20 돌파 진입이었고,
|
||||
10:51 `TIME` 청산 후 60분 쿨다운이 끝난 11:51에 다시 진입됐다.
|
||||
|
||||
| 진입 | 진입가 | 목표가(TP) | 차이 | 결과 |
|
||||
|---|---|---|---|---|
|
||||
| 1차 09:20 | 340,000 | 334,000 | -6,000 | TIME -21,681원 |
|
||||
| 2차 11:51 | 338,500 | 334,000 | -4,500 | TIME -1,422원 |
|
||||
|
||||
주의: 코드상 `목표가`는 익절가가 아니라 변동성 돌파 진입 기준가다.
|
||||
따라서 `현재가 >= 목표가`를 무조건 막으면 전략 전체 진입이 중단된다.
|
||||
|
||||
실제 구조적 문제는 `TIME/FORCE` 청산 후에도 현재가가 목표가 위에 머물면,
|
||||
새로운 돌파가 없는데도 쿨다운 종료만으로 같은 신호를 재사용해 재진입할 수 있다는 점이다.
|
||||
|
||||
---
|
||||
|
||||
## 제안 내용
|
||||
|
||||
### TIME/FORCE 후 재돌파 조건 추가
|
||||
|
||||
`mark_final_exit()`에서 `TIME` 또는 `FORCE` 청산 종목을 재돌파 대기 목록에 넣고,
|
||||
`check_entry()`에서 해당 종목이 목표가 아래로 내려오기 전까지 진입을 차단한다.
|
||||
|
||||
```python
|
||||
if ticker in self._rebreak_required_tickers:
|
||||
if current_price >= target:
|
||||
result["reason"] = f"재돌파 대기 ({current_price:,} >= {target:,.0f})"
|
||||
return result
|
||||
self._rebreak_required_tickers.discard(ticker)
|
||||
```
|
||||
|
||||
적용 위치: `app/strategy/volatility_breakout.py` — `check_entry()` 함수 내
|
||||
진입 조건 검사 직전.
|
||||
|
||||
---
|
||||
|
||||
## 기대 효과
|
||||
|
||||
- 오늘 기준: 삼성전자 2차 TIME 재진입(-1,422원) 방어 가능.
|
||||
- 같은 날 같은 돌파 신호를 쿨다운 후 반복 사용하는 구조 차단.
|
||||
- SL/TIME 낭비 거래 제거 → R:R 개선.
|
||||
|
||||
---
|
||||
|
||||
## 위험 및 주의사항
|
||||
|
||||
- 최초 돌파 진입은 기존과 동일하게 허용된다.
|
||||
- TIME/FORCE 뒤에도 가격이 목표가 아래로 내려갔다가 다시 돌파하면 재진입 가능하다.
|
||||
- 샘플: 오늘 1건의 명확한 재진입 사례 관찰. 통계적 근거로는 부족하나, 이는 파라미터 조정이 아니라
|
||||
**논리적 버그 수정**에 해당하므로 소량 샘플로도 충분히 정당화됨.
|
||||
|
||||
---
|
||||
|
||||
## 증거
|
||||
|
||||
| 날짜 | 티커 | 진입가 | 목표가 | 차이 | 손익 |
|
||||
|---|---|---|---|---|---|
|
||||
| 2026-06-15 | 삼성전자(005930) 1차 | 340,000 | 334,000 | -6,000 | -21,681원 |
|
||||
| 2026-06-15 | 삼성전자(005930) 2차 | 338,500 | 334,000 | -4,500 | -1,422원 |
|
||||
|
||||
---
|
||||
|
||||
## 승인 조건
|
||||
|
||||
- [x] `volatility_breakout.py` 내 돌파 목표가 변수(`target`) 접근 확인.
|
||||
- [x] `TIME/FORCE` 청산 후 같은 신호 재사용 경로 확인.
|
||||
- [x] 수동 코드 검토 후 적용.
|
||||
|
||||
**FORCE_EXIT = "14:50"** 변경 없음. SL 우선순위 변경 없음.
|
||||
@@ -85,7 +85,7 @@ async def main():
|
||||
now = datetime.now()
|
||||
now_str = now.strftime("%H:%M")
|
||||
|
||||
if not ("09:00" <= now_str <= "15:10"):
|
||||
if not ("09:00" <= now_str < "15:10"):
|
||||
print(f"[{now_str}] outside trading window - watchdog skipped")
|
||||
return
|
||||
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
chcp 65001 | Out-Null
|
||||
$OutputEncoding = [System.Text.Encoding]::UTF8
|
||||
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
|
||||
$env:PYTHONUTF8 = "1"
|
||||
$env:PYTHONIOENCODING = "utf-8"
|
||||
|
||||
$Root = Split-Path -Parent (Split-Path -Parent $MyInvocation.MyCommand.Path)
|
||||
Set-Location $Root
|
||||
. "$Root\scripts\stockbot_env.ps1"
|
||||
|
||||
@@ -27,7 +27,7 @@ if ($LASTEXITCODE -ne 0) {
|
||||
|
||||
$now = Get-Date
|
||||
$start = Get-Date -Hour 9 -Minute 0 -Second 0
|
||||
$end = Get-Date -Hour 15 -Minute 10 -Second 59
|
||||
$end = Get-Date -Hour 15 -Minute 9 -Second 59
|
||||
if ($now -lt $start -or $now -gt $end) {
|
||||
Write-WatchdogLog "outside watchdog window - skipped"
|
||||
exit 0
|
||||
|
||||
@@ -30,6 +30,7 @@ function Register-StockTask {
|
||||
$Settings = New-ScheduledTaskSettingsSet `
|
||||
-ExecutionTimeLimit (New-TimeSpan -Minutes $LimitMinutes) `
|
||||
-StartWhenAvailable `
|
||||
-WakeToRun `
|
||||
-DontStopIfGoingOnBatteries `
|
||||
-RunOnlyIfNetworkAvailable:$false
|
||||
$Settings.DisallowStartIfOnBatteries = $false
|
||||
@@ -47,15 +48,21 @@ function Register-StockTask {
|
||||
}
|
||||
|
||||
function Register-WatchdogTask {
|
||||
$TaskName = "\StockBot\StockBot_Watchdog"
|
||||
$ScriptPath = Join-Path $Project "scripts\run_watchdog.ps1"
|
||||
$Command = 'schtasks /Create /TN "\StockBot\StockBot_Watchdog" /TR "\"powershell.exe\" -NonInteractive -ExecutionPolicy Bypass -File \"' + $ScriptPath + '\"" /SC MINUTE /MO 5 /ST 09:00 /ET 15:10 /F'
|
||||
$Command = 'schtasks /Create /TN "\StockBot\StockBot_Watchdog" /TR "\"powershell.exe\" -NonInteractive -ExecutionPolicy Bypass -File \"' + $ScriptPath + '\"" /SC WEEKLY /D MON,TUE,WED,THU,FRI /ST 09:00 /RI 5 /DU 06:05 /F'
|
||||
cmd.exe /c $Command | Out-Null
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
throw "StockBot_Watchdog registration failed"
|
||||
}
|
||||
|
||||
Write-Host "[OK] StockBot_Watchdog registered at 09:00-15:10 every 5 minutes" -ForegroundColor Green
|
||||
$Task = Get-ScheduledTask -TaskName "StockBot_Watchdog" -TaskPath $TaskPath
|
||||
$Task.Settings.StartWhenAvailable = $true
|
||||
$Task.Settings.WakeToRun = $true
|
||||
$Task.Settings.DisallowStartIfOnBatteries = $false
|
||||
$Task.Settings.StopIfGoingOnBatteries = $false
|
||||
Set-ScheduledTask -TaskName "StockBot_Watchdog" -TaskPath $TaskPath -Settings $Task.Settings | Out-Null
|
||||
|
||||
Write-Host "[OK] StockBot_Watchdog registered weekdays at 09:00-15:05 every 5 minutes" -ForegroundColor Green
|
||||
}
|
||||
|
||||
Register-StockTask "StockBot_Morning" "08:15" "run_morning.ps1" 20
|
||||
|
||||
+8
-6
@@ -155,8 +155,8 @@ AI는 두 종류로 나뉜다.
|
||||
| 08:15 | `StockBot_Morning` | `/morning`, 뉴스/시장 분석, `daily_context.json` 생성 |
|
||||
| 08:30 | 봇 컨텍스트 로드 | AI 컨텍스트 로드, 유니버스 갱신 |
|
||||
| 08:50 | 목표가 계산 | 전일 고저와 당일 시가 기반 |
|
||||
| 09:00 | 매매 루프 시작 | 실제 신규 진입은 `ENTRY_START=09:15` 이후 |
|
||||
| 09:00-15:10 | `StockBot_Watchdog` | 5분마다 봇 생존 감시 |
|
||||
| 09:00 | 매매 루프 시작 | 실제 신규 진입은 `ENTRY_START=09:20` 이후 |
|
||||
| 09:00-15:05 | `StockBot_Watchdog` | 5분마다 봇 생존 감시, 15:10 결산 직후 재시작 금지 |
|
||||
| 11:00 | 점심 컨텍스트 대기 | `midday_context.json` 전까지 신규 진입 중지 |
|
||||
| 11:20 | `StockBot_Midday` | `/midday`, 점심 세션 조건 생성 |
|
||||
| 14:00 | 신규 진입 중단 | 보유 포지션 청산 체크는 계속 |
|
||||
@@ -177,9 +177,10 @@ AI는 두 종류로 나뉜다.
|
||||
| `StockBot_Midday` | 11:20 | `scripts/run_midday.ps1` |
|
||||
| `StockBot_Evening` | 15:30 | `scripts/run_evening.ps1` |
|
||||
| `StockBot_Training` | 16:00 | `scripts/run_training_pipeline.ps1` |
|
||||
| `StockBot_Watchdog` | 09:00-15:10, 5분마다 | `scripts/run_watchdog.ps1` |
|
||||
| `StockBot_Watchdog` | 09:00-15:05, 5분마다 | `scripts/run_watchdog.ps1` |
|
||||
|
||||
모든 실행 스크립트는 프로젝트 내부 `.venv`의 Python을 우선 사용한다.
|
||||
08:50 이후 재시작 시 봇은 목표가를 즉시 재계산하며, KIS 시가가 `0`이면 목표가 계산에서 제외한다.
|
||||
|
||||
---
|
||||
|
||||
@@ -273,7 +274,7 @@ Restore_StockBot.bat
|
||||
2. KIS REST 요청 제한 초과와 타임아웃이 장초반에 발생할 수 있다.
|
||||
3. WebSocket/Redis 기반 실시간 구조는 아직 미완성이다.
|
||||
4. 실거래 전환 전에는 체결, 부분체결, 미체결, 취소/정정, 재시작 복구 로직이 더 필요하다.
|
||||
5. 초반 09:15 이후에도 손실 집중이 반복되는지 추가 검증이 필요하다.
|
||||
5. 초반 09:20 이후에도 손실 집중이 반복되는지 추가 검증이 필요하다.
|
||||
6. `AI_RISK_SL_MAP`의 한글 키 인코딩은 점검이 필요하다. 정상 risk level과 매핑되지 않으면 리스크별 SL 조정이 무력화될 수 있다.
|
||||
7. 기존 로그와 일부 문서는 인코딩 깨짐이 남아 있어 장기적으로 정리해야 한다.
|
||||
|
||||
@@ -286,10 +287,11 @@ Restore_StockBot.bat
|
||||
| 제안 | 상태 |
|
||||
|------|------|
|
||||
| `ENTRY_START` 09:05 -> 09:15 | 승인 및 적용 |
|
||||
| `ENTRY_START` 09:15 -> 09:20 | 승인 및 적용 |
|
||||
| 장초반 포지션 축소 | 보류 |
|
||||
| 시간대별 SL 강화 | 보류 |
|
||||
|
||||
`ENTRY_START=09:15` 변경 후 최소 5거래 이상 관찰한 뒤 다음 조정을 판단한다.
|
||||
`ENTRY_START=09:20` 변경 후 최소 5거래 이상 관찰한 뒤 다음 조정을 판단한다.
|
||||
|
||||
---
|
||||
|
||||
@@ -323,7 +325,7 @@ DRY_RUN=false
|
||||
1. `AI_RISK_SL_MAP` 인코딩/키 매핑 점검
|
||||
2. KIS API rate-limit 완화
|
||||
3. KIS minute-bar 실응답 검증
|
||||
4. 장초반 09:15 이후 손익 데이터 축적
|
||||
4. 장초반 09:20 이후 손익 데이터 축적
|
||||
5. WebSocket 시세 구조 도입
|
||||
6. 실거래용 주문 복구/부분체결/미체결 처리 강화
|
||||
7. NAS Docker 이전
|
||||
|
||||
Reference in New Issue
Block a user