indian market stock analysis
indian market stock analysis
import yfinance as yf
import numpy as np
import warnings
warnings.filterwarnings("ignore")
stocks_list = {
"Reliance Industries": "RELIANCE.NS",
"HDFC Bank": "HDFCBANK.NS",
"ICICI Bank": "ICICIBANK.NS",
"Tata Consultancy Services": "TCS.NS",
"Infosys": "INFY.NS",
"State Bank of India": "SBIN.NS",
"Larsen & Toubro": "LT.NS",
"Hindustan Unilever": "HINDUNILVR.NS",
"Bharti Airtel": "BHARTIARTL.NS",
"Bajaj Finance": "BAJFINANCE.NS",
"Axis Bank": "AXISBANK.NS",
"Maruti Suzuki": "MARUTI.NS",
"Tata Steel": "TATASTEEL.NS",
"Oil & Natural Gas Corporation": "ONGC.NS",
"UltraTech Cement": "ULTRACEMCO.NS",
"Mahindra & Mahindra": "M&M.NS",
"Asian Paints": "ASIANPAINT.NS",
"Titan Company": "TITAN.NS",
"Nestle India": "NESTLEIND.NS",
"Sun Pharma": "SUNPHARMA.NS",
"Wipro": "WIPRO.NS",
"Adani Enterprises": "ADANIENT.NS",
"Adani Ports": "ADANIPORTS.NS",
"Power Grid Corporation": "POWERGRID.NS",
"Tech Mahindra": "TECHM.NS",
"Coal India": "COALINDIA.NS",
"HCL Technologies": "HCLTECH.NS",
"NTPC": "NTPC.NS",
"Tata Motors": "TATAMOTORS.NS",
"Grasim Industries": "GRASIM.NS",
}
# If i were to buy one unit every day, what would be my daily investment, daily profit / loss, net profit / loss for the 3 month period
def display_results(rv: dict):
print("=" * 100)
print(f"Stock Name: {rv['stock_name']}")
print(f"Stock Symbol: {rv['stock_symbol']}")
print(f"Profit Days Ct : {rv['profit_days_ct']}")
print(f"Loss Days Ct : {rv['loss_days_ct']}")
print(f"Profit Amount : {rv['profit_amount']}")
print(f"Loss Amount : {rv['loss_amount']}")
profit_amount = rv["profit_amount"]
loss_amount = rv["loss_amount"]
net = 0
if profit_amount > loss_amount:
net = profit_amount - abs(loss_amount)
else:
net = abs(loss_amount) - profit_amount
print(f"Net : {net}")
print("=" * 100)
return
def compute(stock_name, stock_symbol):
tcs = yf.download(stock_symbol, period="6mo")
df = tcs.stack()
# add daily investment column.
df["Buy Price"] = df["Open"]
df["Daily Change"] = df["Close"] - df["Open"]
df["Profit / Loss"] = np.where(df["Daily Change"] > 0, "Profit", "Loss")
profit_days_ct = sum(df["Profit / Loss"] == "Profit")
loss_days_ct = sum(df["Profit / Loss"] == "Loss")
profit_amount = df.loc[df["Daily Change"] > 0, "Daily Change"].sum()
loss_amount = df.loc[df["Daily Change"] < 0, "Daily Change"].sum()
data = {
"stock_name": stock_name,
"stock_symbol": stock_symbol,
"df": df,
"profit_days_ct": profit_days_ct,
"loss_days_ct": loss_days_ct,
"profit_amount": profit_amount,
"loss_amount": loss_amount,
}
display_results(data)
for stock_name, stock_symbol in stocks_list.items():
compute(stock_name, stock_symbol)