설정 파일
설정 파일 목록
섹션 제목: “설정 파일 목록”| 파일 | 위치 | 설명 | Git |
|---|---|---|---|
settings.json | config/ | 애플리케이션 전체 설정 | gitignore |
strategies.json | config/ | 전략별 실행 설정 | gitignore |
credentials.json | config/ | Google Service Account 인증 | gitignore |
settings.example.json | config/ | 설정 파일 템플릿 | 커밋 |
settings.json
섹션 제목: “settings.json”모든 애플리케이션 설정을 JSON 형식으로 관리합니다.
{ "broker": { "active": "meritz", "meritz": { "hts_path": "C:\\메리츠증권\\iMERITZ XII\\실행파일.exe", "window_title": "메리츠증권 HTS 창 제목" } }, "google_sheets": { "sheet_id": "스프레드시트_ID", "credentials_file": "config/credentials.json", "template_sheet_id": "템플릿_스프레드시트_ID", "ib_template_worksheet_name": "IBSheetV3" }, "execution": { "order_delay": 2, "max_retries": 2 }, "notification": { "telegram_enabled": false, "telegram_token": "", "telegram_chat_id": "", "discord_enabled": true, "discord_webhook_url": "https://discord.com/api/webhooks/..." }, "logging": { "level": "INFO", "retention_days": 30, "max_file_size": 10 }}설정 항목 상세
섹션 제목: “설정 항목 상세”broker (증권사)
섹션 제목: “broker (증권사)”| 항목 | 설명 | 기본값 |
|---|---|---|
active | 현재 사용 증권사 | "meritz" |
meritz.hts_path | HTS 실행 파일 경로 | - |
meritz.window_title | HTS 창 제목 (pywinauto 검색용) | - |
google_sheets (Google Sheets)
섹션 제목: “google_sheets (Google Sheets)”| 항목 | 설명 |
|---|---|
sheet_id | 스프레드시트 ID (URL의 /d/ 뒤 문자열) |
credentials_file | Service Account 인증 파일 경로 |
template_sheet_id | 무한매수법 템플릿 스프레드시트 ID |
ib_template_worksheet_name | 무한매수법 템플릿 워크시트 이름 |
execution (실행)
섹션 제목: “execution (실행)”| 항목 | 설명 | 기본값 |
|---|---|---|
order_delay | 주문 간 대기 시간 (초) | 2 |
max_retries | 주문 실패 시 재시도 횟수 | 2 |
notification (알림 - Fallback)
섹션 제목: “notification (알림 - Fallback)”워크시트에 알림 설정이 없을 경우 사용됩니다.
| 항목 | 설명 |
|---|---|
telegram_enabled | Telegram 알림 활성화 |
telegram_token | Telegram Bot Token |
telegram_chat_id | Telegram Chat ID |
discord_enabled | Discord 알림 활성화 |
discord_webhook_url | Discord Webhook URL |
logging (로깅)
섹션 제목: “logging (로깅)”| 항목 | 설명 | 기본값 |
|---|---|---|
level | 로그 레벨 | "INFO" |
retention_days | 로그 파일 보관 일수 | 30 |
max_file_size | 로그 파일 최대 크기 (MB) | 10 |
strategies.json
섹션 제목: “strategies.json”GUI에서 추가한 전략 설정을 저장합니다.
{ "strategies": [ { "id": "SOXL_F1", "strategy_type": "grid_trading", "worksheet_name": "SOXL_F1", "start_time": "22:30", "end_time": "05:00", "polling_interval": 60, "enabled": true, "run_on_holiday": false }, { "id": "AAPL_단순매매", "strategy_type": "simple_order", "worksheet_name": "AAPL_단순매매", "start_time": "22:30", "end_time": "22:30", "polling_interval": 0, "enabled": false } ]}전략 설정 항목
섹션 제목: “전략 설정 항목”| 항목 | 설명 | 예시 |
|---|---|---|
id | 전략 고유 ID (탭 이름) | "SOXL_F1" |
strategy_type | 전략 유형 | "grid_trading", "simple_order", "infinite_buy" |
worksheet_name | Google Sheet 워크시트 이름 | "SOXL_F1" |
start_time | 실행 시작 시각 (24시간) | "22:30" |
end_time | 실행 종료 시각 (24시간) | "05:00" |
polling_interval | 실행 주기 (초), 0이면 ONE_TIME | 60 |
enabled | 활성화 여부 | true |
run_on_holiday | 미국 공휴일에도 실행 여부 | false |
실행 모드 판단
섹션 제목: “실행 모드 판단”| 조건 | 실행 모드 |
|---|---|
polling_interval = 0 | ONE_TIME (1회 실행) |
start_time = end_time | ONE_TIME (1회 실행) |
| 그 외 | CONTINUOUS (반복 실행) |
자격증명 관리
섹션 제목: “자격증명 관리”HTS 로그인 정보는 settings.json에 저장하지 않고, GUI를 통해 Windows 자격증명관리자(keyring)에 안전하게 저장합니다.
| 정보 유형 | 저장 위치 | 보안 수준 |
|---|---|---|
| 공동인증서 순서 | Windows 자격증명관리자 | OS 수준 암호화 (DPAPI) |
| 공동인증서 비밀번호 | Windows 자격증명관리자 | OS 수준 암호화 (DPAPI) |
| 계좌 비밀번호 | Windows 자격증명관리자 | OS 수준 암호화 (DPAPI) |
| Google API 인증 | credentials.json | 파일 권한 + .gitignore |
| Telegram Bot Token | 전략 워크시트 | 시트 공유 권한 |
| Discord Webhook URL | 전략 워크시트 | 시트 공유 권한 |
credentials.json
섹션 제목: “credentials.json”Google Cloud Console에서 생성한 Service Account 키 파일입니다.
{ "type": "service_account", "project_id": "your-project-id", "private_key_id": "...", "private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n", "client_email": "your-service-account@your-project.iam.gserviceaccount.com", "client_id": "...", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token"}