62 lines
2.3 KiB
Python
62 lines
2.3 KiB
Python
"""
|
|
update_env_etf.py — ETF 액티브 매매 봇 환경 변수 설정 스크립트
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
역할: DB 에 ETF 유니버스 및 매매 설정을 등록
|
|
|
|
사용법:
|
|
python update_env_etf.py
|
|
|
|
실행 후 DB(env_config) 에 다음 설정이 저장됩니다:
|
|
- ETF_UNIVERSE: 매매 대상 ETF 종목코드 목록
|
|
- 기타 ETF 매매 관련 설정
|
|
"""
|
|
|
|
from database import TradeDB
|
|
from pathlib import Path
|
|
|
|
# DB 초기화
|
|
SCRIPT_DIR = Path(__file__).resolve().parent
|
|
db = TradeDB(db_path=str(SCRIPT_DIR / "quant_bot.db"))
|
|
|
|
# ==============================================================================
|
|
# ETF 액티브 매매 설정
|
|
# ==============================================================================
|
|
etf_settings = {
|
|
# ETF 유니버스 (콤마로 구분된 종목코드)
|
|
# 원자력/전력망 테마 ETF 예시:
|
|
# - 069500: KODEX 200 (대표 ETF)
|
|
# - 114800: KODEX 은행
|
|
# - 280670: KODEX 원자력
|
|
# - 395030: KODEX 이차전지산업
|
|
# - 405840: KODEX AI반도체
|
|
"ETF_UNIVERSE": "069500,114800,280670,395030,405840",
|
|
|
|
# 매매 관련 설정 (필요시 추가)
|
|
# "ETF_RSI_BUY_1": "35", # 1 차 매수 RSI
|
|
# "ETF_RSI_BUY_2": "30", # 2 차 매수 RSI
|
|
# "ETF_RSI_BUY_3": "25", # 3 차 매수 RSI
|
|
# "ETF_PROFIT_TAKE": "0.04", # 익절 비율 (+4%)
|
|
# "ETF_STOP_LOSS": "-0.10", # 손절 비율 (-10%)
|
|
}
|
|
|
|
# DB 에 저장
|
|
snapshot_id = db.insert_env_snapshot(etf_settings)
|
|
|
|
if snapshot_id:
|
|
print(f"✅ ETF 환경 변수 저장 완료 (ID: {snapshot_id})")
|
|
print("\n📊 저장된 설정:")
|
|
for key, value in etf_settings.items():
|
|
print(f" {key}: {value}")
|
|
|
|
print("\n📝 사용법:")
|
|
print(" 1. 백테스트: python etf_backtest.py")
|
|
print(" 2. 실전 매매: python etf_ver1.py")
|
|
print("\n💡 팁:")
|
|
print(" - ETF_UNIVERSE 에 원하는 ETF 종목코드를 추가하세요")
|
|
print(" - 예: '069500,114800,280670,395030,405840,XXXXXX'")
|
|
print(" - 한국 ETF 종목코드 뒤에 '.KS' 는 붙이지 마세요 (6 자리 숫자만)")
|
|
else:
|
|
print("❌ 환경 변수 저장 실패")
|
|
|
|
db.close()
|