자동매매 명세서 작성 완전 가이드 — 47문항 체크리스트 + 복사용 템플릿
자동매매 외주에서 가장 많은 분쟁은 "이건 제가 원한 게 아닌데요"입니다. 원인은 거의 항상 명세서입니다. "추세 보고 사서 수익 나면 팔아주세요" 같은 모호한 요청은 개발자가 자기 식으로 해석하고, 납품 후에야 의도와 다름이 드러납니다. 명세서는 단순한 형식이 아니라 의뢰자의 머릿속 전략을 개발자가 똑같이 이해하게 만드는 번역 장치입니다.
이 글은 알고랩에 의뢰하지 않으셔도 좋습니다. 어디서 의뢰하든 이 47문항을 채워서 가져가면, 견적이 정확해지고 결과물이 의도에 가까워지며 분쟁이 사라집니다. 마지막에 그대로 복사해 쓰는 명세서 템플릿을 통째로 제공합니다.
이 글의 8부 구성
- Part 1 — 명세서가 외주 성패의 80%인 이유
- Part 2 — 명세서 6대 영역
- Part 3 — 진입 규칙 명세 (가장 중요)
- Part 4 — 청산 규칙 명세 (손절·익절)
- Part 5 — 리스크 관리 명세
- Part 6 — 운영·알림·예외 명세
- Part 7 — 47문항 체크리스트
- Part 8 — 복사용 명세서 템플릿 (전체)
Part 1 — 명세서가 외주 성패의 80%인 이유
같은 봇을 의뢰해도 명세서 품질이 결과물을 가릅니다.
모호한 한 문장이 만드는 분쟁
왼쪽으로 의뢰하면 개발자는 "골든크로스가 5/20인지 20/60인지", "수익 몇 %에 파는지", "한 번에 얼마 사는지"를 전부 추측합니다. 추측이 틀리면 분쟁입니다. 오른쪽은 추측의 여지가 없습니다.
명세서가 해주는 4가지
- 의도 일치 — 의뢰자 머릿속과 개발자 이해를 같게 만듦
- 정확한 견적 — 범위가 명확해야 가격·기간이 정확
- 분쟁 방지 — "그렇게 말한 적 없다"의 기준 문서
- 빈 칸 발견 — 본인도 미처 결정 못 한 부분을 드러냄
💡 명세서의 숨은 가치: 명세서를 쓰다 보면 "아, 이 경우엔 어떻게 하지?"를 스스로 발견하게 됩니다. 장 마감 직전 신호는? API 끊기면? 같은 신호 두 번 오면? 이런 빈 칸이 실전에서 사고가 나는 지점입니다. 명세서는 그걸 미리 잡습니다. 명세서 없이 의뢰한 외주는 이 빈 칸을 개발자가 임의로 채웁니다.
Part 2 — 명세서 6대 영역
완전한 명세서는 이 6개를 모두 다룹니다.
| 영역 | 핵심 질문 | 예시 |
|---|---|---|
| 1. 대상 | 무엇을 어디서 거래? | 업비트 KRW-BTC, 15분봉 |
| 2. 진입 | 언제 사는가? | EMA 크로스 + RSI 필터 |
| 3. 청산 | 언제 파는가? | -3% 손절 / +6% 익절 |
| 4. 리스크 | 얼마나 위험을 감수? | 한 거래 자본의 1%, 일일 -3% 정지 |
| 5. 운영 | 어떻게 돌리는가? | VPS 24시간, 텔레그램 알림 |
| 6. 예외 | 문제 생기면? | API 오류 5회 재시도 후 정지+알림 |
이 6개 중 하나라도 비면 그 부분을 개발자가 임의 해석합니다. 특히 4(리스크)와 6(예외)을 빠뜨리는 의뢰자가 많은데, 실전 사고는 대부분 이 둘에서 납니다.
Part 3 — 진입 규칙 명세 (가장 중요)
"언제 사는가"를 추측의 여지 없이.
진입 조건을 수치로 쪼개기
모든 진입 조건은 "참/거짓을 판단할 수 있는 형태"여야 합니다. 다음 요소를 명시하세요:
- 지표와 파라미터 — "이동평균"이 아니라 "5일 EMA / 20일 EMA"
- 조건의 방향 — "크로스"가 아니라 "상향 돌파"
- 필터 — 추가 조건 (RSI 범위, 거래량 배수)
- 봉 확정 여부 — 봉이 닫힌 후인가, 장중 실시간인가
- 다중 신호 처리 — 이미 보유 중이면 추가 매수? 무시?
진입 명세 예시
[진입 규칙] - 대상: 업비트 KRW-BTC, 15분봉 - 조건 1: EMA(5)가 EMA(20)를 상향 돌파 (봉 확정 기준) - 조건 2: RSI(14) < 70 (과매수 회피) - 조건 3: 거래량 ≥ 20봉 평균 × 1.5 - 진입: 위 3개 모두 충족 시 다음 봉 시가에 시장가 매수 - 매수 금액: 가용 현금의 10% - 중복 진입: 이미 BTC 보유 중이면 신규 매수 안 함
⚠️ "봉 확정" 누락 주의: 닫히지 않은 봉의 값으로 진입하면, 봉이 닫힐 때 신호가 사라지는 'repaint' 문제가 생깁니다. 명세서에 "봉 확정 후 판단"을 반드시 적으세요. 안 적으면 개발자가 장중 실시간으로 만들 수 있고, 백테스트와 실전이 크게 달라집니다.
전략별 진입 명세 참고
본인 전략의 진입 조건을 어떻게 수치화할지는 → 자동매매 전략 30가지 완전 정리에서 30개 전략의 진입 조건 예시를 참고하세요.
Part 4 — 청산 규칙 명세 (손절·익절)
"언제 파는가"가 손익비를 결정합니다.
청산은 4가지를 다 정해야 함
- 손절 — 손실 확정 조건 (필수, 빠뜨리면 큰 사고)
- 익절 — 수익 확정 조건
- 시간 청산 — N봉/N일 지나면 청산 (선택)
- 우선순위 — 손절·익절 신호가 동시면 무엇 먼저
청산 명세 예시
[청산 규칙] - 손절: 진입가 -3% 도달 시 시장가 청산 (최우선) - 익절: 진입가 +6% 도달 시 시장가 청산 - 트레일링: 익절 대신 고점 -2% 추적 청산 (옵션 A/B 중 택1) - 시간 청산: 진입 후 48시간 경과 시 무조건 청산 - 우선순위: 손절 > 시간 청산 > 익절 - 부분 청산: 미사용 (전량 청산)
손익비(R:R) 명시
손절 -3% / 익절 +6%이면 손익비 1:2입니다. 명세서에 "손익비 1:2 이상 유지"를 적으면 개발자가 청산 로직을 그 기준으로 검증합니다. 손익비 개념은 → 자동매매 리스크 관리 완전 가이드 참고.
Part 5 — 리스크 관리 명세
의뢰자가 가장 자주 빠뜨리는 영역. 실전 사고의 핵심.
리스크 명세 필수 4가지
[리스크 관리] - 한 거래 리스크: 자본의 1% (손절 시 최대 손실) - 포지션 크기: 손절폭 기준 역산 (고정 수량 아님) - 동시 보유 한도: 최대 3종목, 합산 리스크 5% 이내 - Circuit Breaker: · 일일 -3% 도달 → 당일 신규 매매 정지 · 주간 -7% 도달 → 주말까지 정지 · 발동 시 텔레그램 알림
💡 "한 거래 1%"의 의미: 자본 1,000만원이면 한 거래에서 최대 10만원만 잃도록 포지션 크기를 정하는 것입니다. 이렇게 하면 연속 20번 손절을 봐도 자본의 20%만 잃습니다. 명세서에 이 한 줄만 있어도 봇이 "한 번에 망하지 않는" 구조가 됩니다.
Part 6 — 운영·알림·예외 명세
봇이 24시간 안전하게 돌게 하는 조건.
운영·예외 명세 예시
[운영] - 실행 환경: VPS 24시간 (Vultr 도쿄) - 자동 재시작: 봇 죽으면 systemd 자동 부활 - 알림: 텔레그램 — 시작/매수/매도/에러/Circuit Breaker - 로그: 모든 매매 JSONL 저장 (세금 신고용) [예외 처리] - API 오류: 5회 재시도 후 실패 시 봇 정지 + 알림 - 네트워크 단절: WebSocket 자동 재연결 (지수 백오프) - 토큰 만료: 자동 갱신 (KIS 23시간 주기) - 거래소 점검: 점검 시간 매매 중단 - 잔고 부족: 매수 신호 무시 + 알림
운영 단계 전체는 → VPS 24시간 무중단 운영 완전 가이드에서 다룹니다. 명세서에는 "어떤 운영을 원하는지"만 적고, 구현은 개발자 몫입니다.
Part 7 — 47문항 체크리스트
이 47개를 채우면 완전한 명세서가 됩니다.
- 거래 시장 (한국주식 / 미국주식 / 코인 현물 / 코인 선물)
- 거래소·증권사 (키움 / KIS / 업비트 / 바이낸스 …)
- 거래 종목 (구체적 티커 — "삼성전자·SK하이닉스" 또는 "KRW-BTC")
- 시간 프레임 (일봉 / 15분봉 / 1시간봉 …)
- 거래 시간대 (장 시간만 / 24시간 / 특정 시간)
- 초기 운용 자본
- 사용 지표와 파라미터 (EMA 5/20, RSI 14 …)
- 진입 조건 1 (수치로)
- 진입 조건 2 (필터)
- 진입 조건 3 (필터)
- 조건 결합 방식 (모두 AND / 일부 OR)
- 봉 확정 후 vs 장중 실시간
- 주문 유형 (시장가 / 지정가)
- 1회 매수 금액 (고정액 / 자본 비율)
- 중복 진입 처리 (보유 중 추가매수 여부)
- 손절 조건 (필수)
- 익절 조건
- 트레일링 스탑 사용 여부
- 시간 청산 (N봉/N일 후)
- 신호 동시 발생 시 우선순위
- 부분 청산 vs 전량 청산
- 분할 익절 단계 (사용 시)
- 목표 손익비 (R:R)
- 한 거래당 리스크 한도 (자본 %)
- 포지션 사이징 방식
- 동시 보유 종목 한도
- 합산 리스크 한도
- 일일 손실 한도 (Circuit Breaker)
- 주간·월간 손실 한도
- 레버리지 (선물 시, 배수)
- 실행 환경 (VPS / 본인 PC)
- VPS 위치 (서울 / 도쿄)
- 자동 재시작 필요 여부
- 알림 채널 (텔레그램 / 이메일 / 없음)
- 알림 항목 (매매 / 에러 / 일일 리포트)
- 로그 저장 형식 (JSONL / CSV)
- 거래 기록 보관 (세금용)
- 대시보드·UI 필요 여부
- 운영 위탁 vs 본인 운영
- API 오류 시 대응 (재시도 횟수)
- 네트워크 단절 대응
- 토큰·세션 만료 대응
- 거래소 점검 시간 처리
- 잔고 부족 시 처리
- 모의투자·페이퍼 검증 기간
- 백테스트 리포트 필요 여부
- 코드 전달 + 운영 매뉴얼 포함 여부
✅ 빈 칸 = 상담 포인트: 47개를 다 못 채워도 됩니다. 못 채운 칸이 바로 외주처와 함께 정해야 할 부분입니다. 알고랩은 이 빈 칸을 함께 채우는 무료 상담을 제공합니다. 다 채운 분은 견적·기간이 즉시 정확해집니다.
Part 8 — 복사용 명세서 템플릿 (전체)
아래를 통째로 복사해 채워서 외주처에 보내세요.
═══════════════════════════════════ 자동매매 프로그램 제작 명세서 ═══════════════════════════════════ 작성일: 2026-__-__ 의뢰자: ___________ ──────────────────────────────── [A. 대상] - 거래 시장: (예: 코인 현물) - 거래소/증권사: (예: 업비트) - 거래 종목: (예: KRW-BTC) - 시간 프레임: (예: 15분봉) - 거래 시간대: (예: 24시간) - 초기 운용 자본: (예: 300만원) ──────────────────────────────── [B. 진입 규칙] - 사용 지표: (예: EMA 5/20, RSI 14) - 진입 조건 1: (예: EMA5 > EMA20 상향 돌파) - 진입 조건 2: (예: RSI < 70) - 진입 조건 3: (예: 거래량 ≥ 20봉 평균 ×1.5) - 조건 결합: (예: 3개 모두 AND) - 판단 시점: (예: 봉 확정 후) - 주문 유형: (예: 시장가) - 1회 매수 금액: (예: 가용현금 10%) - 중복 진입: (예: 보유 중 추가매수 안 함) ──────────────────────────────── [C. 청산 규칙] - 손절: (예: 진입가 -3%) - 익절: (예: 진입가 +6%) - 트레일링 스탑: (예: 미사용) - 시간 청산: (예: 48시간 후) - 신호 우선순위: (예: 손절 > 시간 > 익절) - 부분/전량: (예: 전량 청산) - 목표 손익비: (예: 1:2) ──────────────────────────────── [D. 리스크 관리] - 한 거래 리스크: (예: 자본 1%) - 포지션 사이징: (예: 손절폭 역산) - 동시 보유 한도: (예: 3종목) - 합산 리스크: (예: 5% 이내) - 일일 손실 한도: (예: -3% 정지) - 주/월 손실 한도: (예: 주 -7%) - 레버리지(선물): (예: 해당없음 / 3배) ──────────────────────────────── [E. 운영] - 실행 환경: (예: VPS 도쿄) - 자동 재시작: (예: 필요) - 알림 채널: (예: 텔레그램) - 알림 항목: (예: 매매/에러/일일리포트) - 로그 저장: (예: JSONL) - 거래기록 보관: (예: 세금용 CSV) - 대시보드: (예: 불필요) - 운영 방식: (예: 본인 운영) ──────────────────────────────── [F. 예외·기타] - API 오류 대응: (예: 5회 재시도 후 정지) - 네트워크 단절: (예: 자동 재연결) - 토큰 만료: (예: 자동 갱신) - 거래소 점검: (예: 매매 중단) - 잔고 부족: (예: 신호 무시+알림) - 검증 기간: (예: 페이퍼 2주) - 백테스트 리포트: (예: 필요) - 코드 전달: (예: 전체 + 매뉴얼) ──────────────────────────────── [기타 요청사항] ___________________________________ ═══════════════════════════════════
💡 사용법: 위 템플릿을 메모장·문서에 복사 → 괄호 안을 본인 전략으로 채움 → 외주처에 전달. 빈 칸은 "미정"이라고 적고 상담 때 함께 정하면 됩니다. 이 한 장이면 어느 외주처든 정확한 견적을 줄 수 있습니다.
자주 묻는 질문
Q. 명세서는 왜 중요한가요?
외주 분쟁의 80%가 모호한 명세서에서 발생. 의뢰자 의도와 개발자 이해를 일치시키는 계약의 핵심. 수치로 명확할수록 결과물이 의도에 가까워집니다.
Q. 꼭 들어가야 할 항목은?
6대 영역 — 대상·진입·청산·리스크·운영·예외. 특히 리스크와 예외를 빠뜨리는 의뢰자가 많은데 실전 사고는 대부분 거기서 납니다.
Q. 코딩을 몰라도 쓸 수 있나요?
가능. 명세서는 코드가 아니라 매매 규칙을 명확한 한국어로 정의하는 것. 전략을 얼마나 구체적으로 표현하느냐가 핵심.
Q. 카톡 설명으로 안 되나요?
위험. 대화는 흩어지고 분쟁 시 기준이 없음. 양측이 검토·서명하는 단일 문서가 필요.
Q. 좋은 명세서 vs 나쁜 명세서?
나쁜: "추세 보고 매수". 좋은: "EMA5>EMA20 상향돌파 + RSI<70일 때 자본 10% 시장가 매수, -3% 손절/+6% 익절". 모든 조건이 수치로 검증 가능.
Q. 다 못 채우면?
빈 칸이 곧 상담 포인트. 외주처와 함께 정하면 됨. 알고랩은 빈 칸 채우는 무료 상담 제공.
마무리
명세서는 "개발자를 위한 문서"가 아니라 "의뢰자 본인을 위한 문서"입니다. 쓰는 과정에서 본인 전략의 빈 칸을 발견하고, 그 빈 칸이 실전 사고를 막습니다. 47문항을 채우고 템플릿을 작성하는 데 1~2시간이면 됩니다. 그 1~2시간이 수십~수백만원 외주의 성패를 가릅니다.
명세서를 다 쓰셨다면, 외주처 검증 단계로 넘어가세요 — 어떤 외주처를 골라야 하는지는 → 외주 의뢰 전 알아야 할 27가지에서 다룹니다.
명세서 채우기가 막막하다면
47문항·템플릿을 함께 채우는 무료 상담을 제공합니다. 매매 규칙만 머릿속에 있으면, 알고랩이 명세서로 정리하고 그대로 봇으로 제작해드립니다. 359건+ 제작, 명세서 기반 계약, 30일 무료 AS.
24시간 빠른 답변 가능합니다.