Synced repo using 'sync_with_huggingface' Github Action
Browse files- data/ind_nifty100list.csv +102 -0
- data/ind_nifty200list.csv +202 -0
- data/ind_niftynext50list.csv +52 -0
- page/complete_backtest.py +52 -20
- page/single_backtest.py +4 -4
- requirements.txt +1 -1
- src/utils.py +39 -12
- strategies.py +4 -4
data/ind_nifty100list.csv
ADDED
@@ -0,0 +1,102 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"SYMBOL","OPEN","HIGH","LOW","PREV. CLOSE","LTP","INDICATIVE CLOSE","CHNG","%CHNG","VOLUME (shares)","VALUE (₹ Crores)","52W H","52W L","30 D %CHNG","365 D % CHNG 25-Jan-2024"
|
2 |
+
"NIFTY 100","23,810.20","23,930.10","23,618.10","23,823.25","23,660.20","-","-163.05","-0.68","52,89,66,338","34,493.22","27,335.65","21,934.80","-3.71","9.20"
|
3 |
+
"HINDUNILVR","2,332.85","2,380.80","2,323.00","2,321.70","2,380.10","-","58.40","2.52","16,88,664","398.35","3,035.00","2,172.05","1.39","-2.48"
|
4 |
+
"BRITANNIA","5,037.70","5,108.00","5,013.15","5,012.60","5,100.00","-","87.40","1.74","5,09,954","258.96","6,469.90","4,641.00","7.53","-0.78"
|
5 |
+
"LODHA","1,077.00","1,109.00","1,076.00","1,082.30","1,100.00","-","17.70","1.64","25,66,066","281.53","1,649.95","977.35","-21.63","4.12"
|
6 |
+
"EICHERMOT","5,134.00","5,224.50","5,115.05","5,116.20","5,190.25","-","74.05","1.45","7,30,641","378.67","5,385.70","3,562.45","8.63","43.96"
|
7 |
+
"GRASIM","2,466.35","2,514.05","2,453.45","2,461.15","2,495.00","-","33.85","1.38","15,10,105","375.85","2,877.75","2,016.55","-0.44","19.95"
|
8 |
+
"ICICIBANK","1,203.10","1,218.00","1,202.00","1,201.75","1,213.70","-","11.95","0.99","92,16,792","1,114.48","1,362.35","985.25","-6.79","19.73"
|
9 |
+
"TATACONSUM","988.75","1,004.00","986.40","983.90","992.80","-","8.90","0.90","22,01,712","219.17","1,256.44","882.90","9.37","-12.70"
|
10 |
+
"BAJAJHLDNG","11,160.05","11,310.00","11,101.40","11,198.30","11,290.00","-","91.70","0.82","28,427","32.03","13,238.00","7,659.95","2.19","37.77"
|
11 |
+
"WIPRO","319.00","322.50","316.60","317.70","319.95","-","2.25","0.71","1,74,79,586","559.19","324.60","208.50","4.85","-31.89"
|
12 |
+
"INDIGO","4,162.10","4,269.80","4,126.05","4,134.80","4,162.25","-","27.45","0.66","14,81,820","621.17","5,035.00","2,847.00","-9.77","45.36"
|
13 |
+
"TECHM","1,719.00","1,736.40","1,705.35","1,713.40","1,724.00","-","10.60","0.62","12,57,165","216.63","1,807.70","1,162.95","1.06","30.33"
|
14 |
+
"POWERGRID","295.30","302.50","294.35","294.35","296.00","-","1.65","0.56","1,11,42,914","333.05","366.25","235.00","-4.60","20.51"
|
15 |
+
"INFY","1,865.50","1,894.90","1,864.25","1,865.45","1,875.00","-","9.55","0.51","48,87,027","919.52","2,006.45","1,358.35","-1.76","12.36"
|
16 |
+
"NESTLEIND","2,202.00","2,222.75","2,190.10","2,198.95","2,209.90","-","10.95","0.50","6,63,600","146.74","2,778.00","2,145.40","1.90","-11.05"
|
17 |
+
"BHARTIARTL","1,634.05","1,661.90","1,634.05","1,636.00","1,641.45","-","5.45","0.33","36,20,058","596.16","1,779.00","1,097.65","3.84","41.73"
|
18 |
+
"ITC","439.40","445.00","439.05","440.20","441.40","-","1.20","0.27","96,65,384","427.72","528.50","399.35","-7.70","-3.08"
|
19 |
+
"VBL","539.00","548.70","536.90","540.40","541.60","-","1.20","0.22","30,64,139","165.99","681.12","488.40","-13.65","-56.92"
|
20 |
+
"JSWSTEEL","930.00","953.00","925.15","929.90","931.95","-","2.05","0.22","35,38,998","332.71","1,063.00","761.75","1.15","14.31"
|
21 |
+
"AMBUJACEM","551.90","561.90","547.00","548.80","550.00","-","1.20","0.22","38,59,868","214.68","706.95","453.05","1.60","-1.49"
|
22 |
+
"TCS","4,104.00","4,178.00","4,104.00","4,145.45","4,153.10","-","7.65","0.18","19,10,099","793.76","4,592.25","3,591.50","-0.65","8.98"
|
23 |
+
"NTPC","324.80","329.90","322.10","323.65","324.00","-","0.35","0.11","74,92,600","243.87","448.45","296.85","-3.47","2.83"
|
24 |
+
"BAJAJ-AUTO","8,414.40","8,489.95","8,360.00","8,399.95","8,409.00","-","9.05","0.11","2,32,317","196.03","12,774.00","7,028.20","-4.29","10.58"
|
25 |
+
"TATASTEEL","130.50","133.20","129.31","130.37","130.50","-","0.13","0.10","3,70,92,106","485.94","184.60","122.62","-7.58","-3.00"
|
26 |
+
"TATAPOWER","362.75","370.70","362.20","362.75","363.00","-","0.25","0.07","79,66,520","291.85","494.85","338.40","-9.01","-0.47"
|
27 |
+
"HDFCLIFE","620.55","625.00","613.30","621.00","621.30","-","0.30","0.05","17,93,560","111.34","761.20","511.40","-0.22","7.27"
|
28 |
+
"TITAN","3,407.00","3,447.65","3,380.45","3,398.55","3,398.00","-","-0.55","-0.02","5,64,244","192.20","3,886.95","3,055.65","1.45","-9.76"
|
29 |
+
"HINDALCO","608.70","615.35","599.90","608.25","607.60","-","-0.65","-0.11","46,08,870","280.23","772.65","496.35","-3.28","7.00"
|
30 |
+
"BAJFINANCE","7,443.25","7,505.00","7,338.30","7,443.25","7,430.00","-","-13.25","-0.18","6,79,687","506.11","7,824.00","6,187.80","9.26","4.98"
|
31 |
+
"SBIN","749.90","753.70","739.00","745.90","744.50","-","-1.40","-0.19","1,05,79,213","789.54","912.00","603.10","-8.36","21.44"
|
32 |
+
"AXISBANK","948.00","961.80","946.10","951.05","948.55","-","-2.50","-0.26","1,44,21,921","1,376.02","1,339.65","946.10","-12.09","-8.99"
|
33 |
+
"DABUR","524.65","527.00","518.60","524.60","522.35","-","-2.25","-0.43","10,31,251","53.89","672.00","489.20","2.29","-1.87"
|
34 |
+
"LTIM","6,023.60","6,047.95","5,961.60","6,002.05","5,975.00","-","-27.05","-0.45","2,19,285","131.77","6,767.95","4,513.55","4.76","9.16"
|
35 |
+
"TORNTPHARM","3,270.75","3,283.85","3,210.00","3,263.75","3,248.90","-","-14.85","-0.45","3,91,085","126.81","3,590.70","2,414.00","-4.44","31.33"
|
36 |
+
"COALINDIA","386.05","392.25","381.70","385.80","384.00","-","-1.80","-0.47","53,51,964","206.47","543.55","361.25","-0.38","-1.63"
|
37 |
+
"DMART","3,598.00","3,608.50","3,535.00","3,598.35","3,581.35","-","-17.00","-0.47","2,88,983","103.33","5,484.85","3,399.00","3.48","-4.13"
|
38 |
+
"IRFC","141.60","143.18","139.00","141.37","140.68","-","-0.69","-0.49","1,58,43,304","222.88","229.00","116.65","-4.86","-19.08"
|
39 |
+
"ASIANPAINT","2,283.00","2,296.55","2,255.05","2,276.35","2,263.50","-","-12.85","-0.56","5,43,217","123.52","3,394.90","2,207.80","-0.95","-23.29"
|
40 |
+
"KOTAKBANK","1,891.00","1,918.50","1,873.05","1,894.85","1,883.40","-","-11.45","-0.60","40,25,366","763.23","1,942.00","1,543.85","7.84","6.66"
|
41 |
+
"HCLTECH","1,800.00","1,829.40","1,791.10","1,807.00","1,796.00","-","-11.00","-0.61","31,71,259","571.83","2,012.20","1,235.00","-5.49","15.65"
|
42 |
+
"SHREECEM","25,926.80","26,393.40","25,646.80","25,926.80","25,748.00","-","-178.80","-0.69","31,358","81.60","30,737.75","23,500.00","-3.46","-7.75"
|
43 |
+
"ICICIPRULI","595.00","600.85","586.90","594.70","590.00","-","-4.70","-0.79","15,67,073","92.86","796.80","480.00","-10.74","21.43"
|
44 |
+
"MARUTI","11,930.00","12,093.00","11,914.10","12,045.75","11,949.35","-","-96.40","-0.80","3,10,343","372.11","13,680.00","9,755.00","11.47","21.12"
|
45 |
+
"VEDL","446.00","453.50","440.45","446.50","442.75","-","-3.75","-0.84","47,58,741","212.41","526.95","249.50","-4.35","67.68"
|
46 |
+
"SUNPHARMA","1,829.00","1,843.10","1,808.20","1,833.60","1,818.00","-","-15.60","-0.85","12,77,935","232.87","1,960.35","1,348.50","0.18","33.17"
|
47 |
+
"IOC","130.99","132.75","127.90","129.83","128.61","-","-1.22","-0.94","1,26,30,632","164.11","196.80","121.16","-7.24","-10.74"
|
48 |
+
"BAJAJFINSV","1,751.00","1,754.90","1,725.00","1,746.15","1,729.55","-","-16.60","-0.95","7,47,930","129.90","2,029.90","1,419.05","10.49","6.05"
|
49 |
+
"ADANIPORTS","1,104.15","1,115.00","1,088.25","1,104.00","1,093.50","-","-10.50","-0.95","24,00,140","264.20","1,621.40","995.65","-7.45","-4.55"
|
50 |
+
"SHRIRAMFIN","531.95","541.80","509.15","529.80","524.65","-","-5.15","-0.97","76,02,501","403.72","730.45","438.60","-81.70","-77.14"
|
51 |
+
"SBILIFE","1,451.30","1,455.60","1,418.15","1,449.85","1,435.00","-","-14.85","-1.02","15,04,123","216.68","1,936.00","1,307.70","3.85","4.31"
|
52 |
+
"IRCTC","799.20","802.50","784.30","795.20","787.00","-","-8.20","-1.03","13,03,909","103.57","1,138.90","743.75","-0.16","-18.84"
|
53 |
+
"ICICIGI","1,839.00","1,841.85","1,805.00","1,834.10","1,815.00","-","-19.10","-1.04","4,29,489","78.17","2,301.90","1,468.80","-2.85","22.50"
|
54 |
+
"ULTRACEMCO","11,251.00","11,609.70","11,222.40","11,420.90","11,300.00","-","-120.90","-1.06","5,45,939","621.45","12,145.35","9,250.00","-0.92","13.21"
|
55 |
+
"HDFCBANK","1,660.00","1,670.30","1,644.50","1,664.90","1,645.00","-","-19.90","-1.20","1,21,18,100","2,009.99","1,880.00","1,363.55","-8.25","14.98"
|
56 |
+
"ADANIPOWER","522.55","528.80","509.00","521.80","515.50","-","-6.30","-1.21","49,43,171","255.83","895.85","432.00","3.80","-"
|
57 |
+
"HEROMOTOCO","4,105.05","4,125.00","4,041.10","4,100.35","4,049.90","-","-50.45","-1.23","2,16,273","88.17","6,246.25","3,997.50","-4.86","-8.79"
|
58 |
+
"LT","3,514.50","3,521.10","3,446.05","3,503.25","3,459.80","-","-43.45","-1.24","12,06,454","419.94","3,963.50","3,175.05","-4.99","-3.76"
|
59 |
+
"JINDALSTEL","899.00","908.00","881.00","893.00","881.55","-","-11.45","-1.28","20,53,984","183.22","1,097.00","687.80","-6.35","23.24"
|
60 |
+
"GODREJCP","1,145.95","1,147.95","1,125.40","1,145.20","1,130.00","-","-15.20","-1.33","3,77,449","42.76","1,541.85","1,055.05","4.88","-2.33"
|
61 |
+
"BEL","273.95","276.70","268.80","273.95","270.30","-","-3.65","-1.33","1,01,64,897","277.00","340.50","171.75","-7.63","42.41"
|
62 |
+
"MOTHERSON","145.16","146.01","142.38","144.97","143.03","-","-1.94","-1.34","70,07,575","100.73","216.99","104.20","-9.05","23.91"
|
63 |
+
"JSWENERGY","555.00","564.00","538.10","552.10","544.55","-","-7.55","-1.37","21,08,004","115.85","804.90","452.20","-16.03","11.59"
|
64 |
+
"TVSMOTOR","2,301.00","2,307.30","2,258.00","2,300.10","2,268.45","-","-31.65","-1.38","5,76,285","130.89","2,958.00","1,873.00","-6.45","16.98"
|
65 |
+
"NAUKRI","7,525.50","7,564.00","7,430.15","7,535.50","7,430.35","-","-105.15","-1.40","1,37,875","103.19","9,128.90","4,862.20","-14.14","49.46"
|
66 |
+
"CANBK","98.15","98.68","96.41","98.15","96.70","-","-1.45","-1.48","1,26,10,574","122.88","128.90","87.79","-3.78","-79.21"
|
67 |
+
"DIVISLAB","5,850.00","5,900.40","5,707.30","5,850.95","5,764.00","-","-86.95","-1.49","3,87,486","224.39","6,285.45","3,350.00","-0.34","61.02"
|
68 |
+
"RELIANCE","1,266.00","1,273.00","1,243.50","1,263.65","1,244.45","-","-19.20","-1.52","1,42,35,970","1,782.71","1,608.80","1,201.50","1.93","-53.95"
|
69 |
+
"CHOLAFIN","1,247.50","1,252.35","1,215.65","1,246.05","1,224.50","-","-21.55","-1.73","11,18,698","137.79","1,652.00","1,011.20","3.17","-1.74"
|
70 |
+
"ONGC","262.99","265.64","255.75","263.05","258.25","-","-4.80","-1.82","63,06,281","163.53","345.00","223.00","7.35","9.60"
|
71 |
+
"BANKBARODA","228.36","230.01","224.60","229.16","224.97","-","-4.19","-1.83","74,98,269","170.44","299.70","216.35","-8.06","-0.81"
|
72 |
+
"LICI","839.50","839.90","820.00","837.25","821.60","-","-15.65","-1.87","5,29,524","43.84","1,222.00","806.85","-7.79","-9.10"
|
73 |
+
"HAL","3,940.00","3,974.05","3,836.25","3,922.55","3,848.45","-","-74.10","-1.89","11,49,113","446.69","5,674.75","2,820.00","-8.69","32.58"
|
74 |
+
"BOSCHLTD","30,900.00","31,113.50","30,240.00","30,990.50","30,395.00","-","-595.50","-1.92","15,495","47.39","39,088.80","22,315.20","-11.77","33.26"
|
75 |
+
"PIDILITIND","2,909.65","2,943.00","2,841.00","2,909.65","2,853.50","-","-56.15","-1.93","3,00,150","86.44","3,415.00","2,503.25","-3.88","10.21"
|
76 |
+
"NHPC","78.40","78.81","76.75","78.46","76.93","-","-1.53","-1.95","83,28,267","64.60","118.40","72.15","-6.30","-7.71"
|
77 |
+
"ADANIGREEN","1,037.25","1,065.00","1,006.00","1,030.25","1,009.00","-","-21.25","-2.06","49,78,974","512.93","2,174.10","870.25","-1.84","-39.21"
|
78 |
+
"UNITDSPR","1,536.00","1,549.00","1,461.35","1,500.65","1,469.55","-","-31.10","-2.07","19,68,647","292.56","1,700.00","1,054.70","-6.07","-"
|
79 |
+
"PNB","99.25","99.79","96.51","99.43","97.34","-","-2.09","-2.10","2,68,93,329","263.66","142.90","92.40","-3.96","-6.58"
|
80 |
+
"INDUSINDBK","970.85","973.00","948.25","970.95","950.00","-","-20.95","-2.16","29,38,649","281.84","1,576.35","926.45","1.66","-37.12"
|
81 |
+
GAIL,"178.81","180.09","175.34","179.66","175.71","-","-3.95","-2.20","62,35,286","110.03","246.30","156.20","-11.22","6.31"
|
82 |
+
"UNIONBANK","109.92","110.00","106.50","109.70","107.22","-","-2.48","-2.26","52,16,313","56.30","172.50","100.81","-9.19","-23.55"
|
83 |
+
ABB,"6,360.00","6,379.90","6,152.30","6,330.25","6,174.00","-","-156.25","-2.47","1,45,838","90.89","9,149.95","4,340.30","-10.17","30.38"
|
84 |
+
"CIPLA","1,445.25","1,451.00","1,408.00","1,451.15","1,415.00","-","-36.15","-2.49","16,15,412","230.94","1,702.05","1,312.00","-4.36","3.05"
|
85 |
+
"TATAMOTORS","750.05","754.15","732.20","752.50","733.40","-","-19.10","-2.54","95,13,166","704.64","1,179.00","717.70","-0.27","-9.58"
|
86 |
+
"APOLLOHOSP","6,915.25","6,915.25","6,728.45","6,920.85","6,742.00","-","-178.85","-2.58","3,17,194","215.44","7,545.35","5,693.20","-6.84","9.34"
|
87 |
+
"ATGL","660.00","663.70","638.00","658.25","641.05","-","-17.20","-2.61","4,69,301","30.41","1,190.00","545.75","-4.39","-36.04"
|
88 |
+
"ADANIENSOL","814.00","816.00","781.00","808.80","787.00","-","-21.80","-2.70","27,73,445","219.77","1,348.00","588.00","2.48","-25.56"
|
89 |
+
"BHEL","207.00","208.66","199.50","206.49","200.80","-","-5.69","-2.76","93,44,993","189.91","335.35","191.66","-16.36","-8.96"
|
90 |
+
"ZOMATO","221.00","221.00","214.60","221.95","215.45","-","-6.50","-2.93","4,39,01,547","956.09","304.70","129.80","-21.56","58.35"
|
91 |
+
"BPCL","274.00","279.40","263.00","271.25","263.25","-","-8.00","-2.95","1,84,80,516","500.05","376.00","231.65","-9.66","-44.39"
|
92 |
+
"ADANIENT","2,387.75","2,406.00","2,299.40","2,385.00","2,314.05","-","-70.95","-2.97","13,88,583","326.32","3,743.90","2,025.00","-2.42","-19.99"
|
93 |
+
"ZYDUSLIFE","989.05","989.05","955.00","989.15","959.30","-","-29.85","-3.02","7,80,860","75.29","1,324.30","726.45","-0.75","30.02"
|
94 |
+
"M&M","2,875.00","2,896.00","2,790.00","2,886.45","2,799.00","-","-87.45","-3.03","26,65,366","758.32","3,237.05","1,575.00","-4.35","71.29"
|
95 |
+
"SIEMENS","6,050.00","6,067.00","5,834.20","6,067.85","5,880.00","-","-187.85","-3.10","2,47,172","146.60","8,129.90","4,029.45","-11.65","39.81"
|
96 |
+
"DLF","718.00","720.00","691.10","715.05","692.80","-","-22.25","-3.11","34,32,119","242.09","967.60","687.05","-17.40","-8.36"
|
97 |
+
"PFC","421.30","423.70","407.10","421.25","407.95","-","-13.30","-3.16","55,21,223","227.74","580.00","351.70","-9.49","-2.53"
|
98 |
+
"RECLTD","463.75","466.25","445.00","463.75","446.65","-","-17.10","-3.69","67,38,912","304.88","654.00","408.30","-12.05","-5.08"
|
99 |
+
"HAVELLS","1,595.30","1,605.95","1,517.55","1,595.30","1,533.45","-","-61.85","-3.88","9,99,025","154.22","2,106.00","1,280.00","-9.02","18.05"
|
100 |
+
"TRENT","5,720.00","5,755.05","5,466.45","5,733.60","5,499.00","-","-234.60","-4.09","11,19,070","627.17","8,345.00","2,955.00","-21.65","69.89"
|
101 |
+
"JIOFIN","256.00","257.35","243.55","255.85","243.90","-","-11.95","-4.67","3,83,79,153","951.96","394.70","237.10","-19.77","1.92"
|
102 |
+
"DRREDDY","1,229.95","1,252.65","1,203.50","1,289.40","1,226.20","-","-63.20","-4.90","70,82,467","868.02","1,421.49","1,120.00","-9.36","-79.09"
|
data/ind_nifty200list.csv
ADDED
@@ -0,0 +1,202 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Company Name,Industry,Symbol,Series,ISIN Code
|
2 |
+
ABB India Ltd.,Capital Goods,ABB,EQ,INE117A01022
|
3 |
+
ACC Ltd.,Construction Materials,ACC,EQ,INE012A01025
|
4 |
+
APL Apollo Tubes Ltd.,Capital Goods,APLAPOLLO,EQ,INE702C01027
|
5 |
+
AU Small Finance Bank Ltd.,Financial Services,AUBANK,EQ,INE949L01017
|
6 |
+
Adani Energy Solutions Ltd.,Power,ADANIENSOL,EQ,INE931S01010
|
7 |
+
Adani Enterprises Ltd.,Metals & Mining,ADANIENT,EQ,INE423A01024
|
8 |
+
Adani Green Energy Ltd.,Power,ADANIGREEN,EQ,INE364U01010
|
9 |
+
Adani Ports and Special Economic Zone Ltd.,Services,ADANIPORTS,EQ,INE742F01042
|
10 |
+
Adani Power Ltd.,Power,ADANIPOWER,EQ,INE814H01011
|
11 |
+
Adani Total Gas Ltd.,Oil Gas & Consumable Fuels,ATGL,EQ,INE399L01023
|
12 |
+
Aditya Birla Capital Ltd.,Financial Services,ABCAPITAL,EQ,INE674K01013
|
13 |
+
Aditya Birla Fashion and Retail Ltd.,Consumer Services,ABFRL,EQ,INE647O01011
|
14 |
+
Alkem Laboratories Ltd.,Healthcare,ALKEM,EQ,INE540L01014
|
15 |
+
Ambuja Cements Ltd.,Construction Materials,AMBUJACEM,EQ,INE079A01024
|
16 |
+
Apollo Hospitals Enterprise Ltd.,Healthcare,APOLLOHOSP,EQ,INE437A01024
|
17 |
+
Apollo Tyres Ltd.,Automobile and Auto Components,APOLLOTYRE,EQ,INE438A01022
|
18 |
+
Ashok Leyland Ltd.,Capital Goods,ASHOKLEY,EQ,INE208A01029
|
19 |
+
Asian Paints Ltd.,Consumer Durables,ASIANPAINT,EQ,INE021A01026
|
20 |
+
Astral Ltd.,Capital Goods,ASTRAL,EQ,INE006I01046
|
21 |
+
Aurobindo Pharma Ltd.,Healthcare,AUROPHARMA,EQ,INE406A01037
|
22 |
+
Avenue Supermarts Ltd.,Consumer Services,DMART,EQ,INE192R01011
|
23 |
+
Axis Bank Ltd.,Financial Services,AXISBANK,EQ,INE238A01034
|
24 |
+
BSE Ltd.,Financial Services,BSE,EQ,INE118H01025
|
25 |
+
Bajaj Auto Ltd.,Automobile and Auto Components,BAJAJ-AUTO,EQ,INE917I01010
|
26 |
+
Bajaj Finance Ltd.,Financial Services,BAJFINANCE,EQ,INE296A01024
|
27 |
+
Bajaj Finserv Ltd.,Financial Services,BAJAJFINSV,EQ,INE918I01026
|
28 |
+
Bajaj Holdings & Investment Ltd.,Financial Services,BAJAJHLDNG,EQ,INE118A01012
|
29 |
+
Balkrishna Industries Ltd.,Automobile and Auto Components,BALKRISIND,EQ,INE787D01026
|
30 |
+
Bandhan Bank Ltd.,Financial Services,BANDHANBNK,EQ,INE545U01014
|
31 |
+
Bank of Baroda,Financial Services,BANKBARODA,EQ,INE028A01039
|
32 |
+
Bank of India,Financial Services,BANKINDIA,EQ,INE084A01016
|
33 |
+
Bank of Maharashtra,Financial Services,MAHABANK,EQ,INE457A01014
|
34 |
+
Bharat Dynamics Ltd.,Capital Goods,BDL,EQ,INE171Z01026
|
35 |
+
Bharat Electronics Ltd.,Capital Goods,BEL,EQ,INE263A01024
|
36 |
+
Bharat Forge Ltd.,Automobile and Auto Components,BHARATFORG,EQ,INE465A01025
|
37 |
+
Bharat Heavy Electricals Ltd.,Capital Goods,BHEL,EQ,INE257A01026
|
38 |
+
Bharat Petroleum Corporation Ltd.,Oil Gas & Consumable Fuels,BPCL,EQ,INE029A01011
|
39 |
+
Bharti Airtel Ltd.,Telecommunication,BHARTIARTL,EQ,INE397D01024
|
40 |
+
Bharti Hexacom Ltd.,Telecommunication,BHARTIHEXA,EQ,INE343G01021
|
41 |
+
Biocon Ltd.,Healthcare,BIOCON,EQ,INE376G01013
|
42 |
+
Bosch Ltd.,Automobile and Auto Components,BOSCHLTD,EQ,INE323A01026
|
43 |
+
Britannia Industries Ltd.,Fast Moving Consumer Goods,BRITANNIA,EQ,INE216A01030
|
44 |
+
CG Power and Industrial Solutions Ltd.,Capital Goods,CGPOWER,EQ,INE067A01029
|
45 |
+
Canara Bank,Financial Services,CANBK,EQ,INE476A01022
|
46 |
+
Cholamandalam Investment and Finance Company Ltd.,Financial Services,CHOLAFIN,EQ,INE121A01024
|
47 |
+
Cipla Ltd.,Healthcare,CIPLA,EQ,INE059A01026
|
48 |
+
Coal India Ltd.,Oil Gas & Consumable Fuels,COALINDIA,EQ,INE522F01014
|
49 |
+
Cochin Shipyard Ltd.,Capital Goods,COCHINSHIP,EQ,INE704P01025
|
50 |
+
Coforge Ltd.,Information Technology,COFORGE,EQ,INE591G01017
|
51 |
+
Colgate Palmolive (India) Ltd.,Fast Moving Consumer Goods,COLPAL,EQ,INE259A01022
|
52 |
+
Container Corporation of India Ltd.,Services,CONCOR,EQ,INE111A01025
|
53 |
+
Cummins India Ltd.,Capital Goods,CUMMINSIND,EQ,INE298A01020
|
54 |
+
DLF Ltd.,Realty,DLF,EQ,INE271C01023
|
55 |
+
Dabur India Ltd.,Fast Moving Consumer Goods,DABUR,EQ,INE016A01026
|
56 |
+
Delhivery Ltd.,Services,DELHIVERY,EQ,INE148O01028
|
57 |
+
Divi's Laboratories Ltd.,Healthcare,DIVISLAB,EQ,INE361B01024
|
58 |
+
Dixon Technologies (India) Ltd.,Consumer Durables,DIXON,EQ,INE935N01020
|
59 |
+
Dr. Reddy's Laboratories Ltd.,Healthcare,DRREDDY,EQ,INE089A01031
|
60 |
+
Dummy ITC Ltd.,Consumer Services,DUMMYITC,EQ,DUM154A01025
|
61 |
+
Eicher Motors Ltd.,Automobile and Auto Components,EICHERMOT,EQ,INE066A01021
|
62 |
+
Escorts Kubota Ltd.,Capital Goods,ESCORTS,EQ,INE042A01014
|
63 |
+
Exide Industries Ltd.,Automobile and Auto Components,EXIDEIND,EQ,INE302A01020
|
64 |
+
FSN E-Commerce Ventures Ltd.,Consumer Services,NYKAA,EQ,INE388Y01029
|
65 |
+
Federal Bank Ltd.,Financial Services,FEDERALBNK,EQ,INE171A01029
|
66 |
+
Fertilisers and Chemicals Travancore Ltd.,Chemicals,FACT,EQ,INE188A01015
|
67 |
+
GAIL (India) Ltd.,Oil Gas & Consumable Fuels,GAIL,EQ,INE129A01019
|
68 |
+
GMR Airports Ltd.,Services,GMRAIRPORT,EQ,INE776C01039
|
69 |
+
Godrej Consumer Products Ltd.,Fast Moving Consumer Goods,GODREJCP,EQ,INE102D01028
|
70 |
+
Godrej Properties Ltd.,Realty,GODREJPROP,EQ,INE484J01027
|
71 |
+
Grasim Industries Ltd.,Construction Materials,GRASIM,EQ,INE047A01021
|
72 |
+
HCL Technologies Ltd.,Information Technology,HCLTECH,EQ,INE860A01027
|
73 |
+
HDFC Asset Management Company Ltd.,Financial Services,HDFCAMC,EQ,INE127D01025
|
74 |
+
HDFC Bank Ltd.,Financial Services,HDFCBANK,EQ,INE040A01034
|
75 |
+
HDFC Life Insurance Company Ltd.,Financial Services,HDFCLIFE,EQ,INE795G01014
|
76 |
+
Havells India Ltd.,Consumer Durables,HAVELLS,EQ,INE176B01034
|
77 |
+
Hero MotoCorp Ltd.,Automobile and Auto Components,HEROMOTOCO,EQ,INE158A01026
|
78 |
+
Hindalco Industries Ltd.,Metals & Mining,HINDALCO,EQ,INE038A01020
|
79 |
+
Hindustan Aeronautics Ltd.,Capital Goods,HAL,EQ,INE066F01020
|
80 |
+
Hindustan Petroleum Corporation Ltd.,Oil Gas & Consumable Fuels,HINDPETRO,EQ,INE094A01015
|
81 |
+
Hindustan Unilever Ltd.,Fast Moving Consumer Goods,HINDUNILVR,EQ,INE030A01027
|
82 |
+
Hindustan Zinc Ltd.,Metals & Mining,HINDZINC,EQ,INE267A01025
|
83 |
+
Housing & Urban Development Corporation Ltd.,Financial Services,HUDCO,EQ,INE031A01017
|
84 |
+
ICICI Bank Ltd.,Financial Services,ICICIBANK,EQ,INE090A01021
|
85 |
+
ICICI Lombard General Insurance Company Ltd.,Financial Services,ICICIGI,EQ,INE765G01017
|
86 |
+
ICICI Prudential Life Insurance Company Ltd.,Financial Services,ICICIPRULI,EQ,INE726G01019
|
87 |
+
IDBI Bank Ltd.,Financial Services,IDBI,EQ,INE008A01015
|
88 |
+
IDFC First Bank Ltd.,Financial Services,IDFCFIRSTB,EQ,INE092T01019
|
89 |
+
IRB Infrastructure Developers Ltd.,Construction,IRB,EQ,INE821I01022
|
90 |
+
ITC Ltd.,Fast Moving Consumer Goods,ITC,EQ,INE154A01025
|
91 |
+
Indian Bank,Financial Services,INDIANB,EQ,INE562A01011
|
92 |
+
Indian Hotels Co. Ltd.,Consumer Services,INDHOTEL,EQ,INE053A01029
|
93 |
+
Indian Oil Corporation Ltd.,Oil Gas & Consumable Fuels,IOC,EQ,INE242A01010
|
94 |
+
Indian Overseas Bank,Financial Services,IOB,EQ,INE565A01014
|
95 |
+
Indian Railway Catering And Tourism Corporation Ltd.,Consumer Services,IRCTC,EQ,INE335Y01020
|
96 |
+
Indian Railway Finance Corporation Ltd.,Financial Services,IRFC,EQ,INE053F01010
|
97 |
+
Indian Renewable Energy Development Agency Ltd.,Financial Services,IREDA,EQ,INE202E01016
|
98 |
+
Indraprastha Gas Ltd.,Oil Gas & Consumable Fuels,IGL,EQ,INE203G01027
|
99 |
+
Indus Towers Ltd.,Telecommunication,INDUSTOWER,EQ,INE121J01017
|
100 |
+
IndusInd Bank Ltd.,Financial Services,INDUSINDBK,EQ,INE095A01012
|
101 |
+
Info Edge (India) Ltd.,Consumer Services,NAUKRI,EQ,INE663F01024
|
102 |
+
Infosys Ltd.,Information Technology,INFY,EQ,INE009A01021
|
103 |
+
InterGlobe Aviation Ltd.,Services,INDIGO,EQ,INE646L01027
|
104 |
+
JSW Energy Ltd.,Power,JSWENERGY,EQ,INE121E01018
|
105 |
+
JSW Infrastructure Ltd.,Services,JSWINFRA,EQ,INE880J01026
|
106 |
+
JSW Steel Ltd.,Metals & Mining,JSWSTEEL,EQ,INE019A01038
|
107 |
+
Jindal Steel & Power Ltd.,Metals & Mining,JINDALSTEL,EQ,INE749A01030
|
108 |
+
Jio Financial Services Ltd.,Financial Services,JIOFIN,EQ,INE758E01017
|
109 |
+
Jubilant Foodworks Ltd.,Consumer Services,JUBLFOOD,EQ,INE797F01020
|
110 |
+
KPIT Technologies Ltd.,Information Technology,KPITTECH,EQ,INE04I401011
|
111 |
+
Kalyan Jewellers India Ltd.,Consumer Durables,KALYANKJIL,EQ,INE303R01014
|
112 |
+
Kotak Mahindra Bank Ltd.,Financial Services,KOTAKBANK,EQ,INE237A01028
|
113 |
+
L&T Finance Ltd.,Financial Services,LTF,EQ,INE498L01015
|
114 |
+
LIC Housing Finance Ltd.,Financial Services,LICHSGFIN,EQ,INE115A01026
|
115 |
+
LTIMindtree Ltd.,Information Technology,LTIM,EQ,INE214T01019
|
116 |
+
Larsen & Toubro Ltd.,Construction,LT,EQ,INE018A01030
|
117 |
+
Life Insurance Corporation of India,Financial Services,LICI,EQ,INE0J1Y01017
|
118 |
+
Lupin Ltd.,Healthcare,LUPIN,EQ,INE326A01037
|
119 |
+
MRF Ltd.,Automobile and Auto Components,MRF,EQ,INE883A01011
|
120 |
+
Macrotech Developers Ltd.,Realty,LODHA,EQ,INE670K01029
|
121 |
+
Mahindra & Mahindra Financial Services Ltd.,Financial Services,M&MFIN,EQ,INE774D01024
|
122 |
+
Mahindra & Mahindra Ltd.,Automobile and Auto Components,M&M,EQ,INE101A01026
|
123 |
+
Mangalore Refinery & Petrochemicals Ltd.,Oil Gas & Consumable Fuels,MRPL,EQ,INE103A01014
|
124 |
+
Mankind Pharma Ltd.,Healthcare,MANKIND,EQ,INE634S01028
|
125 |
+
Marico Ltd.,Fast Moving Consumer Goods,MARICO,EQ,INE196A01026
|
126 |
+
Maruti Suzuki India Ltd.,Automobile and Auto Components,MARUTI,EQ,INE585B01010
|
127 |
+
Max Financial Services Ltd.,Financial Services,MFSL,EQ,INE180A01020
|
128 |
+
Max Healthcare Institute Ltd.,Healthcare,MAXHEALTH,EQ,INE027H01010
|
129 |
+
Mazagoan Dock Shipbuilders Ltd.,Capital Goods,MAZDOCK,EQ,INE249Z01020
|
130 |
+
MphasiS Ltd.,Information Technology,MPHASIS,EQ,INE356A01018
|
131 |
+
Muthoot Finance Ltd.,Financial Services,MUTHOOTFIN,EQ,INE414G01012
|
132 |
+
NHPC Ltd.,Power,NHPC,EQ,INE848E01016
|
133 |
+
NLC India Ltd.,Power,NLCINDIA,EQ,INE589A01014
|
134 |
+
NMDC Ltd.,Metals & Mining,NMDC,EQ,INE584A01023
|
135 |
+
NTPC Ltd.,Power,NTPC,EQ,INE733E01010
|
136 |
+
Nestle India Ltd.,Fast Moving Consumer Goods,NESTLEIND,EQ,INE239A01024
|
137 |
+
Oberoi Realty Ltd.,Realty,OBEROIRLTY,EQ,INE093I01010
|
138 |
+
Oil & Natural Gas Corporation Ltd.,Oil Gas & Consumable Fuels,ONGC,EQ,INE213A01029
|
139 |
+
Oil India Ltd.,Oil Gas & Consumable Fuels,OIL,EQ,INE274J01014
|
140 |
+
One 97 Communications Ltd.,Financial Services,PAYTM,EQ,INE982J01020
|
141 |
+
Oracle Financial Services Software Ltd.,Information Technology,OFSS,EQ,INE881D01027
|
142 |
+
PB Fintech Ltd.,Financial Services,POLICYBZR,EQ,INE417T01026
|
143 |
+
PI Industries Ltd.,Chemicals,PIIND,EQ,INE603J01030
|
144 |
+
Page Industries Ltd.,Textiles,PAGEIND,EQ,INE761H01022
|
145 |
+
Patanjali Foods Ltd.,Fast Moving Consumer Goods,PATANJALI,EQ,INE619A01035
|
146 |
+
Persistent Systems Ltd.,Information Technology,PERSISTENT,EQ,INE262H01021
|
147 |
+
Petronet LNG Ltd.,Oil Gas & Consumable Fuels,PETRONET,EQ,INE347G01014
|
148 |
+
Phoenix Mills Ltd.,Realty,PHOENIXLTD,EQ,INE211B01039
|
149 |
+
Pidilite Industries Ltd.,Chemicals,PIDILITIND,EQ,INE318A01026
|
150 |
+
Polycab India Ltd.,Capital Goods,POLYCAB,EQ,INE455K01017
|
151 |
+
Poonawalla Fincorp Ltd.,Financial Services,POONAWALLA,EQ,INE511C01022
|
152 |
+
Power Finance Corporation Ltd.,Financial Services,PFC,EQ,INE134E01011
|
153 |
+
Power Grid Corporation of India Ltd.,Power,POWERGRID,EQ,INE752E01010
|
154 |
+
Prestige Estates Projects Ltd.,Realty,PRESTIGE,EQ,INE811K01011
|
155 |
+
Punjab National Bank,Financial Services,PNB,EQ,INE160A01022
|
156 |
+
REC Ltd.,Financial Services,RECLTD,EQ,INE020B01018
|
157 |
+
Rail Vikas Nigam Ltd.,Construction,RVNL,EQ,INE415G01027
|
158 |
+
Reliance Industries Ltd.,Oil Gas & Consumable Fuels,RELIANCE,EQ,INE002A01018
|
159 |
+
SBI Cards and Payment Services Ltd.,Financial Services,SBICARD,EQ,INE018E01016
|
160 |
+
SBI Life Insurance Company Ltd.,Financial Services,SBILIFE,EQ,INE123W01016
|
161 |
+
SJVN Ltd.,Power,SJVN,EQ,INE002L01015
|
162 |
+
SRF Ltd.,Chemicals,SRF,EQ,INE647A01010
|
163 |
+
Samvardhana Motherson International Ltd.,Automobile and Auto Components,MOTHERSON,EQ,INE775A01035
|
164 |
+
Shree Cement Ltd.,Construction Materials,SHREECEM,EQ,INE070A01015
|
165 |
+
Shriram Finance Ltd.,Financial Services,SHRIRAMFIN,EQ,INE721A01047
|
166 |
+
Siemens Ltd.,Capital Goods,SIEMENS,EQ,INE003A01024
|
167 |
+
Solar Industries India Ltd.,Chemicals,SOLARINDS,EQ,INE343H01029
|
168 |
+
Sona BLW Precision Forgings Ltd.,Automobile and Auto Components,SONACOMS,EQ,INE073K01018
|
169 |
+
State Bank of India,Financial Services,SBIN,EQ,INE062A01020
|
170 |
+
Steel Authority of India Ltd.,Metals & Mining,SAIL,EQ,INE114A01011
|
171 |
+
Sun Pharmaceutical Industries Ltd.,Healthcare,SUNPHARMA,EQ,INE044A01036
|
172 |
+
Sundaram Finance Ltd.,Financial Services,SUNDARMFIN,EQ,INE660A01013
|
173 |
+
Supreme Industries Ltd.,Capital Goods,SUPREMEIND,EQ,INE195A01028
|
174 |
+
Suzlon Energy Ltd.,Capital Goods,SUZLON,EQ,INE040H01021
|
175 |
+
TVS Motor Company Ltd.,Automobile and Auto Components,TVSMOTOR,EQ,INE494B01023
|
176 |
+
Tata Chemicals Ltd.,Chemicals,TATACHEM,EQ,INE092A01019
|
177 |
+
Tata Communications Ltd.,Telecommunication,TATACOMM,EQ,INE151A01013
|
178 |
+
Tata Consultancy Services Ltd.,Information Technology,TCS,EQ,INE467B01029
|
179 |
+
Tata Consumer Products Ltd.,Fast Moving Consumer Goods,TATACONSUM,EQ,INE192A01025
|
180 |
+
Tata Elxsi Ltd.,Information Technology,TATAELXSI,EQ,INE670A01012
|
181 |
+
Tata Motors Ltd.,Automobile and Auto Components,TATAMOTORS,EQ,INE155A01022
|
182 |
+
Tata Power Co. Ltd.,Power,TATAPOWER,EQ,INE245A01021
|
183 |
+
Tata Steel Ltd.,Metals & Mining,TATASTEEL,EQ,INE081A01020
|
184 |
+
Tata Technologies Ltd.,Information Technology,TATATECH,EQ,INE142M01025
|
185 |
+
Tech Mahindra Ltd.,Information Technology,TECHM,EQ,INE669C01036
|
186 |
+
Titan Company Ltd.,Consumer Durables,TITAN,EQ,INE280A01028
|
187 |
+
Torrent Pharmaceuticals Ltd.,Healthcare,TORNTPHARM,EQ,INE685A01028
|
188 |
+
Torrent Power Ltd.,Power,TORNTPOWER,EQ,INE813H01021
|
189 |
+
Trent Ltd.,Consumer Services,TRENT,EQ,INE849A01020
|
190 |
+
Tube Investments of India Ltd.,Automobile and Auto Components,TIINDIA,EQ,INE974X01010
|
191 |
+
UPL Ltd.,Chemicals,UPL,EQ,INE628A01036
|
192 |
+
UltraTech Cement Ltd.,Construction Materials,ULTRACEMCO,EQ,INE481G01011
|
193 |
+
Union Bank of India,Financial Services,UNIONBANK,EQ,INE692A01016
|
194 |
+
United Spirits Ltd.,Fast Moving Consumer Goods,UNITDSPR,EQ,INE854D01024
|
195 |
+
Varun Beverages Ltd.,Fast Moving Consumer Goods,VBL,EQ,INE200M01039
|
196 |
+
Vedanta Ltd.,Metals & Mining,VEDL,EQ,INE205A01025
|
197 |
+
Vodafone Idea Ltd.,Telecommunication,IDEA,EQ,INE669E01016
|
198 |
+
Voltas Ltd.,Consumer Durables,VOLTAS,EQ,INE226A01021
|
199 |
+
Wipro Ltd.,Information Technology,WIPRO,EQ,INE075A01022
|
200 |
+
Yes Bank Ltd.,Financial Services,YESBANK,EQ,INE528G01035
|
201 |
+
Zomato Ltd.,Consumer Services,ZOMATO,EQ,INE758T01015
|
202 |
+
Zydus Lifesciences Ltd.,Healthcare,ZYDUSLIFE,EQ,INE010B01027
|
data/ind_niftynext50list.csv
ADDED
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"SYMBOL","OPEN","HIGH","LOW","PREV. CLOSE","LTP","INDICATIVE CLOSE","CHNG","%CHNG","VOLUME (shares)","VALUE (₹ Crores)","52W H","52W L","30 D %CHNG",365 D % CHNG 25-Jan-2024
|
2 |
+
NIFTY NEXT 50,"63,574.70","63,755.10","62,388.60","63,499.75","62,494.00","-","-1,005.75","-1.58","26,46,30,006","10,080.89","77,918.00","55,463.50","-9.24","15.11"
|
3 |
+
LODHA,"1,077.00","1,109.00","1,076.00","1,082.30","1,100.00","-","17.70","1.64","25,66,066","281.53","1,649.95","977.35","-21.63","4.12"
|
4 |
+
"BAJAJHLDNG","11,160.05","11,310.00","11,101.40","11,198.30","11,290.00","-","91.70","0.82","28,427","32.03","13,238.00","7,659.95","2.19","37.77"
|
5 |
+
"INDIGO","4,162.10","4,269.80","4,126.05","4,134.80","4,162.25","-","27.45","0.66","14,81,820","621.17","5,035.00","2,847.00",-9.77,"45.36"
|
6 |
+
"VBL","539.00","548.70","536.90","540.40","541.60","-","1.20","0.22","30,64,139","165.99","681.12","488.40","-13.65","-56.92"
|
7 |
+
"AMBUJACEM","551.90","561.90","547.00","548.80","550.00","-","1.20","0.22","38,59,868","214.68","706.95","453.05","1.60","-1.49"
|
8 |
+
"TATAPOWER","362.75","370.70","362.20","362.75","363.00","-","0.25","0.07","79,66,520","291.85","494.85","338.40","-9.01","-0.47"
|
9 |
+
"DABUR","524.65","527.00","518.60","524.60","522.35","-","-2.25","-0.43","10,31,251","53.89","672.00","489.20","2.29","-1.87"
|
10 |
+
"LTIM","6,023.60","6,047.95","5,961.60","6,002.05","5,975.00","-","-27.05","-0.45","2,19,285","131.77","6,767.95","4,513.55","4.76","9.16"
|
11 |
+
"TORNTPHARM","3,270.75","3,283.85","3,210.00","3,263.75","3,248.90","-","-14.85","-0.45","3,91,085","126.81","3,590.70","2,414.00","-4.44","31.33"
|
12 |
+
"DMART","3,598.00","3,608.50","3,535.00","3,598.35","3,581.35","-","-17.00","-0.47","2,88,983","103.33","5,484.85","3,399.00","3.48","-4.13"
|
13 |
+
"IRFC","141.60","143.18","139.00","141.37","140.68","-","-0.69","-0.49","1,58,43,304","222.88","229.00","116.65","-4.86","-19.08"
|
14 |
+
"SHREECEM","25,926.80","26,393.40","25,646.80","25,926.80","25,748.00","-","-178.80","-0.69","31,358","81.60","30,737.75","23,500.00","-3.46","-7.75"
|
15 |
+
"ICICIPRULI","595.00","600.85","586.90","594.70","590.00","-","-4.70","-0.79","15,67,073","92.86","796.80","480.00","-10.74","21.43"
|
16 |
+
"VEDL","446.00","453.50","440.45","446.50","442.75","-","-3.75","-0.84","47,58,741","212.41","526.95","249.50","-4.35","67.68"
|
17 |
+
"IOC","130.99","132.75","127.90","129.83","128.61","-","-1.22","-0.94","1,26,30,632","164.11","196.80","121.16","-7.24","-10.74"
|
18 |
+
"IRCTC","799.20","802.50","784.30","795.20","787.00","-","-8.20","-1.03","13,03,909","103.57","1,138.90","743.75","-0.16","-18.84"
|
19 |
+
"ICICIGI","1,839.00","1,841.85","1,805.00","1,834.10","1,815.00","-","-19.10","-1.04","4,29,489","78.17","2,301.90","1,468.80","-2.85","22.50"
|
20 |
+
"ADANIPOWER","522.55","528.80","509.00","521.80","515.50","-","-6.30","-1.21","49,43,171","255.83","895.85","432.00","3.80","-"
|
21 |
+
"JINDALSTEL","899.00","908.00","881.00","893.00","881.55","-","-11.45","-1.28","20,53,984","183.22","1,097.00","687.80","-6.35","23.24"
|
22 |
+
"GODREJCP","1,145.95","1,147.95","1,125.40","1,145.20","1,130.00","-","-15.20","-1.33","3,77,449","42.76","1,541.85","1,055.05","4.88","-2.33"
|
23 |
+
"MOTHERSON","145.16","146.01","142.38","144.97","143.03","-","-1.94","-1.34","70,07,575","100.73","216.99","104.20","-9.05","23.91"
|
24 |
+
"JSWENERGY","555.00","564.00","538.10","552.10","544.55","-","-7.55","-1.37","21,08,004","115.85","804.90","452.20","-16.03","11.59"
|
25 |
+
"TVSMOTOR","2,301.00","2,307.30","2,258.00","2,300.10","2,268.45","-","-31.65","-1.38","5,76,285","130.89","2,958.00","1,873.00","-6.45","16.98"
|
26 |
+
"NAUKRI","7,525.50","7,564.00","7,430.15","7,535.50","7,430.35","-","-105.15","-1.40","1,37,875","103.19","9,128.90","4,862.20","-14.14","49.46"
|
27 |
+
"CANBK","98.15","98.68","96.41","98.15","96.70","-","-1.45","-1.48","1,26,10,574","122.88","128.90","87.79","-3.78","-79.21"
|
28 |
+
"DIVISLAB","5,850.00","5,900.40","5,707.30","5,850.95","5,764.00","-","-86.95","-1.49","3,87,486","224.39","6,285.45","3,350.00","-0.34","61.02"
|
29 |
+
"CHOLAFIN","1,247.50","1,252.35","1,215.65","1,246.05","1,224.50","-","-21.55","-1.73","11,18,698","137.79","1,652.00","1,011.20","3.17","-1.74"
|
30 |
+
"BANKBARODA","228.36","230.01","224.60","229.16","224.97","-","-4.19","-1.83","74,98,269","170.44","299.70","216.35","-8.06","-0.81"
|
31 |
+
"LICI","839.50","839.90","820.00","837.25","821.60","-","-15.65","-1.87","5,29,524","43.84","1,222.00","806.85","-7.79","-9.10"
|
32 |
+
"HAL","3,940.00","3,974.05","3,836.25","3,922.55","3,848.45","-","-74.10","-1.89","11,49,113","446.69","5,674.75","2,820.00","-8.69","32.58"
|
33 |
+
"BOSCHLTD","30,900.00","31,113.50","30,240.00","30,990.50","30,395.00","-","-595.50","-1.92","15,495","47.39","39,088.80","22,315.20","-11.77","33.26"
|
34 |
+
"PIDILITIND","2,909.65","2,943.00","2,841.00","2,909.65","2,853.50","-","-56.15","-1.93","3,00,150","86.44","3,415.00","2,503.25","-3.88","10.21"
|
35 |
+
"NHPC","78.40","78.81","76.75","78.46","76.93","-","-1.53","-1.95","83,28,267","64.60","118.40","72.15","-6.30","-7.71"
|
36 |
+
"ADANIGREEN","1,037.25","1,065.00","1,006.00","1,030.25","1,009.00","-","-21.25","-2.06","49,78,974","512.93","2,174.10","870.25","-1.84","-39.21"
|
37 |
+
"UNITDSPR","1,536.00","1,549.00","1,461.35","1,500.65","1,469.55","-","-31.10","-2.07","19,68,647","292.56","1,700.00","1,054.70","-6.07","-"
|
38 |
+
"PNB","99.25","99.79","96.51","99.43","97.34","-","-2.09","-2.10","2,68,93,329","263.66","142.90","92.40","-3.96","-6.58"
|
39 |
+
"GAIL","178.81","180.09","175.34","179.66","175.71","-","-3.95","-2.20","62,35,286","110.03","246.30","156.20","-11.22","6.31"
|
40 |
+
"UNIONBANK","109.92","110.00","106.50","109.70","107.22","-","-2.48","-2.26","52,16,313","56.30","172.50","100.81","-9.19","-23.55"
|
41 |
+
"ABB","6,360.00","6,379.90","6,152.30","6,330.25","6,174.00","-","-156.25","-2.47","1,45,838","90.89","9,149.95","4,340.30","-10.17","30.38"
|
42 |
+
"ATGL","660.00","663.70","638.00","658.25","641.05","-","-17.20","-2.61","4,69,301","30.41","1,190.00","545.75","-4.39","-36.04"
|
43 |
+
"ADANIENSOL","814.00","816.00","781.00","808.80","787.00","-","-21.80","-2.70","27,73,445","219.77","1,348.00","588.00","2.48","-25.56"
|
44 |
+
"BHEL","207.00","208.66","199.50","206.49","200.80","-","-5.69","-2.76","93,44,993","189.91","335.35","191.66","-16.36","-8.96"
|
45 |
+
"ZOMATO","221.00","221.00","214.60","221.95","215.45","-","-6.50","-2.93","4,39,01,547","956.09","304.70","129.80","-21.56","58.35"
|
46 |
+
"ZYDUSLIFE","989.05","989.05","955.00","989.15","959.30","-","-29.85","-3.02","7,80,860","75.29","1,324.30","726.45","-0.75","30.02"
|
47 |
+
SIEMENS,"6,050.00","6,067.00","5,834.20","6,067.85","5,880.00","-","-187.85","-3.10","2,47,172","146.60","8,129.90","4,029.45","-11.65","39.81"
|
48 |
+
"DLF","718.00","720.00","691.10","715.05","692.80","-","-22.25","-3.11","34,32,119","242.09","967.60","687.05","-17.40","-8.36"
|
49 |
+
"PFC","421.30","423.70","407.10","421.25","407.95","-","-13.30","-3.16","55,21,223","227.74","580.00","351.70","-9.49","-2.53"
|
50 |
+
"RECLTD","463.75","466.25","445.00","463.75","446.65","-","-17.10","-3.69","67,38,912","304.88","654.00","408.30","-12.05","-5.08"
|
51 |
+
"HAVELLS","1,595.30","1,605.95","1,517.55","1,595.30","1,533.45","-","-61.85","-3.88","9,99,025","154.22","2,106.00","1,280.00","-9.02","18.05"
|
52 |
+
"JIOFIN","256.00","257.35","243.55","255.85","243.90","-","-11.95","-4.67","3,83,79,153","951.96","394.70","237.10","-19.77","1.92"
|
page/complete_backtest.py
CHANGED
@@ -1,9 +1,10 @@
|
|
1 |
import streamlit as st
|
2 |
import pandas as pd
|
|
|
3 |
import time
|
4 |
|
5 |
from streamlit.components import v1 as components
|
6 |
-
from src.utils import complete_test
|
7 |
|
8 |
def complete_backtest():
|
9 |
@st.cache_data
|
@@ -21,7 +22,7 @@ def complete_backtest():
|
|
21 |
"""
|
22 |
)
|
23 |
|
24 |
-
st.
|
25 |
|
26 |
period_list = ['1d', '5d', '1mo', '3mo', '6mo', '1y', '2y', '5y', '10y', 'ytd', 'max']
|
27 |
|
@@ -55,9 +56,9 @@ def complete_backtest():
|
|
55 |
ema2 = st.number_input("Slow EMA Length", min_value=1, value=21,
|
56 |
help = "Length of Slow moving Exponential Moving Average.")
|
57 |
with c3:
|
58 |
-
|
59 |
else:
|
60 |
-
ema1, ema2,
|
61 |
|
62 |
with st.expander("Advanced options"):
|
63 |
c1, c2, c3 = st.columns([2, 2, 1])
|
@@ -75,29 +76,60 @@ def complete_backtest():
|
|
75 |
# Button to run the analysis
|
76 |
if st.button("Run"):
|
77 |
start = time.time()
|
78 |
-
st.session_state.results = complete_test(strategy, period, interval, multiprocess,
|
79 |
swing_hl=swing_hl, ema1=ema1, ema2=ema2,
|
80 |
-
|
81 |
commission=commission/100)
|
82 |
st.success(f"Analysis finished in {round(time.time()-start, 2)} seconds")
|
83 |
|
84 |
if "results" in st.session_state:
|
85 |
# st.write("⬇️ Select a row in index column to get detailed information of the respective stock run.")
|
86 |
st.markdown(f"""
|
87 |
-
|
88 |
-
|
|
|
89 |
""")
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
"""
|
101 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
102 |
|
103 |
complete_backtest()
|
|
|
1 |
import streamlit as st
|
2 |
import pandas as pd
|
3 |
+
import numpy as np
|
4 |
import time
|
5 |
|
6 |
from streamlit.components import v1 as components
|
7 |
+
from src.utils import complete_test, categorize_df
|
8 |
|
9 |
def complete_backtest():
|
10 |
@st.cache_data
|
|
|
22 |
"""
|
23 |
)
|
24 |
|
25 |
+
stock_list = st.selectbox("Select Stock list", ['Nifty 50', 'Nifty Next 50', 'Nifty 100', 'Nifty 200'], index=0)
|
26 |
|
27 |
period_list = ['1d', '5d', '1mo', '3mo', '6mo', '1y', '2y', '5y', '10y', 'ytd', 'max']
|
28 |
|
|
|
56 |
ema2 = st.number_input("Slow EMA Length", min_value=1, value=21,
|
57 |
help = "Length of Slow moving Exponential Moving Average.")
|
58 |
with c3:
|
59 |
+
close_on_crossover = st.checkbox("Close trade on EMA crossover", value=False)
|
60 |
else:
|
61 |
+
ema1, ema2, close_on_crossover = None, None, None
|
62 |
|
63 |
with st.expander("Advanced options"):
|
64 |
c1, c2, c3 = st.columns([2, 2, 1])
|
|
|
76 |
# Button to run the analysis
|
77 |
if st.button("Run"):
|
78 |
start = time.time()
|
79 |
+
st.session_state.results = complete_test(stock_list, strategy, period, interval, multiprocess,
|
80 |
swing_hl=swing_hl, ema1=ema1, ema2=ema2,
|
81 |
+
close_on_crossover=close_on_crossover, cash=initial_cash,
|
82 |
commission=commission/100)
|
83 |
st.success(f"Analysis finished in {round(time.time()-start, 2)} seconds")
|
84 |
|
85 |
if "results" in st.session_state:
|
86 |
# st.write("⬇️ Select a row in index column to get detailed information of the respective stock run.")
|
87 |
st.markdown(f"""
|
88 |
+
---
|
89 |
+
### :orange[{stock_list} stocks backtest result by using {strategy} strategy]
|
90 |
+
⬇️ Select rows in 'Select' column to get backtest plots of the selected stocks.
|
91 |
""")
|
92 |
+
st.session_state.results['Select'] = False
|
93 |
+
|
94 |
+
cols = ['Select', 'Stock', 'Sector', 'Start', 'End', 'Return [%]', 'Equity Final [₹]', 'Buy & Hold Return [%]', '# Trades', 'Win Rate [%]', 'Best Trade [%]', 'Worst Trade [%]', 'Avg. Trade [%]']
|
95 |
+
st.session_state.categorized_results = categorize_df(st.session_state.results, 'Sector', 'Return [%]')
|
96 |
+
|
97 |
+
st.session_state.categorized_results_dict = {}
|
98 |
+
st.session_state.selected_stocks = {}
|
99 |
+
|
100 |
+
for category, df in st.session_state.categorized_results.items():
|
101 |
+
mean = round(df['Return [%]'].mean(), 2)
|
102 |
+
color = "green" if mean > 0 else "red"
|
103 |
+
with st.expander(f"{str(category).upper()} :{color}[Average return rate: {mean} %]"):
|
104 |
+
st.session_state.categorized_results_dict[category] = (
|
105 |
+
st.data_editor(df,
|
106 |
+
column_config={
|
107 |
+
'Select': st.column_config.CheckboxColumn(
|
108 |
+
'Select',
|
109 |
+
default=False
|
110 |
+
)
|
111 |
+
},
|
112 |
+
hide_index=True, column_order=cols,
|
113 |
+
# on_select="rerun", selection_mode="single-row"
|
114 |
+
))
|
115 |
+
st.session_state.selected_stocks[category] = (
|
116 |
+
np.where(st.session_state.categorized_results_dict[category]['Select']))[0]
|
117 |
+
|
118 |
+
for selected_rows in st.session_state.selected_stocks.values():
|
119 |
+
if len(selected_rows) > 0:
|
120 |
+
st.toast("Scroll to the bottom of page to view backtest plots.", icon=":material/vertical_align_bottom:")
|
121 |
+
st.markdown(f"""
|
122 |
+
---
|
123 |
+
### :orange[Selected stocks backtest plots by using {strategy} strategy]
|
124 |
+
""")
|
125 |
+
break
|
126 |
+
|
127 |
+
for selected_rows in st.session_state.selected_stocks.values():
|
128 |
+
for row in selected_rows:
|
129 |
+
ticker = st.session_state.results['Stock'].values[row]
|
130 |
+
plot = st.session_state.results['plot'].values[row]
|
131 |
+
color = "green" if st.session_state.results['Return [%]'].values[row] > 0 else "red"
|
132 |
+
with st.expander(f":{color}[{ticker} backtest plot] 📊"):
|
133 |
+
components.html(plot, height=900)
|
134 |
|
135 |
complete_backtest()
|
page/single_backtest.py
CHANGED
@@ -64,9 +64,9 @@ def algorithmic_trading_dashboard():
|
|
64 |
ema2 = st.number_input("Slow EMA Length", min_value=1, value=21,
|
65 |
help = "Length of Slow moving Exponential Moving Average.")
|
66 |
with c3:
|
67 |
-
|
68 |
else:
|
69 |
-
ema1, ema2,
|
70 |
|
71 |
with st.expander("Advanced options"):
|
72 |
c1, c2 = st.columns(2)
|
@@ -98,7 +98,7 @@ def algorithmic_trading_dashboard():
|
|
98 |
)
|
99 |
|
100 |
backtest_results = run_strategy(ticker, strategy, period, interval,
|
101 |
-
swing_hl=swing_hl, ema1=ema1, ema2=ema2,
|
102 |
cash=initial_cash, commission=commission/100)
|
103 |
|
104 |
color = "green" if backtest_results['Return [%]'].values[0] > 0 else "red"
|
@@ -108,7 +108,7 @@ def algorithmic_trading_dashboard():
|
|
108 |
st.plotly_chart(signal_plot, width=1200)
|
109 |
|
110 |
st.write(f'### :{color}[Backtest Results]')
|
111 |
-
cols = ['
|
112 |
'Win Rate [%]', 'Best Trade [%]', 'Worst Trade [%]', 'Avg. Trade [%]']
|
113 |
st.dataframe(backtest_results, hide_index=True, column_order=cols)
|
114 |
|
|
|
64 |
ema2 = st.number_input("Slow EMA Length", min_value=1, value=21,
|
65 |
help = "Length of Slow moving Exponential Moving Average.")
|
66 |
with c3:
|
67 |
+
close_on_crossover = st.checkbox("Close trade on EMA crossover", value=False)
|
68 |
else:
|
69 |
+
ema1, ema2, close_on_crossover = None, None, None
|
70 |
|
71 |
with st.expander("Advanced options"):
|
72 |
c1, c2 = st.columns(2)
|
|
|
98 |
)
|
99 |
|
100 |
backtest_results = run_strategy(ticker, strategy, period, interval,
|
101 |
+
swing_hl=swing_hl, ema1=ema1, ema2=ema2, close_on_crossover=close_on_crossover,
|
102 |
cash=initial_cash, commission=commission/100)
|
103 |
|
104 |
color = "green" if backtest_results['Return [%]'].values[0] > 0 else "red"
|
|
|
108 |
st.plotly_chart(signal_plot, width=1200)
|
109 |
|
110 |
st.write(f'### :{color}[Backtest Results]')
|
111 |
+
cols = ['Stock', 'Sector', 'Start', 'End', 'Return [%]', 'Equity Final [₹]', 'Buy & Hold Return [%]', '# Trades',
|
112 |
'Win Rate [%]', 'Best Trade [%]', 'Worst Trade [%]', 'Avg. Trade [%]']
|
113 |
st.dataframe(backtest_results, hide_index=True, column_order=cols)
|
114 |
|
requirements.txt
CHANGED
@@ -2,6 +2,6 @@ backtesting==0.3.3
|
|
2 |
numpy==2.2.0
|
3 |
pandas==2.2.3
|
4 |
bokeh==3.1.0
|
5 |
-
yfinance==0.2.
|
6 |
plotly==5.24.1
|
7 |
streamlit==1.41.1
|
|
|
2 |
numpy==2.2.0
|
3 |
pandas==2.2.3
|
4 |
bokeh==3.1.0
|
5 |
+
yfinance==0.2.52
|
6 |
plotly==5.24.1
|
7 |
streamlit==1.41.1
|
src/utils.py
CHANGED
@@ -28,7 +28,7 @@ def smc_backtest(data, filename, **kwargs):
|
|
28 |
@start_end_log
|
29 |
def smc_ema_backtest(data, filename, **kwargs):
|
30 |
bt = Backtest(data, SMC_ema, cash=kwargs['cash'], commission=kwargs['commission'])
|
31 |
-
results = bt.run(swing_window=kwargs['swing_hl'], ema1=kwargs['ema1'], ema2=kwargs['ema2'], close_on_crossover=kwargs['
|
32 |
bt.plot(filename=filename, open_browser=False)
|
33 |
return results
|
34 |
|
@@ -41,6 +41,8 @@ def smc_structure_backtest(data, filename, **kwargs):
|
|
41 |
|
42 |
@start_end_log
|
43 |
def run_strategy(ticker_symbol, strategy, period, interval, **kwargs):
|
|
|
|
|
44 |
logger.info(f'Running {strategy} for {ticker_symbol}')
|
45 |
# Fetching ohlc of random ticker_symbol.
|
46 |
retries = 3
|
@@ -77,11 +79,13 @@ def run_strategy(ticker_symbol, strategy, period, interval, **kwargs):
|
|
77 |
# Converting pd.Series to pd.Dataframe
|
78 |
backtest_results = backtest_results.to_frame().transpose()
|
79 |
|
80 |
-
backtest_results['
|
81 |
backtest_results['plot'] = plot
|
|
|
|
|
82 |
|
83 |
# Reordering columns.
|
84 |
-
cols = ['
|
85 |
'Win Rate [%]', 'Best Trade [%]', 'Worst Trade [%]', 'Avg. Trade [%]', 'plot']
|
86 |
backtest_results = backtest_results[cols]
|
87 |
|
@@ -90,18 +94,21 @@ def run_strategy(ticker_symbol, strategy, period, interval, **kwargs):
|
|
90 |
return backtest_results
|
91 |
|
92 |
@start_end_log
|
93 |
-
def complete_test(strategy: str, period: str, interval: str, multiprocess
|
94 |
-
|
|
|
|
|
|
|
95 |
ticker_list = pd.read_csv("data/Ticker_List_NSE_India.csv")
|
96 |
|
97 |
# Merging nifty50 and ticker_list dataframes to get 'YahooEquiv' column.
|
98 |
-
|
99 |
|
100 |
if multiprocess:
|
101 |
with Pool() as p:
|
102 |
-
result = p.starmap(partial(run_strategy, **kwargs), zip(
|
103 |
else:
|
104 |
-
result = [run_strategy(
|
105 |
|
106 |
df = pd.concat(result)
|
107 |
|
@@ -110,12 +117,32 @@ def complete_test(strategy: str, period: str, interval: str, multiprocess=True,
|
|
110 |
|
111 |
return df.reset_index().drop(columns=['index'])
|
112 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
113 |
|
114 |
if __name__ == "__main__":
|
|
|
115 |
# random_testing("")
|
116 |
# data = fetch('RELIANCE.NS', period='1y', interval='15m')
|
117 |
# df = yf.download('RELIANCE.NS', period='1yr', interval='15m')
|
118 |
-
|
119 |
-
|
120 |
-
rt
|
121 |
-
|
|
|
|
|
|
|
|
|
|
|
|
28 |
@start_end_log
|
29 |
def smc_ema_backtest(data, filename, **kwargs):
|
30 |
bt = Backtest(data, SMC_ema, cash=kwargs['cash'], commission=kwargs['commission'])
|
31 |
+
results = bt.run(swing_window=kwargs['swing_hl'], ema1=kwargs['ema1'], ema2=kwargs['ema2'], close_on_crossover=kwargs['close_on_crossover'])
|
32 |
bt.plot(filename=filename, open_browser=False)
|
33 |
return results
|
34 |
|
|
|
41 |
|
42 |
@start_end_log
|
43 |
def run_strategy(ticker_symbol, strategy, period, interval, **kwargs):
|
44 |
+
default_kwargs = {'swing_hl': 10, 'ema1': 9, 'ema2':21, 'close_on_crossover': False, 'cash': 10000, 'commission': 0}
|
45 |
+
kwargs = default_kwargs | kwargs
|
46 |
logger.info(f'Running {strategy} for {ticker_symbol}')
|
47 |
# Fetching ohlc of random ticker_symbol.
|
48 |
retries = 3
|
|
|
79 |
# Converting pd.Series to pd.Dataframe
|
80 |
backtest_results = backtest_results.to_frame().transpose()
|
81 |
|
82 |
+
backtest_results['Stock'] = ticker_symbol
|
83 |
backtest_results['plot'] = plot
|
84 |
+
backtest_results['Sector'] = yf.Ticker(ticker_symbol).info.get('sectorKey')
|
85 |
+
backtest_results['Return [%]'] = backtest_results['Return [%]'].apply(lambda x: round(x, 2))
|
86 |
|
87 |
# Reordering columns.
|
88 |
+
cols = ['Stock', 'Sector', 'Start', 'End', 'Return [%]', 'Equity Final [$]', 'Buy & Hold Return [%]', '# Trades',
|
89 |
'Win Rate [%]', 'Best Trade [%]', 'Worst Trade [%]', 'Avg. Trade [%]', 'plot']
|
90 |
backtest_results = backtest_results[cols]
|
91 |
|
|
|
94 |
return backtest_results
|
95 |
|
96 |
@start_end_log
|
97 |
+
def complete_test(stock_list: str, strategy: str, period: str, interval: str, multiprocess: bool, **kwargs):
|
98 |
+
stock_list_map = {'Nifty 50': 'data/ind_nifty50list.csv', 'Nifty Next 50': 'data/ind_niftynext50list.csv', 'Nifty 100': 'data/ind_nifty100list.csv', 'Nifty 200': 'data/ind_nifty200list.csv'}
|
99 |
+
nifty_stocks = pd.read_csv(stock_list_map[stock_list])
|
100 |
+
nifty_stocks.columns = [x.upper() for x in nifty_stocks.columns]
|
101 |
+
logger.info(f"stock list columns: {nifty_stocks.columns}")
|
102 |
ticker_list = pd.read_csv("data/Ticker_List_NSE_India.csv")
|
103 |
|
104 |
# Merging nifty50 and ticker_list dataframes to get 'YahooEquiv' column.
|
105 |
+
nifty_stocks = nifty_stocks.merge(ticker_list, "inner", 'SYMBOL')
|
106 |
|
107 |
if multiprocess:
|
108 |
with Pool() as p:
|
109 |
+
result = p.starmap(partial(run_strategy, **kwargs), zip(nifty_stocks['YahooEquiv'].values, repeat(strategy), repeat(period), repeat(interval)))
|
110 |
else:
|
111 |
+
result = [run_strategy(nifty_stocks['YahooEquiv'].values[i], strategy, period, interval, **kwargs) for i in range(len(nifty_stocks))]
|
112 |
|
113 |
df = pd.concat(result)
|
114 |
|
|
|
117 |
|
118 |
return df.reset_index().drop(columns=['index'])
|
119 |
|
120 |
+
def categorize_df(df: pd.DataFrame, col: str, sort_col: str | None = None):
|
121 |
+
categorized = df.groupby(col, sort=False)
|
122 |
+
mapping = {}
|
123 |
+
for name, group in categorized:
|
124 |
+
mapping[name] = group
|
125 |
+
# print(f"{name} mean: ", group[sort_col].mean())
|
126 |
+
# print(sorted(mapping.values(), key = lambda item: item[sort_col].mean(), reverse=True))
|
127 |
+
if sort_col:
|
128 |
+
mapping = dict([('all', df)]+sorted(mapping.items(), key = lambda item: item[1][sort_col].mean(), reverse=True))
|
129 |
+
|
130 |
+
for category, df in mapping.items():
|
131 |
+
mapping[category] = df.sort_values(by=[sort_col], ascending=False)
|
132 |
+
# print(mapping)
|
133 |
+
return mapping
|
134 |
|
135 |
if __name__ == "__main__":
|
136 |
+
# pass
|
137 |
# random_testing("")
|
138 |
# data = fetch('RELIANCE.NS', period='1y', interval='15m')
|
139 |
# df = yf.download('RELIANCE.NS', period='1yr', interval='15m')
|
140 |
+
# rt.to_excel('test/all_testing_2.xlsx', index=False)
|
141 |
+
#
|
142 |
+
# print(rt)
|
143 |
+
|
144 |
+
data = pd.read_csv(r"C:\Users\Dinesh\Downloads\Documents\2025-01-26T12-37_export.csv")
|
145 |
+
data = data[data['Select']]
|
146 |
+
print(data)
|
147 |
+
mapping = categorize_df(data, 'Sector', 'Return [%]')
|
148 |
+
print(mapping)
|
strategies.py
CHANGED
@@ -92,11 +92,11 @@ class SMC_ema(SignalStrategy, TrailingStrategy):
|
|
92 |
if trade.is_short and self.ma1 > self.ma2:
|
93 |
trade.close()
|
94 |
|
95 |
-
def smc_buy(self, data):
|
96 |
-
return SMC(data).backtest_buy_signal_ob()
|
97 |
|
98 |
-
def smc_sell(self, data):
|
99 |
-
return SMC(data).backtest_sell_signal_ob()
|
100 |
|
101 |
|
102 |
class SMCStructure(TrailingStrategy):
|
|
|
92 |
if trade.is_short and self.ma1 > self.ma2:
|
93 |
trade.close()
|
94 |
|
95 |
+
def smc_buy(self, data, swing_hl):
|
96 |
+
return SMC(data, swing_hl).backtest_buy_signal_ob()
|
97 |
|
98 |
+
def smc_sell(self, data, swing_hl):
|
99 |
+
return SMC(data, swing_hl).backtest_sell_signal_ob()
|
100 |
|
101 |
|
102 |
class SMCStructure(TrailingStrategy):
|