""" ============================================================ 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