Community연구 & 데이터 분석github.com

signal — 스캘핑 시그널 (M3/M5, 2 AI 토론)

M3/M5 타임프레임에서 매수/매도 리밋/스톱 지정가 주문 스캘핑 시그널을 생성합니다. SL 최대 $3 (로트 0.01, 틱 밸류 기반 자동 변환), TP RR 1:1.5/1:2. 두 AI(기술적 분석 vs 리스크 관리자)와 중립 심판의 토론으로 결정, 순수 MT5 로컬 데이터(빠름, 웹 불필요)를 사용합니다. 사용자가 `signal-<pair>` 또는 `signal-result` 명령어로 호출합니다.

M5, 2 AI 토론)란 무엇인가요?

이 스킬은 M3/M5 스캘핑을 위한 매수/매도 리밋/스톱 지정가 주문 시그널을 생성하는 AI 트레이딩 어시스턴트입니다. OpenCode, Claude Code, Cursor 등 AI 에이전트 플랫폼에서 동작하며, 로컬 MT5 터미널 데이터만을 사용하여 빠르고 신뢰성 높은 분석을 제공합니다. 핵심은 기술적 분석 AI와 리스크 관리 AI가 각각의 관점에서 독립적으로 분석한 후, 중립 심판 아래에서 토론을 통해 최종 시그널을 결정하는 독특한 '2 AI 토론 + 심판' 구조입니다. SL은 로트 0.01 기준 최대 $3로 엄격히 제한되며, TP는 RR 1:1.5 또는 1:2 중 선택됩니다. 모든 시그널은 rclone을 통해 Google Drive에 저장되어 추적 가능하며, 사용자의 `signal-result win/lose` 보고를 통해 지속적으로 학습하여 성능을 개선합니다. 이 스킬은 웹 검색을 전혀 사용하지 않으며, 순수 로컬 데이터 기반이므로 대기 시간이 짧고 안정적입니다.

지원 대상~Claude Code~Codex CLI~Cursor✓OpenCode
npx skills add https://github.com/ClayKW/skill/tree/HEAD/signal

Installed? Explore more 연구 & 데이터 분석 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

SKILL: signal — M3/M5 스캘핑 시그널 via 2 AI 토론

1. 트리거 & 모드

트리거의미
signal-<pair> (예: signal-xauusd, signal-eurusd)M3/M5 지정가 주문 진입 시그널 생성
signal-result win / signal-result lose [이유]사용자가 마지막 시그널 결과 보고 → 트랙 레코드에 기록
  • <pair> = 로컬 MT5 심볼. ~/.local/share/mt5-venv/bin/python scripts/mt5_query.py symbols <query> 로 확인. 없으면 가장 가까운 후보를 보여주고, 임의로 생성하지 마십시오.
  • 페어가 명확하면 되묻지 마십시오. 서두르지 마십시오 — 3-5번의 대화는 정상이며, 품질이 속도보다 중요합니다.

2. 트레이딩 하드 룰 (심판이 검증, 분석가가 아님)

  1. 주문 유형: 매수/매도 리밋 또는 스톱만 (기술적 레벨에서 지정가 주문). 시장가 주문은 두 분석가가 가격이 정확히 해당 레벨에 있다고 동의하고 그 내용이 명시적으로 기록된 경우에만 허용됩니다.
  2. 시그널당 SL 최대 $3 (로트 0.01) — 고정 300포인트가 아닙니다. mt5_query.py scalp 출력의 risk 블록에서 페어별로 자동 변환됩니다: sl_max_points = risk.sl_max_points (XAUUSD ≈ 300포인트 = $3; 다른 페어는 자동으로 다름). 이를 초과하는 분석가의 SL 제안은 심판이 거부하고 수정을 위해 반송합니다.
  3. TP = SL 거리의 RR 1:1.5 또는 1:2. 하나를 선택하고 RR을 명시하십시오.
  4. 분석 타임프레임: M3 + M5 (주) + H1 (큰 방향 참고).
  5. 적정 스프레드: 스프레드가 제안된 SL 거리의 ~20%를 초과하면 분석가가 반드시 강조해야 함 (스프레드가 넓은 상황에서는 리밋 진입이 더 안전).

3. 데이터 (순수 MT5 로컬 — 웹/websearch 없음, 속도 향상)

단일 명령어:

~/.local/share/mt5-venv/bin/python ~/.config/opencode/skills/signal/scripts/mt5_query.py scalp <SYMBOL>

JSON 출력: bid/ask, 스프레드, risk (usd/point, sl_max_points), 일간 변화, M3/M5/H1 (ATR14, EMA20/50, 추세, 지지/저항, 레인지, 마지막 캔들 + 바디 방향). 이 원시 출력을 두 분석가 모두에게 제공하십시오. MT5 데이터를 임의로 생성하는 것은 금지됩니다.

시간대: 시간을 WIB + 괄호 안에 MT5 서버 시간(UTC+3) 으로 표시, 예: 21:45 WIB (17:45 서버). WIB = 서버 + 4시간.

4. 트랙 레코드로부터 학습 (토론 전 필수)

  1. 1라운드 전, 심판이 트랙 레코드를 가져옵니다: rclone cat gdrive:Linux-Server/signals/track-record.md (404/not found면 아직 비어 있음, 기록 없이 진행 — 이를 보고).
  2. 최근 결과 패턴을 요약하고(예: "최근 5번 손실 모두 하락 추세에서의 매도 리밋") 두 분석가에게 학습 맥락으로 제공: 승리 패턴은 반복 가능, 패배 패턴은 피하거나 분석가가 이번에는 왜 다른지 반박해야 함.
  3. 시그널은 gdrive:Linux-Server/signals/<YYYYMMDD>-<pair>/signal.md 에 저장되며 상태는 PENDING입니다 (§7 참조).

5. 토론 (분석가 2명 + 심판 1명, 3-5회 대화)

역할 및 모델 (subagent 도구, general 에이전트, model 매개변수 명시적 사용):

역할모델임무
분석가 1 — 기술적 진입opencode/step-5-preview-freeM3/M5 구조, 주문 유형(리밋/스톱), 진입, SL, TP, 타이밍
분석가 2 — 리스크 관리자opencode/nemotron-3.5-lightning-freeSL/TP 검증, R:R, 레벨 함정(스탑 헌트, 스프레드, 세션), 포지션 사이징
심판 = 메인 에이전트, 모델 = 현재 실행 중인 세션의 모델 (동적)—중립: 오케스트레이션, 데이터 전송, 하드 룰 검증(§2), 투표 계산, 출력 정리. 시장 방향 분석/의견 제시 금지. 심판 = 이 세션을 실행 중인 AI 모델 — 모든 프로바이더 가능; 항상 custom/auto라고 가정하지 마십시오. 출력을 작성할 때 자신의 모델을 확인하고 실제 이름을 기입하십시오.

진행:

  1. 1라운드 (독립): 두 분석가에게 MT5 데이터 + 트랙 레코드 요약을 전송. 각각 제안: 방향, 주문 유형, 진입, SL (포인트 및 $), TP (RR), 확신도 %, 이유.
  2. 토론 라운드 (1-3라운드): 서로 텍스트를 주고받음. 새 MT5 데이터 요청 가능 (scalp 재호출 — 가격 변동). 실제 의견 차이에 집중: 레벨, 주문 유형, SL 유효성.
  3. 최종 입장: 각자 최종 입장을 표명.
  4. 투표: 두 분석가 동의 → 시그널 유효. 의견 불일치 = NO TRADE (공식 출력: 시그널 없음 + 간단한 이유). 이는 유효하고 정상적인 결과이며, 강제로 시그널을 만들지 마십시오.

Rate limit 발생 시 폴백 모델 (Tier 1 순서): opencode/longcat-2.5-preview-free → opencode/space-bunny-free → opencode/cat-jam-free; Tier 2 최대 1명 분석가: 9roy/9router_combo; Tier 3: custom/auto ("babu") — 심판이 custom/auto가 아닌 경우에만 (한 모델이 두 역할을 동시에 할 수 없음). 대안이 있다면 동일한 프로바이더의 분석가 2명을 사용하지 마십시오. 오류 재시도 최대 2회; 두 분석가 모두 완전히 실패 = 보고 후 중단.

6. 예산

간단한 계산: 분석가 1회 호출 = 3, 재시도/폴백 = 1, 심판 도구 호출 = 1. 총 목표 12-27 (2-3회 분석가 호출 × ~3라운드 + 도구). 출력에 기록: Budget: X/27 (방식: 가중치-시그널). 27을 초과하지 마십시오 — 토론 3-5회면 충분하며, 그 이후는 중단하고 출력을 정리합니다.

7. 출력 & 저장 (rclone, 로컬 파일 없음)

a) 시그널 (유효한 경우)

사용자에게 답변 형식 (먼저 토론 요약, 결과는 가장 아래):

  • 토론 요약: 초기 제안, 주요 논점 (간단한 인용 포함), 투표 결과 + 역할별 사용 AI 모델.
  • 그런 다음 가장 아래에 시그널 블록:
🔔 SIGNAL <PAIR> — <BUY/SELL> <LIMIT/STOP>
Entry: <가격>  |  SL: <가격> (<X> 포인트 = $<Y>, 최대 $3)
TP: <가격> (RR 1:<r>)  |  확신도: <Z>%
Reason: <1-2문장 평이한 언어 — 왜 이 레벨과 방향인지, 토론에서 도출>
유효 기간: <타이밍/만료 메모, 예: 가격이 이미 레벨을 지나면 무효>
  • rclone rcat gdrive:Linux-Server/signals/<YYYYMMDD>-<PAIR>/signal.md 로 저장. 내용: 날짜, 페어, 전체 시그널, 두 분석가의 주장, 투표, 모델, 예산, 상태: PENDING.

b) 무 거래 (투표 불일치 / 데이터 유효하지 않음)

출력: "🚫 NO TRADE — <토론에서 나온 간단한 이유>", 동일한 폴더에 상태 NO-TRADE로 저장.

c) signal-result win|lose [이유] 명령어

  1. 마지막 PENDING 시그널 찾기: rclone lsf gdrive:Linux-Server/signals/ --dirs-only | sort | tail → rclone cat으로 signal.md 읽기. PENDING 시그널이 없으면 사용자에게 어떤 시그널인지 질문 (이 모드에서는 되물어도 됨).
  2. Drive의 signal.md 업데이트: 상태 → WIN/LOSE, 결과 + 사용자 이유 + 종료일자 행 추가.
  3. 트랙 레코드 gdrive:Linux-Server/signals/track-record.md에 한 줄 추가 (파일이 없으면 생성): YYYYMMDD | pair | 방향+유형 | entry | 결과 WIN/LOSE | 사용자 이유.
  4. 사용자에게 간단히 답변: 결과 기록됨 + 진행 중인 트랙 레코드 통계 (예: XAUUSD: 4W-2L, 승률 67% — 트랙 레코드에서 계산).

d) 시그널 만료

사용자가 시그널이 진입에 도달하지 못했다고 보고하면 (가격이 지나가거나 되돌아옴), LOSE로 기록하고 사용자 이유 포함 (예: "时机错过") — 이는 여전히 유효한 학습 데이터입니다.

8. 금지 사항

  • 웹서치/웹페치 사용 금지 — 데이터는 순수 MT5 로컬.
  • 가격/ATR/레벨 임의 생성 금지.
  • 스프레드 극심 또는 시장 마감 (tick_time 오래됨) 시 시그널 제공 금지 — NO TRADE 출력.
  • SL $3 초과 금지, TP가 RR 1:1.5/1:2 범위를 벗어나는 것 금지, 두 분석가 동의 없는 시장가 주문 금지.
  • 심판이 시장 방향 평가에 참여 금지.
  • 심판이 분석/의견 제시 금지 — 심판 모델이 똑똑하더라도 역할은 순수 중재자. 분석은 분석가의 몫.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

관련 스킬