trader-in-alerts은(는) 무엇을 하나요?
Price Alerts는 사용자가 차트를 계속 쳐다보지 않아도 되도록 숫자를 감시합니다. 알림은 정보이며, 절대 주문이 아닙니다: 손절(stop) 알림이 울려도 이 스킬은 아무것도 팔지 않습니다. 손절(SL-M 매도)과 목표(LIMIT 매도)는 브로커에 두 개의 별도 주문으로 존재하며 실제 작업을 수행합니다; 알림은 사용자에게 발생한 상황을 알리고, 남은 주문을 취소하도록 상기시키며, 청산 시간이 되었음을 알립니다.
아래 ${CLAUDE_SKILL_DIR}은 이 스킬의 폴더입니다(이 SKILL.md가 있는 곳).
python3 "${CLAUDE_SKILL_DIR}/alerts.py" clock # NSE 개장/폐장, 프리오픈, 다음 개장 시간 (IST)
python3 "${CLAUDE_SKILL_DIR}/alerts.py" add --from-plan # trader-in/plan.json에서 손절, 목표, 청산 시간 가져오기
python3 "${CLAUDE_SKILL_DIR}/alerts.py" add --opening-bell # 09:15 IST
python3 "${CLAUDE_SKILL_DIR}/alerts.py" add --pre-open # 09:00 IST 프리오픈 (선택 사항)
python3 "${CLAUDE_SKILL_DIR}/alerts.py" add --symbol RELIANCE --stop 1193.30
python3 "${CLAUDE_SKILL_DIR}/alerts.py" add --symbol RELIANCE --target 1201.10
python3 "${CLAUDE_SKILL_DIR}/alerts.py" add --at 15:10 --label "flat by" --before-close --symbol RELIANCE
python3 "${CLAUDE_SKILL_DIR}/alerts.py" add --symbol TCS --pct 2
python3 "${CLAUDE_SKILL_DIR}/alerts.py" add --symbol ^NSEI --pct 1 # Nifty 50 (감시 전용)
python3 "${CLAUDE_SKILL_DIR}/alerts.py" check # 종료 코드 0 = 무언가 울림
python3 "${CLAUDE_SKILL_DIR}/alerts.py" quote RELIANCE "M&M" --write # -> trader-in/prices.json
python3 "${CLAUDE_SKILL_DIR}/alerts.py" quote --holdings --write # 포트폴리오 + 계획 티커
python3 "${CLAUDE_SKILL_DIR}/alerts.py" list
python3 "${CLAUDE_SKILL_DIR}/alerts.py" reset reliance-ns-plan-stop
--now "2026-10-27 15:10"은 시계를 고정합니다 (IST; bare 15:10은 오늘 IST, Z 또는 +05:30은 절대 시간); --offline DIR은 네트워크 대신 저장된 시세 파일을 읽습니다. 쉘에서 M&M을 인용 ("M&M")하거나, &는 명령을 분할합니다.
심볼
RELIANCE, RELIANCE.NS 및 NSE:RELIANCE는 NSE입니다; RELIANCE.BO 및 BSE:RELIANCE는 BSE입니다. bare 심볼은 NSE입니다(또는 설정 default_exchange). 파일은 항상 Yahoo 형식(RELIANCE.NS)을 보유합니다. bare 6자리 숫자는 BSE 종목 코드로 읽힙니다(500325.BO)만, Yahoo는 숫자 BSE 코드를 제공하지 않습니다(2026-10-27에 "No data found" 응답): RELIANCE.BO를 사용하세요. 지수 ^NSEI (Nifty 50), ^NSEBANK (Bank Nifty) 및 ^BSESN (Sensex)는 포인트로 감시 및 시세 조회만 가능하며, 거래할 수 없습니다.
읽고 쓰는 파일
| 파일 | 내용 |
|---|---|
trader-in/plan.json | trader-in-exit의 거래 계획, add --from-plan 용도 |
trader-in/config.json | flat_by (기본값 15:10), default_exchange, extra_holidays, special_sessions |
trader-in/alerts.json | 규칙 (이 폴더의 alerts.example.json) |
trader-in/state/alerts.json | 어떤 규칙이 언제 울렸는지, 각 알림이 한 번만 울리도록 함 |
trader-in/prices.json | 루피 단위 최신 시세, 병합됨, trader-in-budget 및 trader-in-risk 용도 |
trader-in/portfolio.json | 보유 심볼, quote --holdings 용도 |
규칙 유형
| 유형 | 울리는 조건 | 다시 울림 |
|---|---|---|
above / target | 가격이 price 이상 | reset 후, 또는 "rearm": true이고 가격이 다시 하락한 경우 자체적으로 |
below / stop | 가격이 price 이하 | 동일 |
pct_move | 전일 종가(또는 ref) 대비 pct 퍼센트 변동, 선택적 direction 상승/하락; 오늘 시세에만 해당 | 하루 최대 한 번 |
time | IST 시계가 거래일에 at ("15:10") 통과 | 거래일당 한 번 |
opening_bell | NSE 개장 (09:15 IST, 또는 특별 세션 개장 시간) | 거래일당 한 번 |
pre_open | NSE 프리오픈 진행 중 (09:00-09:15 IST: 주문 입력 09:00-09:08, 매칭 09:08-09:15) | 거래일당 한 번, 프리오픈 시간 내에만 |
"date"가 있는 규칙은 해당 IST 날짜에만 감시됩니다; --from-plan 규칙은 계획의 날짜를 가지므로 어제의 손절이 오늘 울리지 않습니다. "before_close": true가 있는 time 규칙은 조기 마감하는 특별 세션에서 마감까지의 간격을 유지합니다: "flat by" 15:10은 15:00에 마감하는 세션에서는 14:40에 울립니다.
손절 또는 목표 알림이 울리면 다음 문구가 추가됩니다: "귀하의 손절과 목표는 두 개의 별도 브로커 주문이며 OCO가 아닙니다: 손절이 체결되었다면 지금 목표 주문을 취소하세요" (또는 반대의 경우). 인도 브로커는 브래킷 오더를 폐지했으며 MIS에 대한 OCO가 없으므로, 남은 SL-M 또는 LIMIT 매도 주문은 활성 상태로 남아 더 이상 보유하지 않은 주식을 매도할 수 있습니다.
시세
- Yahoo 차트 JSON:
query2.finance.yahoo.com/v8/finance/chart/RELIANCE.NS(심볼 퍼센트 인코딩됨,M%26M.NS), 비공식 무료 엔드포인트, 티커당 하나의 요청, 0.5초 간격. 429 오류 시 대기 후 한 번 더 시도; 이후 429, 5xx 또는 네트워크 오류 발생 시query1을 시도합니다. 자신을day-trader-skill-in/1.0으로 식별합니다. Yahoo는 NSE 및 BSE를 INR 및Asia/Kolkata시간으로 제공합니다; 퍼센트 변동은 전일 종가를 사용합니다. - Stooq는 사용되지 않음: NSE/BSE 티커를 나열하지 않으며, 2026-10-27에 시세 CSV가 모든 티커에 대해 404를 응답했고 다른 페이지는 JavaScript 챌린지 뒤에 있었음.
- 무료 시세는 비공식적이며 지연되고 지연될 수 있습니다. 알림 및 포지션 크기 확인에는 적합하지만 주문 타이밍에는 적합하지 않습니다. 브로커의 가격이 체결되는 가격입니다.
trader-in/prices.json의 각 가격은 시세 시간을 유지하며, trader-in-risk는 15분 미만의 가격만 사용합니다. - Yahoo가 다운된 경우 브로커(Kite, Upstox)에서 가격을 읽고
trader-in/prices.json에{"as_of": "...Z", "prices": {"RELIANCE.NS": 1196.20}}으로 기록합니다.
NSE 시계
IST는 연중 UTC+05:30입니다(일광 절약 시간 없음); 도구가 자체적으로 계산하며 컴퓨터의 시간대를 무시합니다. 일반 세션 09:1515:30 IST, 프리오픈 09:0009:15 (주문 입력 09:00-09:08, 매칭 09:08-09:15). 브로커는 약 15:20 IST부터 MIS 포지션을 청산하고 비용을 청구하므로, 계획의 청산 시간 기본값은 15:10입니다.
- 2026년 NSE 주식 휴장일 (평일): 1월 26일 공화국의 날, 3월 3일 홀리, 3월 26일 람 나바미, 3월 31일 마하비르 자얀티, 4월 3일 성 금요일, 4월 14일 암베드카르 자얀티, 5월 1일 마하라슈트라의 날, 5월 28일 바크리 이드, 6월 26일 무하람, 9월 14일 가네샤 차투르티, 10월 2일 간디 자얀티, 10월 20일 두세라, 11월 10일 디왈리 발리프라티파다, 11월 24일 구루 나낙 자얀티, 12월 25일 크리스마스.
- 특별 세션 (정규일 아님): 일요일 2026-02-01 연방 예산 발표일, 09:15-15:00; 일요일 2026-11-08 무후라트 거래, 14:20-15:30, 프리오픈 14:05부터, 2026-10-19 NSE 회람 NSE/CMTR/76941 기준 (마감 경매 주식의 마감 시간에 대해 보도마다 차이가 있음: 회람 확인).
- 2027년은 아직 발표되지 않음: 목록이 없는 연도에 대해 도구는 한 번 경고("2027년 NSE 휴장일이 내장되어 있지 않습니다; config extra_holidays에 추가하세요")하고 평일을 개장일로 처리합니다.
"extra_holidays": ["2027-01-26", ...]구성으로 휴장을 추가하고"special_sessions": {"YYYY-MM-DD": ["HH:MM", "HH:MM"]}로 세션을 추가합니다.
단계
- trader-in-exit이 계획을 작성한 직후,
add --from-plan을 실행합니다. 세 가지 알림(손절, 목표, 청산 시간)을 루피와 IST로 사용자에게 다시 확인시킵니다. 손절과 목표는 브로커의 별도 주문이며, 하나가 체결되면 다른 하나를 취소해야 한다고 말합니다. - 거래가 열려 있는 동안
check를 실행합니다: Claude 예약 작업 또는/loop에서 몇 분마다. 각 실행은 오늘의 규칙에 있는 심볼만 가져와 각 알림을 한 번씩 울립니다. 확인은 최신 지연 시세를 읽습니다; 실시간 피드가 아니며, 가격이 두 확인 사이에 수준을 통과할 수 있습니다. - 울린 각 알림을 한 줄씩 사용자에게 알립니다. 손절 또는 목표 알림은 해당 주문이 체결되었을 가능성이 있음을 의미합니다: 브로커 앱에서 포지션 및 주문을 확인하고, 다른 주문을 취소하며, /trader-in-broker로 체결을 기록합니다. "Flat by"는 MIS 청산 전에 아직 열려 있는 모든 것을 청산해야 함을 의미합니다: /trader-in-broker flatten, 그 다음 /trader-in-risk, 사용자의 확인, 그 다음 남은 손절 및 목표 주문을 취소합니다. 사용자를 대신하여 행동하지 마십시오.
예시: 릴
2026년 10월 27일 화요일 RELIANCE.NS: 개장 범위 1,189.70-1,197.00, 진입가 ₹1,197.20 (12:40 IST), 손절 ₹1,193.30 (범위 중간값), 목표 ₹1,201.10 (1R), 청산 시간 15:10. add --from-plan은 해당일에 reliance-ns-plan-stop, reliance-ns-plan-target 및 reliance-ns-flat-by를 기록합니다. 15:05에 check는 실제 최종 시세 ₹1,196.20을 읽습니다 (손절과 목표 사이):
NSE OPEN (2026-10-27 15:05 IST, 일반 세션).
아무것도 도달하지 않음. 오늘 3개의 규칙이 감시 중, RELIANCE.NS ₹1,196.20.
15:10:
알림 청산 시간: 15:10 IST입니다 (15:10으로 설정됨), 시장은 15:30 IST에 마감합니다. 브로커는 약 15:20 IST부터 MIS 포지션을 청산하고 비용을 청구합니다. RELIANCE.NS가 아직 열려 있으면 청산하세요:
/trader-in-broker flatten --symbol RELIANCE.NS가 매도 티켓을 생성하고, 그 다음 /trader-in-risk와 귀하의 확인이 필요합니다.
그런 다음 브로커에서 해당 종목에 대해 보류 중인 모든 손절 및 목표 주문을 취소하세요.
한 번 울립니다. 다음 날 아침 계획의 세 가지 알림은 더 이상 감시되지 않습니다; add --pre-open 및 add --opening-bell을 사용하면 09:00과 09:15에 울립니다.
규칙
- 알림은 가격 또는 시계에 대한 사실입니다. 사실 그대로 말하세요.
- 시세를 실시간으로 제시하지 마십시오. 무료 시세는 지연되고 비공식적입니다.
- 모든 새 규칙을 사용자에게 다시 확인하세요: 심볼, 유형, 수준(₹), 일자.
- 금액은 루피와 인도식 그룹화(₹1,23,456.78)로 표시합니다; 시간은 IST로 표시합니다.
절대 하지 않는 일
절대 주문을 제출, 취소 또는 변경하지 않으며, 시세가 실시간이라고 주장하지 않으며, 가격이 어디로 갈지 예측하지 않습니다.
안전
- 교육 및 도구로서, 투자 조언이 아닙니다. 조언이 필요하면 SEBI 등록 투자 자문가와 상담하세요. PASS는 규칙 점검일 뿐, 추천이 아닙니다.
- 기본적으로 페이퍼 트레이딩 (
"paper": true): 인도 브로커는 페이퍼 계좌가 없으므로, 페이퍼는 로컬 시뮬레이션 원장(trader-in/state/paper.json)입니다. 실전 전환은 사용자 자신의 결정이며, 사용자 자신의 구성에서 이루어집니다. - 이 패키지에서 주문을 체결하는 것은 trader-in-broker뿐이며, 세 가지 조건이 모두 충족될 때만 가능합니다: trader-in-risk가 오늘 해당 정확한 주문을 통과했고,
paper가 false이며, 사용자가 채팅에서 해당 주문 하나에 대해 명시적인 '예'를 입력했습니다. - 현물 현금 주식만 가능: 선물/옵션(F&O), 옵션, 공매도 또는 MIS 레버리지는 설정에서 허용하고 사용자가 확인하지 않는 한 불가능합니다.
- 브로커 키는 환경 변수 또는 Claude Desktop 구성에 저장되며, 채팅에 절대 나타나지 않습니다.