주식자동매매 AI 프로그램 초기 모델
This commit is contained in:
62
modules/config.py
Normal file
62
modules/config.py
Normal file
@@ -0,0 +1,62 @@
|
||||
import os
|
||||
import sys
|
||||
from dotenv import load_dotenv
|
||||
|
||||
# .env 파일 로드
|
||||
load_dotenv()
|
||||
|
||||
class Config:
|
||||
# 1. 기본 설정
|
||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
# 2. NAS 및 AI 서버
|
||||
NAS_API_URL = os.getenv("NAS_API_URL", "http://192.168.45.54:18500")
|
||||
OLLAMA_API_URL = os.getenv("OLLAMA_API_URL", "http://localhost:11434")
|
||||
OLLAMA_MODEL = os.getenv("OLLAMA_MODEL", "llama3.1")
|
||||
|
||||
# 3. KIS 한국투자증권
|
||||
KIS_ENV_TYPE = os.getenv("KIS_ENV_TYPE", "virtual").lower()
|
||||
|
||||
if KIS_ENV_TYPE == "real":
|
||||
KIS_APP_KEY = os.getenv("KIS_REAL_APP_KEY")
|
||||
KIS_APP_SECRET = os.getenv("KIS_REAL_APP_SECRET")
|
||||
KIS_ACCOUNT = os.getenv("KIS_REAL_ACCOUNT")
|
||||
KIS_IS_VIRTUAL = False
|
||||
KIS_BASE_URL = "https://openapi.koreainvestment.com:9443"
|
||||
else:
|
||||
KIS_APP_KEY = os.getenv("KIS_VIRTUAL_APP_KEY")
|
||||
KIS_APP_SECRET = os.getenv("KIS_VIRTUAL_APP_SECRET")
|
||||
KIS_ACCOUNT = os.getenv("KIS_VIRTUAL_ACCOUNT")
|
||||
KIS_IS_VIRTUAL = True
|
||||
KIS_BASE_URL = "https://openapivts.koreainvestment.com:29443"
|
||||
|
||||
# 4. 텔레그램
|
||||
TELEGRAM_BOT_TOKEN = os.getenv("TELEGRAM_BOT_TOKEN")
|
||||
TELEGRAM_CHAT_ID = os.getenv("TELEGRAM_CHAT_ID")
|
||||
|
||||
# 5. 매매 설정 (상수)
|
||||
MAX_INVESTMENT_PER_STOCK = 3000000 # 종목당 최대 300만원
|
||||
|
||||
# 6. 데이터 경로
|
||||
DATA_DIR = os.path.join(BASE_DIR, "data")
|
||||
if not os.path.exists(DATA_DIR):
|
||||
os.makedirs(DATA_DIR, exist_ok=True)
|
||||
|
||||
IPC_FILE = os.path.join(DATA_DIR, "bot_ipc.json")
|
||||
HISTORY_FILE = os.path.join(DATA_DIR, "daily_trade_history.json")
|
||||
WATCHLIST_FILE = os.path.join(DATA_DIR, "watchlist.json")
|
||||
|
||||
# 7. 타임아웃 등
|
||||
HTTP_TIMEOUT = 10
|
||||
|
||||
@staticmethod
|
||||
def validate():
|
||||
"""필수 설정 검증"""
|
||||
missing = []
|
||||
if not Config.KIS_APP_KEY: missing.append("KIS_APP_KEY")
|
||||
if not Config.KIS_APP_SECRET: missing.append("KIS_APP_SECRET")
|
||||
|
||||
if missing:
|
||||
print(f"⚠️ [Config] Missing Env Params: {', '.join(missing)}")
|
||||
return False
|
||||
return True
|
||||
Reference in New Issue
Block a user