docs: expand .env.example with full config template (no secrets)

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dsyoon
2026-06-03 16:48:03 +01:00
parent ef8fc774f8
commit 92a929e28e

View File

@@ -1,38 +1,155 @@
# DeepCoin — .env.example (비밀값 없음). 복사: cp .env.example .env
# DeepCoin — .env.example (비밀값 없음). 복사: cp .env.example .env 후 키만 채우세요.
# Python: conda activate ncue && pip install -r requirements.txt
# --- 빗썸 API ---
BITHUMB_ACCESS_KEY=
BITHUMB_SECRET_KEY=
BITHUMB_API_URL=https://api.bithumb.com
BITHUMB_API_CANDLE_COUNT=200
BITHUMB_MINUTE_INTERVALS=1,3,5,10,15,30,60,240
HTS_API_RETRY_SLEEP_SEC=0.5
# --- 텔레그램 (선택, 알림 미사용 시 비워도 됨) ---
COIN_TELEGRAM_BOT_TOKEN=
COIN_TELEGRAM_CHAT_ID=
# --- 거래 대상 ---
SYMBOL=WLD
CHART_LOOKBACK_DAYS=365
# 01 다운로드 — 주봉(10080)·월봉(43200) 2년치
DOWNLOAD_INTERVALS_WM=10080,43200
DOWNLOAD_MONTHS_WM=24
WEEK_INTERVAL_MIN=10080
MONTH_INTERVAL_MIN=43200
COIN_NAME=월드코인
# 01 다운로드 (1분봉 제외 — 시뮬·MTF는 3분 이상만 사용)
# --- 경로 ---
DB_PATH=data/coins.db
GROUND_TRUTH_FILE=data/ground_truth/ground_truth_trades.json
# --- 타임프레임 (분) ---
DAILY_INTERVAL_MIN=1440
ENTRY_INTERVAL=3
TREND_INTERVAL_1H=60
TREND_INTERVAL_1D=1440
ALL_INTERVALS=3,5,10,15,30,60,240,1440
DOWNLOAD_INTERVALS=3,5,10,15,30,60,240,1440
DOWNLOAD_MONTHS=12
# 05/06 루프마다 API 봉을 coins.db에 증분 저장 (01과 동일 append_data)
MONITOR_PERSIST_CANDLES=1
# 05/06 시작 시 누락·지연 봉 자동 증분 (scripts/00_sync_ops.py 동일)
OPS_SYNC_ON_START=1
OPS_SYNC_MAX_LAG_BARS=2
GENERAL_ANALYSIS_INTERVALS=3,5,10,15,30,60,240,1440,10080,43200
TIMING_INTERVALS=3,5,10,15
TREND_INTERVALS=60,240,1440,10080,43200
INTERVAL_PREFIX=3:m3,5:m5,10:m10,15:m15,30:m30,60:m60,240:m240,1440:d1,10080:w1,43200:mo1
# 02 Ground Truth · 시뮬·live 배분 공통 초기 자금
# --- 볼린저 / RSI ---
BB_PERIOD=20
BB_STD=2
BB_MIN_WIDTH_PCT=0.8
RSI_PERIOD=14
DISPARITY_PERIODS=5,20,60
DISPARITY_OVERBOUGHT=105
DISPARITY_OVERSOLD=95
MACD_FAST=12
MACD_SLOW=26
MACD_SIGNAL=9
STOCH_K_PERIOD=14
STOCH_D_PERIOD=3
STOCH_SMOOTH_K=3
STOCH_OVERSOLD=20
STOCH_OVERBOUGHT=80
TREND_RANGE_MA_GAP_PCT=0.5
# --- MTF 정렬 ---
ALIGN_RSI_OVERSOLD=35
ALIGN_RSI_OVERBOUGHT=65
ALIGN_RSI_CONFLICT_TIMING_LOW=40
ALIGN_RSI_CONFLICT_TIMING_HIGH=65
ALIGN_RSI_CONFLICT_TREND_LOW=40
ALIGN_RSI_CONFLICT_TREND_HIGH=65
ALIGN_BB_POS_LOW=0.2
ALIGN_BB_POS_HIGH=0.8
# --- 다운로드 / DB ---
DOWNLOAD_MONTHS=12
INCREMENTAL_OVERLAP_BARS=3
DOWNLOAD_BACKFILL_EXTRA_BARS=200
DOWNLOAD_MIN_INCREMENTAL_BARS=50
DOWNLOAD_DAILY_EXTRA_DAYS=20
CHART_LOOKBACK_DAYS=365
DB_READ_LIMIT_DEFAULT=7000
DB_ROW_WARMUP_BARS=200
DB_ROW_MIN_DAILY_BARS=100
DB_ROW_DAILY_PADDING_DAYS=30
# --- Ground Truth ---
GT_MIN_SWING_PCT=4.0
GT_PIVOT_ORDER=20
GT_MIN_BARS_BETWEEN=30
GT_MAX_ROUND_TRIPS=24
GT_SELECTION_MODE=split_buy_peak_sell
GT_MIN_LEG_PCT=8.0
GT_BUY_MIN_SWING_PCT=3.0
GT_BUY_BB_MAX=0.45
GT_BUY_MIN_BARS=24
GT_MAX_BUYS_PER_LEG=12
GT_MAX_SELLS_PER_LEG=2
GT_SELL_SPLIT_GAP_PCT=2.5
GT_MARKER_SIZE_MIN=10
GT_MARKER_SIZE_MAX=32
GT_INITIAL_CASH_KRW=400000
TRADING_FEE_RATE=0.0005
GT_UNLIMITED_CHRONOLOGICAL_DAYS=300
# --- 모니터 ---
MONITOR_LOOP_SLEEP_SEC=180
MONITOR_POOL_WORKERS=12
MONITOR_DEFAULT_INTERVAL=60
MONITOR_API_RETRIES=3
MONITOR_API_BONG_COUNT=3000
MONITOR_SLEEP_AFTER_REQUEST_SEC=0.5
MONITOR_SLEEP_RATE_LIMIT_SEC=5
MONITOR_SLEEP_BETWEEN_CHUNKS_SEC=0.3
MONITOR_API_CHUNK_BARS=200
MONITOR_MA_WINDOWS=5,20,40,120,200,240,720,1440
MONITOR_NORM_WINDOW=20
MONITOR_TELEGRAM_BATCH_SIZE=20
# --- general_analysis ---
GA_COL_PREFIX=ga_
LOOKBACK_BARS=3:120,5:100,10:80,15:60,30:50,60:40,240:30,1440:60,10080:12,43200:6
CONTEXT_TAIL_ROWS=3:6000,5:5000,10:4000,15:3000,30:2000,60:1500,240:800,1440:500,10080:120,43200:48
GA_DEFAULT_TAIL_EXPORT=200
GA_PATTERN_TOLERANCE_PCT=2.5
GA_VP_BINS=30
GA_VP_VALUE_AREA_PCT=0.70
GA_HV_ROLLING_BARS=20
GA_HV_PERCENTILE_WINDOW=120
GA_HV_ANNUALIZE_SQRT=339.41148133
GA_DIVERGENCE_LOOKBACK=10
GA_SMA_PERIODS=5,20,60,120
GA_EMA_SPANS=12,26
GA_ATR_PERIOD=14
GA_KELTNER_ATR_MULT=2
GA_AO_FAST=5
GA_AO_SLOW=34
GA_LINREG_WINDOW=20
GA_ADX_PERIOD=14
GA_ADX_TREND_THRESHOLD=25
GA_SUPERTREND_ATR_MULT=3
GA_VOL_SPIKE_MULT=1.8
GA_VOL_MA_WINDOW=20
GA_CCI_PERIOD=20
GA_WILLIAMS_PERIOD=14
GA_ROC_PERIOD=10
GA_MFI_PERIOD=14
GA_CMF_PERIOD=20
GA_DONCHIAN_PERIOD=20
GA_BB_SQUEEZE_WINDOW=50
GA_BB_SQUEEZE_QUANTILE=0.2
GA_PIVOT_ORDER=3
GA_PSAR_AF_START=0.02
GA_PSAR_AF_STEP=0.02
GA_PSAR_AF_MAX=0.2
# --- .env.example 누락 키 추가 (2026-06-01) ---
GT_MIN_ORDER_KRW=5000
GT_BUY_PCT_LARGE_LEG=1.0
GT_BUY_PCT_SMALL_LEG=0.05
GT_LARGE_LEG_TOP_PCT=0.2
# 시뮬·스캔: 1=인과적(운영 정합), 0=사후 ZigZag(정답 라벨용)
GT_SIGNAL_CAUSAL=1
SIM_CAUSAL_TIER=1
# 인과 GT leg 엔진 (scripts/04_causal_gt_calibrate.py)
CAUSAL_GT_PEAK_MODE=local
CAUSAL_GT_MIN_LEG_PCT=5.0
CAUSAL_GT_MIN_BARS_BETWEEN_LEGS=60
@@ -41,7 +158,6 @@ CAUSAL_GT_DD_LARGE_PCT=5.0
CAUSAL_GT_DD_MEDIUM_PCT=2.0
GT_BUY_PCT_MEDIUM_LEG=0.25
SIM_TIER_CONVICTION_DD_PCT=10.0
# hybrid tier 승격 (auto=검증 통과 시 hybrid)
SIM_PRIMARY_SIZING=auto
SIM_HYBRID_MIN_HOLDOUT_PNL_PCT=0.0
SIM_HYBRID_MAX_MDD_PCT=30.0
@@ -52,25 +168,17 @@ SIM_OPTION_C_MIN_GT_CAPTURE=0.23
SIM_HYBRID_PORTFOLIO_WF_MIN_RATIO=0.5
GT_BUY_WEIGHT_RULE=inverse_price_normalized
GT_SELL_SPLIT_WEIGHTS=0.65,0.35
# 04 매칭
MATCH_LABEL_MODE=leg_gt
MATCH_HOLDOUT_RATIO=0.15
MATCH_MONITOR_MAX_PER_SIDE=1
# 1 시뮬레이션
SIM_GO_WF_POSITIVE_RATIO=0.5
SIM_FEE_STRESS_MULT=2.0
# 05 알림 (Phase C: MONITOR_LOOP_SLEEP_SEC=180 권장)
# 쿨다운 = 최소 봉 간격(3분)과 동일. 루프 주기 MONITOR_LOOP_SLEEP_SEC=180
# 3분봉(MATCH_PRIMARY_INTERVAL=3) — 규칙·알림 쿨다운 1봉
MONITOR_ALERT_COOLDOWN_MIN=3
MONITOR_ALERT_KRW_AMOUNT=40000
MONITOR_LOOP_SLEEP_SEC=180
MATCH_LIVE_CACHE_SEC=180
# 3 실거래 (운영, LIVE=1 필수)
# Phase B-1: 실거래 (06_execute_live.py 만 빗썸 주문 — 05는 알림만)
LIVE_TRADING_ENABLED=1
# LIVE_* 원화 한도: GT_INITIAL_CASH_KRW(40만) — B-1: 일한도 1배, 손실 10%, 1회참고 10%
LIVE_ORDER_KRW=40000
LIVE_BUY_PCT_LARGE=1.0
LIVE_BUY_PCT_SMALL=0.05
@@ -79,9 +187,8 @@ LIVE_COOLDOWN_MIN=3
LIVE_MAX_TRADES_PER_DAY=15
LIVE_DAILY_LOSS_LIMIT_KRW=40000
LIVE_SLIPPAGE_PCT=0.05
# 시뮬 sim_causal_hybrid 와 동일: fire_outcomes monitor 발화 부트스트랩
# 06: 시뮬 sim_causal_hybrid 정합 — fire_outcomes monitor 발화 부트스트랩
LIVE_HYBRID_BOOTSTRAP_FIRES=1
# 07 일일 24h 수익률 텔레그램 (scripts/07_daily_pnl_telegram.py)
DAILY_PNL_REPORT_ENABLED=1
DAILY_PNL_REPORT_HOUR=19
@@ -89,3 +196,15 @@ DAILY_PNL_REPORT_MINUTE=0
DAILY_PNL_REPORT_TZ=Asia/Seoul
DAILY_PNL_SNAPSHOT_ON_LIVE=1
DAILY_PNL_SNAPSHOT_RETENTION_DAYS=90
# 05/06 루프 시 봉 DB 증분 · live_eval 캐시(루프 주기와 동일)
MONITOR_PERSIST_CANDLES=1
MATCH_LIVE_CACHE_SEC=180
# 05/06 시작·루프마다 지연 봉 자동 보완 (간격당 허용 지연 = 간격분×OPS_SYNC_MAX_LAG_BARS)
OPS_SYNC_ON_START=1
OPS_SYNC_MAX_LAG_BARS=2
# --- 주·월봉 다운로드 (01_download) ---
DOWNLOAD_INTERVALS_WM=10080,43200
DOWNLOAD_MONTHS_WM=24
WEEK_INTERVAL_MIN=10080
MONTH_INTERVAL_MIN=43200