그리드 트레이딩
그리드 트레이딩(grid_trading)은 가격이 하락하면 매수, 상승하면 매도하는 분할 매매 전략입니다. 연속 실행 모드(CONTINUOUS)로 동작하며, 설정된 시간 동안 주기적으로 시장 상태를 확인하고 주문을 실행합니다.
핵심 개념
섹션 제목: “핵심 개념”티어(Tier) 시스템
섹션 제목: “티어(Tier) 시스템”가격을 구간별로 나누어 각 구간을 “티어”로 관리합니다.
가격 ↑ T0 ──── $69.66 (1티어 기준가) - 보유 없음 T1 ──── 21주 보유 T2 ──── 42주 보유 ... T70 ──── 2075주 보유 (최대)가격 ↓- 가격이 하락하여 매수 조건 충족 → 다음 티어로 이동 (매수)
- 가격이 상승하여 매도 조건 충족 → 이전 티어로 이동 (매도)
핵심 규칙
섹션 제목: “핵심 규칙”| 규칙 | 설명 |
|---|---|
| 3A 로직 | 현재가 < (매수가+매도가)/2 → 매수만, 현재가 ≥ → 매도만 |
| 미체결 1개 | 항상 미체결 주문은 1개만 유지 |
| 티어 = 상태 | 티어 번호가 곧 보유 상태를 의미 |
워크시트 구조
섹션 제목: “워크시트 구조”그리드 전략 워크시트는 3개 영역으로 구성됩니다.
기본 설정 영역 (C~E열)
섹션 제목: “기본 설정 영역 (C~E열)”| 셀 | 내용 | 설명 |
|---|---|---|
| E8 | 종목코드 | 티커 심볼 (예: SOXL) |
| E10 | 투자금 | 총 투자 금액 |
| E12 | 분할수 | 티어 개수 |
| E14 | 1티어 가격 | 기준 가격 |
| E16 | 1티어 갱신 | 자동 갱신 플래그 |
| E18 | 매수 제한 | 순매수 제한 횟수 |
| E20 | 매도 제한 | 매도 제한 티어 |
| E24 | Telegram Chat ID | 알림용 |
| E26 | Bot Token / Webhook | 알림용 |
상태 정보 영역 (I~K열)
섹션 제목: “상태 정보 영역 (I~K열)”| 셀 | 내용 | 읽기/쓰기 |
|---|---|---|
| K6 | 현재 티어 | 읽기/쓰기 |
| K8 | 현재가 | 쓰기 |
| K10 | 잔고 | 쓰기 |
| K12 | 수량차 (qty_diff) | 쓰기 |
| K14 | 매수 횟수 | 읽기/쓰기 |
| K16 | 매도 횟수 | 읽기/쓰기 |
티어 테이블 (V~AC열)
섹션 제목: “티어 테이블 (V~AC열)”| 열 | 내용 |
|---|---|
| V | 티어 번호 |
| W | 잔고량 (목표) |
| Y | 티어 평단 |
| Z | 매수가 |
| AA | 매수량 |
| AB | 매도가 |
| AC | 매도량 |
3A 로직 (방향 결정)
섹션 제목: “3A 로직 (방향 결정)”매 사이클마다 현재가를 기준으로 매수/매도 방향을 결정합니다.
mid_price = (매수가 + 매도가) / 2
현재가 < mid_price → 매수 방향현재가 ≥ mid_price → 매도 방향경계 조건
섹션 제목: “경계 조건”| 조건 | 동작 |
|---|---|
| 티어 0 (보유 없음) | 매수만 가능 |
| 최대 티어 | 매도만 가능 |
| 매수 제한 초과 | 매수 보류 (hold) |
| 매도 제한 도달 | 매도 보류 (hold) |
실행 흐름
섹션 제목: “실행 흐름”첫 사이클 (동기화)
섹션 제목: “첫 사이클 (동기화)”프로그램 시작 시 첫 사이클에서는 HTS의 실제 잔고를 기준으로 티어를 동기화합니다.
- 미체결 주문 일괄 취소
- HTS 보유종목 조회 → 실제 잔고 확인
- 잔고 기준 티어 계산 (W열 비교)
- 현재가 기준 티어 계산 (Y열 비교)
- 범위 확인:
- 범위 내: 바로 3A 로직으로 진행
- 범위 외: catch-up 주문 생성 (잔고 티어 → 가격 티어로 이동)
이후 사이클
섹션 제목: “이후 사이클”- 체결 상태 확인 (이전 주문의 체결 여부)
- 체결됐으면 티어 업데이트
- 현재가 조회
- 3A 로직으로 방향 결정
- 필요시 기존 미체결 취소 + 새 주문 생성
- 주문 실행
Catch-up 주문
섹션 제목: “Catch-up 주문”잔고 티어와 가격 티어가 다를 때 발생합니다. 예를 들어 잔고가 5티어인데 가격이 10티어 수준이면, 5→10티어로 순차 매수합니다.
1티어 가격 변경
섹션 제목: “1티어 가격 변경”1티어 기준가가 변경되면 전체 그리드가 재계산됩니다.
변경 방법
섹션 제목: “변경 방법”| 방법 | 셀 | 설명 |
|---|---|---|
| 조건식 자동 갱신 | E30, E32 | 조건 충족 시 자동 계산 |
| 갱신 플래그 | E16 | TRUE이고 0티어이면 현재가로 갱신 |
| 직접 변경 | E14 | 사용자가 수동으로 값 변경 |
조건부 자동 갱신 (E30/E32/E34)
섹션 제목: “조건부 자동 갱신 (E30/E32/E34)”| 셀 | 역할 | 기본값 |
|---|---|---|
| E30 | 적용 조건 | =K6<0 (항상 FALSE) |
| E32 | 만족시 적용가 | =E34 |
| E34 | 조건식 수식 | 자동 계산 수식 |
사용자가 E30에 조건을 설정하면 (예: =K6<2), 조건 충족 시 E34의 수식으로 새 1티어 가격을 자동 계산합니다.
제한 설정
섹션 제목: “제한 설정”매수 제한 (E18)
섹션 제목: “매수 제한 (E18)”순매수 횟수(매수횟수 - 매도횟수)가 설정값 이상이면 매수를 중단합니다.
매도 제한 (E20)
섹션 제목: “매도 제한 (E20)”현재 티어가 설정값과 같으면 매도를 중단합니다. 특정 티어 이하로 매도하지 않도록 제어합니다.
전략 중지 시 정산 기능을 사용하여 매매 내역을 정리할 수 있습니다. 정산 완료 시 매수/매도 횟수가 초기화되고 알림이 발송됩니다.