| """
|
| ============================================================
|
| AI Dynamic Portfolio Management System
|
| Project Configuration
|
| ============================================================
|
|
|
| Author : Vansh Putalu
|
| Version : 2.0
|
| Purpose : Global configuration shared across all notebooks
|
| """
|
|
|
| import os
|
|
|
|
|
|
|
|
|
|
|
| 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")
|
|
|
|
|
|
|
|
|
|
|
| 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")
|
|
|
|
|
|
|
|
|
|
|
| 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)
|
|
|
|
|
|
|
|
|
|
|
| START_DATE = "2008-01-01"
|
|
|
| END_DATE = "2026-12-31"
|
|
|
|
|
|
|
|
|
|
|
| RANDOM_STATE = 42
|
|
|
| TRAIN_RATIO = 0.80
|
|
|
| TRADING_DAYS = 252
|
|
|
| TARGET_HORIZONS = [5, 10]
|
|
|
| DEFAULT_TARGET = "Target_5D"
|
|
|
| TARGET_TYPE = "Regression"
|
|
|
|
|
|
|
|
|
|
|
| INITIAL_CAPITAL = 100000
|
|
|
| MONTHLY_SIP = 10000
|
|
|
| REBALANCE_FREQUENCY = 5
|
|
|
| MAX_STOCK_WEIGHT = 0.30
|
|
|
| MIN_STOCK_WEIGHT = 0.00
|
|
|
|
|
|
|
|
|
|
|
| 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())
|
|
|
|
|
|
|
|
|
|
|
| MARKET_INDICES = {
|
|
|
| "NIFTY50":"^NSEI",
|
|
|
| "BANKNIFTY":"^NSEBANK",
|
|
|
| "INDIA_VIX":"^INDIAVIX"
|
|
|
| }
|
|
|
|
|
|
|
|
|
|
|
| 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 = {
|
|
|
| "NIFTY_IT":"^CNXIT",
|
|
|
| "NIFTY_PHARMA":"^CNXPHARMA",
|
|
|
| "NIFTY_FMCG":"^CNXFMCG",
|
|
|
| "NIFTY_ENERGY":"^CNXENERGY",
|
|
|
| "NIFTY_BANK":"^NSEBANK"
|
|
|
| }
|
|
|
|
|
|
|
|
|
|
|
| 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 |