Files
DeepCoin/config.py
dsyoon e218a8ea32 전 봉 BB·일목 조합 분석 및 simulation 단일 실행으로 통합
9개 간격(1~1440분) BB·일목 위치 특징을 3분 타임라인에 맞춰 분석하고,
discover로 매수·매도 규칙을 찾은 뒤 HTML 차트에 해당 체결만 표시한다.
simulation_1h.py를 simulation.py로 변경했으며, 파라미터 없이 실행하면
analyze→discover→차트가 한 번에 수행된다.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-29 01:20:36 +09:00

77 lines
2.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""
전역 설정 (WLD 월드코인, 3분 BB MTF 전략).
"""
import os
try:
from dotenv import load_dotenv
load_dotenv()
except ImportError:
pass
# --- API / 알림 ---
COIN_TELEGRAM_BOT_TOKEN = os.getenv("COIN_TELEGRAM_BOT_TOKEN", "")
COIN_TELEGRAM_CHAT_ID = os.getenv("COIN_TELEGRAM_CHAT_ID", "")
# --- 거래 대상 ---
SYMBOL = "WLD"
COIN_NAME = "월드코인"
KR_COINS: dict[str, str] = {
SYMBOL: COIN_NAME,
}
# --- 타임프레임 (분) ---
TREND_INTERVAL_1H = 60
TREND_INTERVAL_1D = 1440
# --- 쿨다운(초) ---
BUY_COOLDOWN_SEC = int(os.getenv("BUY_COOLDOWN_SEC", "300"))
SELL_COOLDOWN_SEC = int(os.getenv("SELL_COOLDOWN_SEC", "180"))
BUY_MINUTE_LIMIT = BUY_COOLDOWN_SEC
# --- 볼린저 (3분봉, 20, 2σ) ---
BB_PERIOD = 20
BB_STD = 2
BB_MIN_WIDTH_PCT = float(os.getenv("BB_MIN_WIDTH_PCT", "0.8"))
# --- RSI / 거래량 (조합 필터) ---
RSI_PERIOD = 14
RSI_BUY_MAX = float(os.getenv("RSI_BUY_MAX", "42"))
VOLUME_BUY_RATIO = float(os.getenv("VOLUME_BUY_RATIO", "1.0"))
# --- 추세 / 레짐 ---
TREND_RANGE_MA_GAP_PCT = 0.5
# --- 주문 ---
DEFAULT_BUY_KRW = int(os.getenv("DEFAULT_BUY_KRW", "30000"))
RANGE_BUY_KRW = int(os.getenv("RANGE_BUY_KRW", "15000"))
# --- 수수료 (매수·매도 각각 적용, 시뮬레이션) ---
TRADING_FEE_RATE = float(os.getenv("TRADING_FEE_RATE", "0.0005"))
# --- coins.db (downloader.py 적재 간격, 분) ---
# 빗썸 분봉 API: 1,3,5,10,15,30,60,240 / 일봉 1440
ALL_INTERVALS: tuple[int, ...] = (1, 3, 5, 10, 15, 30, 60, 240, 1440)
DOWNLOAD_INTERVALS: tuple[int, ...] = ALL_INTERVALS
DOWNLOAD_MONTHS = int(os.getenv("DOWNLOAD_MONTHS", "6"))
# 1분봉은 용량·API 부담으로 기본 2개월 (환경변수로 조정)
DOWNLOAD_MONTHS_1M = int(os.getenv("DOWNLOAD_MONTHS_1M", "2"))
DB_PATH = "coins.db"
# 규칙 탐색·조합 분석 기준 타임라인
ENTRY_INTERVAL = 3
# 실시간: discovered_rules + 전 봉 BB·일목 조합 (False면 mtf_bb_policy)
USE_DISCOVERED_LIVE = os.getenv("USE_DISCOVERED_LIVE", "true").lower() in ("1", "true", "yes")
# --- 시뮬레이션 ---
SIM_INITIAL_CASH_KRW = int(os.getenv("SIM_INITIAL_CASH_KRW", "200000"))
SIM_MIN_ORDER_KRW = int(os.getenv("SIM_MIN_ORDER_KRW", "5000"))
# --- 실행 ---
MONITOR_LOOP_SLEEP_SEC = 10
COOLDOWN_FILE = "coins_buy_time.json"