vansh0003's picture
Update config.py
bd7573f verified
Raw
History Blame Contribute Delete
5.64 kB
"""
============================================================
AI Dynamic Portfolio Management System
Project Configuration
============================================================
Author : Vansh Putalu
Version : 2.0
Purpose : Global configuration shared across all notebooks
"""
import os
# ============================================================
# PROJECT PATHS
# ============================================================
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
DATA_PATH = os.path.join(PROJECT_ROOT, "data")
RAW_PATH = os.path.join(DATA_PATH, "raw")
PROCESSED_PATH = os.path.join(DATA_PATH, "processed")
FEATURE_PATH = os.path.join(DATA_PATH, "features")
MODEL_PATH = os.path.join(PROJECT_ROOT, "models")
RESULT_PATH = os.path.join(PROJECT_ROOT, "results")
IMAGE_PATH = os.path.join(RESULT_PATH, "figures")
REPORT_PATH = os.path.join(PROJECT_ROOT, "reports")
# ============================================================
# RAW DATA FOLDERS
# ============================================================
STOCK_PATH = os.path.join(RAW_PATH, "stocks")
MARKET_PATH = os.path.join(RAW_PATH, "market")
MACRO_PATH = os.path.join(RAW_PATH, "macro")
SECTOR_PATH = os.path.join(RAW_PATH, "sector")
METADATA_PATH = os.path.join(RAW_PATH, "metadata")
# ============================================================
# CREATE DIRECTORIES
# ============================================================
DIRECTORIES = [
DATA_PATH,
RAW_PATH,
PROCESSED_PATH,
FEATURE_PATH,
MODEL_PATH,
RESULT_PATH,
IMAGE_PATH,
REPORT_PATH,
STOCK_PATH,
MARKET_PATH,
MACRO_PATH,
SECTOR_PATH,
METADATA_PATH
]
for directory in DIRECTORIES:
os.makedirs(directory, exist_ok=True)
# ============================================================
# DOWNLOAD PERIOD
# ============================================================
START_DATE = "2008-01-01"
END_DATE = "2026-12-31"
# ============================================================
# PROJECT SETTINGS
# ============================================================
RANDOM_STATE = 42
TRAIN_RATIO = 0.80
TRADING_DAYS = 252
TARGET_HORIZONS = [5, 10]
DEFAULT_TARGET = "Target_5D"
TARGET_TYPE = "Regression"
# ============================================================
# PORTFOLIO SETTINGS
# ============================================================
INITIAL_CAPITAL = 100000
MONTHLY_SIP = 10000
REBALANCE_FREQUENCY = 5
MAX_STOCK_WEIGHT = 0.30
MIN_STOCK_WEIGHT = 0.00
# ============================================================
# STOCKS
# ============================================================
ASSETS = {
"TCS":{
"ticker":"TCS.NS",
"sector":"IT"
},
"Infosys":{
"ticker":"INFY.NS",
"sector":"IT"
},
"HDFC_Bank":{
"ticker":"HDFCBANK.NS",
"sector":"Banking"
},
"ICICI_Bank":{
"ticker":"ICICIBANK.NS",
"sector":"Banking"
},
"Reliance":{
"ticker":"RELIANCE.NS",
"sector":"Energy"
},
"ONGC":{
"ticker":"ONGC.NS",
"sector":"Energy"
},
"ITC":{
"ticker":"ITC.NS",
"sector":"FMCG"
},
"Hindustan_Unilever":{
"ticker":"HINDUNILVR.NS",
"sector":"FMCG"
},
"Sun_Pharma":{
"ticker":"SUNPHARMA.NS",
"sector":"Pharma"
},
"Cipla":{
"ticker":"CIPLA.NS",
"sector":"Pharma"
}
}
ALL_STOCKS = list(ASSETS.keys())
# ============================================================
# INDIAN MARKET
# ============================================================
MARKET_INDICES = {
"NIFTY50":"^NSEI",
"BANKNIFTY":"^NSEBANK",
"INDIA_VIX":"^INDIAVIX"
}
# ============================================================
# GLOBAL MACRO
# ============================================================
GLOBAL_MACRO = {
"NASDAQ":"^IXIC",
"SP500":"^GSPC",
"DOWJONES":"^DJI",
"USDINR":"INR=X",
"DXY":"DX-Y.NYB",
"Crude_Oil":"CL=F",
"Gold":"GC=F",
"Silver":"SI=F",
"Copper":"HG=F"
}
# ============================================================
# SECTOR INDICES
# ============================================================
SECTOR_INDICES = {
"NIFTY_IT":"^CNXIT",
"NIFTY_PHARMA":"^CNXPHARMA",
"NIFTY_FMCG":"^CNXFMCG",
"NIFTY_ENERGY":"^CNXENERGY",
"NIFTY_BANK":"^NSEBANK"
}
# ============================================================
# PROJECT SUMMARY
# ============================================================
TOTAL_STOCKS = len(ASSETS)
TOTAL_MARKET = len(MARKET_INDICES)
TOTAL_MACRO = len(GLOBAL_MACRO)
TOTAL_SECTOR = len(SECTOR_INDICES)
TOTAL_DOWNLOADS = (
TOTAL_STOCKS +
TOTAL_MARKET +
TOTAL_MACRO +
TOTAL_SECTOR
)
RISK_MAPPING = {
"Conservative": 0,
"Moderate": 1,
"Aggressive": 2
}
HORIZON_MAPPING = {
"5 Days": 5,
"10 Days": 10
}
MODEL_FOLDER = "models"
PPO_PATH = "models/ppo_dynamic_allocator_final300"
MODEL_5D = "models/Target_Return_5D"
MODEL_10D = "models/Target_Return_10D"
PRICE_DATA = "models/price_data.pkl"
RL_FEATURE_DATA = "models/rl_feature_data.pkl"
CORRELATION_MATRIX = "models/correlation_matrix.pkl"
DEFAULT_BUDGET = 500000