Spaces:
Sleeping
Sleeping
NatualHisak
commited on
Commit
•
4ea997e
1
Parent(s):
1908838
DiFA Plotly
Browse files- .streamlit/config.toml +5 -0
- Home.py +63 -0
- Prediction.py +150 -0
- Range-Outcomes.png +0 -0
- __pycache__/Home.cpython-37.pyc +0 -0
- __pycache__/Prediction.cpython-37.pyc +0 -0
- __pycache__/high.cpython-37.pyc +0 -0
- __pycache__/low.cpython-37.pyc +0 -0
- __pycache__/med.cpython-37.pyc +0 -0
- app.py +59 -0
- black-home-icon.png +0 -0
- clipart-computer-icons.png +0 -0
- config.toml +9 -0
- constituents_symbols.txt +10 -0
- high.py +116 -0
- image.png +0 -0
- images-icone.png +0 -0
- logodifa-removebg-preview.png +0 -0
- low.py +140 -0
- low_1.py +123 -0
- med.py +116 -0
- requirements.txt +9 -0
.streamlit/config.toml
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[theme]
|
2 |
+
base="dark"
|
3 |
+
backgroundColor="#37363d"
|
4 |
+
secondaryBackgroundColor="#e3874f"
|
5 |
+
|
Home.py
ADDED
@@ -0,0 +1,63 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
from streamlit_option_menu import option_menu
|
3 |
+
import yfinance as yf
|
4 |
+
import pandas as pd
|
5 |
+
import matplotlib.pyplot as plt
|
6 |
+
import matplotlib.dates as mdates
|
7 |
+
import seaborn as sns
|
8 |
+
import datetime
|
9 |
+
from PIL import Image
|
10 |
+
import low, med, high
|
11 |
+
|
12 |
+
|
13 |
+
dfp = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/dataset_predict/Pasar%20Uang.csv')
|
14 |
+
dfb = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/dataset_predict/Bond.csv')
|
15 |
+
dfs = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/dataset_predict/Saham.csv')
|
16 |
+
def run():
|
17 |
+
|
18 |
+
|
19 |
+
st.write("""
|
20 |
+
# Trend
|
21 |
+
|
22 |
+
Show are Corresponding Mutual Fund Trend Based On **NAV (Net Asset Value)**
|
23 |
+
""")
|
24 |
+
def user_input():
|
25 |
+
stock_symbol = st.sidebar.selectbox('Category', ('Money Market', 'Bond', 'stock mutual funds'))
|
26 |
+
|
27 |
+
tickerData = yf.Ticker(stock_symbol+'.JK')
|
28 |
+
return stock_symbol
|
29 |
+
|
30 |
+
stock_symbol = user_input()
|
31 |
+
if stock_symbol == "Money Market" :
|
32 |
+
low.run()
|
33 |
+
st.write("""
|
34 |
+
# Top 10 Money Market Mutual Funds
|
35 |
+
|
36 |
+
Show are Top 10 Money Market Mutual Fund Based On **AUM (Asset Under Management)**
|
37 |
+
""")
|
38 |
+
fig = plt.figure(figsize=(15,5))
|
39 |
+
sns.barplot(data=dfp, y="Mutual Funds", x="AUM")
|
40 |
+
st.pyplot(fig)
|
41 |
+
|
42 |
+
elif stock_symbol == "Bond" :
|
43 |
+
med.run()
|
44 |
+
st.write("""
|
45 |
+
# Top 10 Money Market Mutual Funds
|
46 |
+
|
47 |
+
Show are Top 10 Money Market Mutual Fund Based On **AUM (Asset Under Management)**
|
48 |
+
""")
|
49 |
+
fig = plt.figure(figsize=(15,5))
|
50 |
+
sns.barplot(data=dfb, y="Mutual Funds", x="AUM")
|
51 |
+
st.pyplot(fig)
|
52 |
+
else :
|
53 |
+
high.run()
|
54 |
+
st.write("""
|
55 |
+
# Top 10 Money Market Mutual Funds
|
56 |
+
|
57 |
+
Show are Top 10 Money Market Mutual Fund Based On **AUM (Asset Under Management)**
|
58 |
+
""")
|
59 |
+
fig = plt.figure(figsize=(15,5))
|
60 |
+
sns.barplot(data=dfs, y="Mutual Funds", x="AUM")
|
61 |
+
st.pyplot(fig)
|
62 |
+
if __name__ == '__main__':
|
63 |
+
run()
|
Prediction.py
ADDED
@@ -0,0 +1,150 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
from streamlit_option_menu import option_menu
|
3 |
+
import yfinance as yf
|
4 |
+
import pandas as pd
|
5 |
+
import matplotlib.pyplot as plt
|
6 |
+
import matplotlib.dates as mdates
|
7 |
+
import seaborn as sns
|
8 |
+
import datetime
|
9 |
+
from PIL import Image
|
10 |
+
|
11 |
+
|
12 |
+
dfl = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/dataset_predict/final_lowrisk.csv')
|
13 |
+
dfm = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/dataset_predict/final_medrisk.csv')
|
14 |
+
dfh = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/dataset_predict/Final_highrisk.csv')
|
15 |
+
dfs = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/dataset_predict/final_saham.csv')
|
16 |
+
dfl=dfl.drop(['Unnamed: 0'], axis = 1)
|
17 |
+
dfm=dfm.drop(['Unnamed: 0'], axis = 1)
|
18 |
+
dfh=dfh.drop(['Unnamed: 0'], axis = 1)
|
19 |
+
dfs=dfs.drop(['Unnamed: 0'], axis = 1)
|
20 |
+
|
21 |
+
aum_low = [11.38, 2.01, 2.29, 2.07, 2.96, 4.28, 2.62, 4.9, 9.49, 3.73]
|
22 |
+
dfl['AUM'] = aum_low
|
23 |
+
aum_med = [1.51, 1.51, 1.58, 4.76, 5.57, 0.85, 2.12, 14.56, 1.29, 15.92]
|
24 |
+
dfm['AUM'] = aum_med
|
25 |
+
aum_high = [4.83, 03.02, 1.72, 3.17, 1.38, 0.62, 1.13, 0.36, 0.98, 6.18]
|
26 |
+
dfh['AUM'] = aum_high
|
27 |
+
|
28 |
+
dfm = dfm.round(decimals=2)
|
29 |
+
|
30 |
+
ls1 = {'Manulife Dana Saham Kelas A':['ADRO','ASII','BBCA','BMRI','BBNI','BBRI','GOTO','MCAS','TLKM','UNTR'],
|
31 |
+
'Batavia Dana Saham': ['BBRI','TLKM','BMRI','BBCA','BBNI','MDKA','ADRO','KLBF','MYOR','ASII'],
|
32 |
+
'Sucroinvest Equity Fund':['ADRO','ASII','BBRI','BBTN','BUMI','MFIN','PGAS','MYOH','TLKM','EXCL'],
|
33 |
+
'Manulife Saham Andalan':['ADRO','BBCA','BMRI','PNBN','BBRI','GOTO','MCAS','MDKA','PNLF','TLKM'],
|
34 |
+
'BNI-AM Indeks IDX30':['ADRO','ASII','BBCA','BBNI','BBRI','BMRI','GOTO','MDKA','TLKM','UNTR'],
|
35 |
+
'Sucroinvest Sharia Equity Fund':['HOKI','ENAK','CSMI','ECII','ENRG','KBLI','MNCN','PGAS','MYOH','SCCO'],
|
36 |
+
'BNI-AM Inspiring Equity Fund ':['ADRO','ASII','BBCA','BBNI','BBRI','BMRI','EXCL','SMGR','TLKM','TOWR'],
|
37 |
+
'Simas Saham Unggulan':['ASII','BBCA','BMRI','BBNI','BBRI','ICBP','KLBF','MYOR','AMRT','TLKM'],
|
38 |
+
'Schroder 90 Plus Equity Fund':['BBCA','BMRI','BBNI','BBRI','KLBF','MYOR','MDKA','MAPI','MLBI','TLKM'],
|
39 |
+
'DanaReksa Mawah Konsumer 10 Kelas A':['ADRO','ASII','BBCA','BBNI','BBRI','BMRI','INCO','MEDC','MYOR','TLKM']}
|
40 |
+
|
41 |
+
dfx = pd.DataFrame(ls1)
|
42 |
+
|
43 |
+
def run ():
|
44 |
+
st.title('Profiling Questionnaries')
|
45 |
+
st.markdown('---')
|
46 |
+
|
47 |
+
# Create Form
|
48 |
+
|
49 |
+
with st.form(key='form_parameters'):
|
50 |
+
st.subheader('A. Investment Time Horizon')
|
51 |
+
A1 = st.selectbox('As I withdraw money from these investments, I plan to spend it over a period of...', ('10 years or more','7-9 years','4-6 years','1-3 years','Less than 1 year'))
|
52 |
+
A2 = st.selectbox('I plan to begin taking money from my investments in...',('10 years or more', '6-10 years','3-5 years','1-2 years','1 or less than a year'))
|
53 |
+
|
54 |
+
st.markdown('---')
|
55 |
+
st.subheader('B. Investment Knowlegde')
|
56 |
+
B1 = st.selectbox('When it comes to investing in stock or bond mutual funds or ETFs - or individual stocks or bonds - I would describe myself as...',('Very experienced (≥ 10 years)','Experienced (8 - 10 years)','Somewhat experienced (4 - 7 years)','Somewhat inexperienced (< 4 years)','Very inexperienced (0)'))
|
57 |
+
|
58 |
+
st.markdown('---')
|
59 |
+
st.subheader('C. Risk Capacity')
|
60 |
+
C1 = st.selectbox('My purpose of investing money is...',('For the long term wealth growth','For the long term revenue and growth','Periodic income','Income and security of investment funds','Security of investment funds'))
|
61 |
+
C2 = st.selectbox('My current and future income sources (for example, salary, social security, pensions) are...',('Very stable','Stable','Somewhat stable','Unstable','Very unstable'))
|
62 |
+
C3 = st.selectbox('How many percent of income that will be invested?', ('> 50%','> 25%-50%', '> 10%-25%','> 0% - 10%','0%'))
|
63 |
+
C4 = st.selectbox('How many percent of loss investment that can be beared?',('> 50%','> 25%-50%', '> 10%-25%','> 0% - 10%','0%'))
|
64 |
+
|
65 |
+
st.markdown('---')
|
66 |
+
st.subheader('D. Risk Attitude')
|
67 |
+
D1 = st.selectbox('From September 2022 through October 2022, bonds lost 4%. If I owned a bond investment that lost 4% in two months, I would...', ('Sell all the remaining investment','Sell a portion of the remaining investment','Hold onto the investment and sell nothing','Buy more of the remaining investment'))
|
68 |
+
D2 = st.selectbox('The chart shows the greatest 1-year loss and the highest 1-year gain on 3 different hypothetical investments of $10,000.* Given the potential gain or loss in any 1 year, I would invest my money in...',('EITHER a loss of $0 OR a gain of $200','EITHER a loss of $200 OR a gain of $500','EITHER a loss of $800 OR a gain of $1,200','EITHER a loss of $2,000 OR a gain of $2,500'))
|
69 |
+
image = Image.open('Range-Outcomes.png')
|
70 |
+
st.image(image)
|
71 |
+
D3 = st.selectbox('Investments with higher returns typically involve greater risk. The charts below show hypothetical annual returns (annual gains and losses) for four different investment portfolios over a 10 year period. Keeping in mind how the returns fluctuate, which investment portfolio would you be most comfortable holding?', ('Portfolio A', 'Portfolio B','Portfolio C','Portfolio D'))
|
72 |
+
image = Image.open('image.png')
|
73 |
+
st.image(image)
|
74 |
+
|
75 |
+
submitted = st.form_submit_button('Submit')
|
76 |
+
|
77 |
+
data_inf = {
|
78 |
+
'A1' : A1,
|
79 |
+
'A2' : A2,
|
80 |
+
'B1' : B1,
|
81 |
+
'C1' : C1,
|
82 |
+
'C2' : C2,
|
83 |
+
'C3' : C3,
|
84 |
+
'C4' : C4,
|
85 |
+
'D1' : D1,
|
86 |
+
'D2' : D2,
|
87 |
+
'D3' : D3
|
88 |
+
}
|
89 |
+
|
90 |
+
data_inf = pd.DataFrame([data_inf])
|
91 |
+
st.dataframe(data_inf)
|
92 |
+
|
93 |
+
if submitted:
|
94 |
+
data_inf['A1']=data_inf.A1.map({'10 years or more': 5, '7-9 years': 4,'4-6 years':3, '1-3 years':2, 'Less than 1 year':1})
|
95 |
+
data_inf['A2']=data_inf.A2.map({'More than 8 years': 5, '7-8 years': 4,'5-6 years':3, '3-4 years':2, '1-2 years':1})
|
96 |
+
data_inf['B1']=data_inf.B1.map({'Very experienced (≥ 10 years)': 5, 'Experienced (8 - 10 years)': 4,'Somewhat experienced (4 - 7 years)':3, 'Somewhat inexperienced (< 4 years)':2, 'Very inexperienced (0)':1})
|
97 |
+
data_inf['C1']=data_inf.C1.map({'For the long term wealth growth': 5, 'For the long term revenue and growth': 4,'Periodic income':3, 'Income and security of investment funds':2, 'Security of investment funds':1})
|
98 |
+
data_inf['C2']=data_inf.C2.map({'Very stable': 5, 'Stable': 4,'Somewhat stable':3, 'Unstable':2, 'Very unstable':1})
|
99 |
+
data_inf['C3']=data_inf.C3.map({'> 50%': 5, '> 25% - 50%': 4,'> 10% - 25%':3, '> 0% - 10%':2, '0%':1})
|
100 |
+
data_inf['C4']=data_inf.C4.map({'> 50%': 5, '> 25% - 50%': 4,'> 10% - 25%':3, '> 0% - 10%':2, '0%':1})
|
101 |
+
data_inf['D1']=data_inf.D1.map({'Sell all the remaining investment': 0, 'Sell a portion of the remaining investment': 2,'Hold onto the investment and sell nothing':4, 'Buy more of the remaining investment':6})
|
102 |
+
data_inf['D2']=data_inf.D2.map({'EITHER a loss of $0 OR a gain of $200': 0, 'EITHER a loss of $200 OR a gain of $500': 2,'EITHER a loss of $800 OR a gain of $1,200':4, 'EITHER a loss of $2,000 OR a gain of $2,500':6})
|
103 |
+
data_inf['D3']=data_inf.D3.map({'Portfolio A': 0, 'Portfolio B': 2,'Portfolio C':4, 'Portfolio D':6})
|
104 |
+
|
105 |
+
data_inflist=['A1','A2','B1','C1','C2','C3','C4','D1','D2','D3']
|
106 |
+
data_inf['score'] = data_inf[data_inflist].sum(axis=1)
|
107 |
+
|
108 |
+
# st.write('# Score: ', str(int(data_inf['score'])))
|
109 |
+
print(type(data_inf['score'][0]),data_inf['score'])
|
110 |
+
saham = []
|
111 |
+
stock = []
|
112 |
+
if data_inf['score'][0] <= 21:
|
113 |
+
profile= 'Low Risk'
|
114 |
+
text = 'You have a low tolerance for risk and potential loss of capital or a short investment time horizon. Investors are willing to accept some short term fluctuations and small losses in your investment portfolio in exchange for modest returns. The primary objective of your investment portfolio will be to provide income by investing primarily in funds that invest in fixed-income securities. While capital appreciation is not a priority, a small portion of the portfolio may be invested in equity funds to provide the potential for some growth to offset the impact of inflation.'
|
115 |
+
rec1 = dfl[dfl['Label'] != 0]
|
116 |
+
rec = rec1.sort_values(by=['AUM', 'Percentage'],ascending=False).head(3)
|
117 |
+
elif 22 <= data_inf['score'][0] <= 36:
|
118 |
+
profile = 'Medium Risk'
|
119 |
+
text= ' You have a moderate tolerance for risk and loss of capital. Investors are willing to tolerate some fluctuations in your investment returns and moderate losses of capital. Investors have at least a medium term investment time horizon. The objective of investors portfolio will be to provide a combination of income and long term capital growth and therefore the portfolio will include at least 40% in fixed income investments.'
|
120 |
+
rec1 = dfm[dfm['Label'] != 0]
|
121 |
+
rec = rec1.sort_values(by=['AUM', 'Percentage'],ascending=False).head(3)
|
122 |
+
rec = rec.round(decimals=2)
|
123 |
+
elif data_inf['score'][0] >= 37:
|
124 |
+
profile = 'High Risk'
|
125 |
+
text = 'You tolerance for risk, portfolio volatility and investment losses is high or very high. Investors are willing to tolerate potentially significant and sustained price fluctuations and large losses of capital. Investors have extensive investment knowledge. Investors have no income requirements from your investments and have a long investment time horizon.'
|
126 |
+
sh = dfs[dfs['label'] != 0]
|
127 |
+
saham = sh.sort_values(by=['percentage'],ascending=False).head(20)
|
128 |
+
rec1 = dfh[dfh['label'] != 0]
|
129 |
+
rec = rec1.sort_values(by=['AUM', 'percentage'],ascending=False).head(3)
|
130 |
+
stock = rec['saham']
|
131 |
+
|
132 |
+
|
133 |
+
#Prediction
|
134 |
+
st.write('# Profile Risk: {}'.format(profile))
|
135 |
+
st.write(' {}'.format(text))
|
136 |
+
st.write('# Our Recommendation: ')
|
137 |
+
st.dataframe(rec.round(decimals=2))
|
138 |
+
|
139 |
+
if len(saham) > 1:
|
140 |
+
st.write('# Top Holding: ')
|
141 |
+
st.dataframe(dfx[stock])
|
142 |
+
st.write('# Top Stock: ')
|
143 |
+
top3 = dfx[stock]
|
144 |
+
top1 = stock.iloc[0]
|
145 |
+
saham['saham'].isin(top3[top1]).astype(int)
|
146 |
+
xx = saham.assign(Top=saham['saham'].isin(top3[top1]).astype(int))
|
147 |
+
st.dataframe(xx)
|
148 |
+
|
149 |
+
if __name__ == '__main__':
|
150 |
+
run()
|
Range-Outcomes.png
ADDED
__pycache__/Home.cpython-37.pyc
ADDED
Binary file (1.97 kB). View file
|
|
__pycache__/Prediction.cpython-37.pyc
ADDED
Binary file (8.38 kB). View file
|
|
__pycache__/high.cpython-37.pyc
ADDED
Binary file (4.39 kB). View file
|
|
__pycache__/low.cpython-37.pyc
ADDED
Binary file (4.44 kB). View file
|
|
__pycache__/med.cpython-37.pyc
ADDED
Binary file (4.58 kB). View file
|
|
app.py
ADDED
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
from streamlit_option_menu import option_menu
|
3 |
+
import yfinance as yf
|
4 |
+
import pandas as pd
|
5 |
+
import matplotlib.pyplot as plt
|
6 |
+
import matplotlib.dates as mdates
|
7 |
+
import seaborn as sns
|
8 |
+
import datetime
|
9 |
+
from PIL import Image
|
10 |
+
import Home, Prediction
|
11 |
+
|
12 |
+
|
13 |
+
pageicon = Image.open('logodifa-removebg-preview.png')
|
14 |
+
home1=Image.open('images-icone.png')
|
15 |
+
home2=Image.open('clipart-computer-icons.png')
|
16 |
+
home3=Image.open('image.png')
|
17 |
+
|
18 |
+
st.set_page_config(page_title = 'Your personal Digital Financial Advisory for Mutual Funds',page_icon=pageicon, layout='wide', initial_sidebar_state='expanded')
|
19 |
+
|
20 |
+
def add_bg_from_url():
|
21 |
+
st.markdown(
|
22 |
+
f"""
|
23 |
+
<style>
|
24 |
+
.stApp {{
|
25 |
+
background-image: url("https://cdn.discordapp.com/attachments/554269836650348566/1054983902168629309/logodifa-removebg-preview.png");
|
26 |
+
background-attachment: fixed;
|
27 |
+
background-size: 5%;
|
28 |
+
background-color: Transparent;
|
29 |
+
background-repeat: no-repeat;
|
30 |
+
background-position: 100% 7%;
|
31 |
+
}}
|
32 |
+
</style>
|
33 |
+
""",
|
34 |
+
unsafe_allow_html=True
|
35 |
+
)
|
36 |
+
|
37 |
+
add_bg_from_url()
|
38 |
+
|
39 |
+
header = Image.open('logodifa-removebg-preview.png')
|
40 |
+
header2 = Image.open('images-icone.png')
|
41 |
+
# header2 = header2.resize((1300,300))
|
42 |
+
|
43 |
+
st.subheader('Your personal Digital Financial Advisory for Mutual Funds')
|
44 |
+
st.write('-----')
|
45 |
+
|
46 |
+
with st.sidebar:
|
47 |
+
selected = option_menu(
|
48 |
+
menu_title="Main Menu",
|
49 |
+
options=['Home', 'Profile Risk'],
|
50 |
+
icons=['house','cash'],
|
51 |
+
menu_icon='cast',
|
52 |
+
default_index=0,
|
53 |
+
)
|
54 |
+
|
55 |
+
if selected == 'Home':
|
56 |
+
Home.run()
|
57 |
+
|
58 |
+
elif selected == 'Profile Risk':
|
59 |
+
Prediction.run()
|
black-home-icon.png
ADDED
clipart-computer-icons.png
ADDED
config.toml
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[theme]
|
2 |
+
base="dark"
|
3 |
+
primaryColor="#d64545"
|
4 |
+
backgroundColor="#37363d"
|
5 |
+
secondaryBackgroundColor="#e3874f"
|
6 |
+
|
7 |
+
|
8 |
+
|
9 |
+
|
constituents_symbols.txt
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
BNI AM Dana Likuid
|
2 |
+
Bahana Dana Likuid
|
3 |
+
Batavia Dana Kas Maxima
|
4 |
+
Danamas rupiah plus
|
5 |
+
Danareksa Seruni Pasar Uang II
|
6 |
+
Danareksa Seruni Pasar Uang III
|
7 |
+
Manulife dana kas kelas A
|
8 |
+
Sucorinvest Money Market Fund
|
9 |
+
Sukorinvest Sharia Money Market Fund
|
10 |
+
TRIM Kas 2
|
high.py
ADDED
@@ -0,0 +1,116 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
from streamlit_option_menu import option_menu
|
3 |
+
import yfinance as yf
|
4 |
+
import pandas as pd
|
5 |
+
import matplotlib.pyplot as plt
|
6 |
+
import matplotlib.dates as mdates
|
7 |
+
import seaborn as sns
|
8 |
+
import datetime
|
9 |
+
from PIL import Image
|
10 |
+
|
11 |
+
dfl1 = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/Dataset_clean/High%20Clean/Manulife%20Dana%20Saham%20Kelas%20A%20Clean.csv')
|
12 |
+
dfl2 = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/Dataset_clean/High%20Clean/Batavia%20Dana%20Saham%20Clean.csv')
|
13 |
+
dfl3 = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/Dataset_clean/High%20Clean/Sucroinvest%20Equity%20Fund%20Clean.csv')
|
14 |
+
dfl4 = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/Dataset_clean/High%20Clean/Manulife%20Saham%20Andalan%20Clean.csv')
|
15 |
+
dfl5 = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/Dataset_clean/High%20Clean/BNI-AM%20Indeks%20IDX30%20Clean.csv')
|
16 |
+
dfl6 = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/Dataset_clean/High%20Clean/BNI-AM%20Inspiring%20Equity%20Fund%20Clean.csv')
|
17 |
+
dfl7 = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/Dataset_clean/High%20Clean/Simas%20Saham%20Unggulan%20Clean.csv')
|
18 |
+
dfl8 = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/Dataset_clean/High%20Clean/Schroder%2090%20Plus%20Equity%20Fund%20Clean.csv')
|
19 |
+
dfl9 = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/Dataset_clean/High%20Clean/Sucroinvest%20Sharia%20Equity%20Fund%20Clean.csv')
|
20 |
+
dfl10 = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/Dataset_clean/High%20Clean/DanaReksa%20Mawah%20Konsumer%2010%20Kelas%20A%20Clean.csv')
|
21 |
+
def run():
|
22 |
+
def user_input_low():
|
23 |
+
low_symbol = st.sidebar.selectbox('Mutual Funds', ('Manulife dana saham kelas A',
|
24 |
+
'Batavia Dana Saham',
|
25 |
+
'Sucorinvest equity fund',
|
26 |
+
'Manulife Saham Andalan',
|
27 |
+
'BNI-AM Indeks IDX30',
|
28 |
+
'BNI-AM Dana Saham Inspiring Equity Fund',
|
29 |
+
'Simas Saham Unggulan',
|
30 |
+
'Schroder 90 Plus Equity Fund',
|
31 |
+
'Sucorinvest Sharia Equity Fund',
|
32 |
+
'Danareksa Mawar Konsumer 10 Kelas A'))
|
33 |
+
tickerData = yf.Ticker(low_symbol+'.JK')
|
34 |
+
return low_symbol
|
35 |
+
low_symbol = user_input_low()
|
36 |
+
if low_symbol == 'Manulife dana saham kelas A' :
|
37 |
+
fig = plt.figure(figsize=(15,5))
|
38 |
+
line = sns.lineplot(data=dfl1, y="value", x="date")
|
39 |
+
locator = mdates.DayLocator(interval=10)
|
40 |
+
line.xaxis.set_major_locator(locator)
|
41 |
+
st.pyplot(fig)
|
42 |
+
st.markdown('---')
|
43 |
+
|
44 |
+
if low_symbol == 'Batavia Dana Saham' :
|
45 |
+
fig = plt.figure(figsize=(15,5))
|
46 |
+
line = sns.lineplot(data=dfl2, y="value", x="date")
|
47 |
+
locator = mdates.DayLocator(interval=10)
|
48 |
+
line.xaxis.set_major_locator(locator)
|
49 |
+
st.pyplot(fig)
|
50 |
+
st.markdown('---')
|
51 |
+
|
52 |
+
elif low_symbol == 'Sucorinvest equity fund' :
|
53 |
+
fig = plt.figure(figsize=(15,5))
|
54 |
+
line = sns.lineplot(data=dfl3, y="value", x="date")
|
55 |
+
locator = mdates.DayLocator(interval=10)
|
56 |
+
line.xaxis.set_major_locator(locator)
|
57 |
+
st.pyplot(fig)
|
58 |
+
st.markdown('---')
|
59 |
+
|
60 |
+
elif low_symbol == 'Manulife Saham Andalan' :
|
61 |
+
fig = plt.figure(figsize=(15,5))
|
62 |
+
line = sns.lineplot(data=dfl4, y="value", x="date")
|
63 |
+
locator = mdates.DayLocator(interval=10)
|
64 |
+
line.xaxis.set_major_locator(locator)
|
65 |
+
st.pyplot(fig)
|
66 |
+
st.markdown('---')
|
67 |
+
|
68 |
+
elif low_symbol == 'BNI-AM Indeks IDX30' :
|
69 |
+
fig = plt.figure(figsize=(15,5))
|
70 |
+
line = sns.lineplot(data=dfl5, y="value", x="date")
|
71 |
+
locator = mdates.DayLocator(interval=10)
|
72 |
+
line.xaxis.set_major_locator(locator)
|
73 |
+
st.pyplot(fig)
|
74 |
+
st.markdown('---')
|
75 |
+
|
76 |
+
elif low_symbol == 'BNI-AM Dana Saham Inspiring Equity Fund' :
|
77 |
+
fig = plt.figure(figsize=(15,5))
|
78 |
+
line = sns.lineplot(data=dfl6, y="value", x="date")
|
79 |
+
locator = mdates.DayLocator(interval=10)
|
80 |
+
line.xaxis.set_major_locator(locator)
|
81 |
+
st.pyplot(fig)
|
82 |
+
st.markdown('---')
|
83 |
+
|
84 |
+
elif low_symbol == 'Simas Saham Unggulan' :
|
85 |
+
fig = plt.figure(figsize=(15,5))
|
86 |
+
line = sns.lineplot(data=dfl7, y="value", x="date")
|
87 |
+
locator = mdates.DayLocator(interval=10)
|
88 |
+
line.xaxis.set_major_locator(locator)
|
89 |
+
st.pyplot(fig)
|
90 |
+
st.markdown('---')
|
91 |
+
|
92 |
+
elif low_symbol == 'Schroder 90 Plus Equity Fund' :
|
93 |
+
fig = plt.figure(figsize=(15,5))
|
94 |
+
line = sns.lineplot(data=dfl8, y="value", x="date")
|
95 |
+
locator = mdates.DayLocator(interval=10)
|
96 |
+
line.xaxis.set_major_locator(locator)
|
97 |
+
st.pyplot(fig)
|
98 |
+
st.markdown('---')
|
99 |
+
|
100 |
+
elif low_symbol == 'Sucorinvest Sharia Equity Fund' :
|
101 |
+
fig = plt.figure(figsize=(15,5))
|
102 |
+
line = sns.lineplot(data=dfl9, y="value", x="date")
|
103 |
+
locator = mdates.DayLocator(interval=10)
|
104 |
+
line.xaxis.set_major_locator(locator)
|
105 |
+
st.pyplot(fig)
|
106 |
+
st.markdown('---')
|
107 |
+
|
108 |
+
elif low_symbol == 'Danareksa Mawar Konsumer 10 Kelas A' :
|
109 |
+
fig = plt.figure(figsize=(15,5))
|
110 |
+
line = sns.lineplot(data=dfl10, y="value", x="date")
|
111 |
+
locator = mdates.DayLocator(interval=10)
|
112 |
+
line.xaxis.set_major_locator(locator)
|
113 |
+
st.pyplot(fig)
|
114 |
+
st.markdown('---')
|
115 |
+
if __name__ == '__main__':
|
116 |
+
run()
|
image.png
ADDED
images-icone.png
ADDED
logodifa-removebg-preview.png
ADDED
low.py
ADDED
@@ -0,0 +1,140 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
from streamlit_option_menu import option_menu
|
3 |
+
import plotly.express as px
|
4 |
+
import yfinance as yf
|
5 |
+
import pandas as pd
|
6 |
+
import matplotlib.pyplot as plt
|
7 |
+
import matplotlib.dates as mdates
|
8 |
+
import seaborn as sns
|
9 |
+
import datetime
|
10 |
+
from PIL import Image
|
11 |
+
|
12 |
+
dfl1 = pd.read_csv(r'https://raw.githubusercontent.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/main/Dataset_clean/Low%20Clean/Bahana%20Dana%20Likuid%20Clean.csv')
|
13 |
+
dfl2 = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/Dataset_clean/Low%20Clean/Batavia%20Dana%20Kas%20Maxima%20Clean.csv')
|
14 |
+
dfl3 = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/Dataset_clean/Low%20Clean/BNI%20AM%20Dana%20Likuid%20Clean.csv')
|
15 |
+
dfl4 = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/Dataset_clean/Low%20Clean/Danamas_rupiah_plus%20Clean.csv')
|
16 |
+
dfl5 = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/Dataset_clean/Low%20Clean/Danareksa%20Seruni%20Pasar%20Uang%20II%20Clean.csv')
|
17 |
+
dfl6 = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/Dataset_clean/Low%20Clean/Manulife_dana_kas_kelas_A%20Clean.csv')
|
18 |
+
dfl7 = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/Dataset_clean/Low%20Clean/Sucorinvest%20Money%20Market%20Fund%20Clean.csv')
|
19 |
+
dfl8 = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/Dataset_clean/Low%20Clean/Danareksa%20Seruni%20Pasar%20Uang%20III.csv')
|
20 |
+
dfl9 = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/Dataset_clean/Low%20Clean/Sukorinvest%20Sharia%20Money%20Market%20Fund%20Clean.csv')
|
21 |
+
dfl10 = pd.read_csv(r'https://raw.githubusercontent.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/main/Dataset_clean/Low%20Clean/TRIM%20Kas%202%20Clean.csv')
|
22 |
+
def run():
|
23 |
+
def user_input_low():
|
24 |
+
low_symbol = st.sidebar.selectbox('Mutual Funds', ('Batavia Dana Kas Maxima',
|
25 |
+
'Sucorinvest Money Market Fund',
|
26 |
+
'Bahana Dana Likuid',
|
27 |
+
'Manulife Dana Kas II Kelas A',
|
28 |
+
'TRIM Kas 2',
|
29 |
+
'Danareksa Seruni Pasar Uang III',
|
30 |
+
'Sucorinvest Sharia Money Market Fund',
|
31 |
+
'Danamas Rupiah Plus',
|
32 |
+
'Danareksa Seruni Pasar Uang II',
|
33 |
+
'BNI-AM Dana Likuid'))
|
34 |
+
tickerData = yf.Ticker(low_symbol+'.JK')
|
35 |
+
return low_symbol
|
36 |
+
low_symbol = user_input_low()
|
37 |
+
if low_symbol == 'Batavia Dana Kas Maxima' :
|
38 |
+
|
39 |
+
fig = px.line(dfl2, x="Date", y="Present")
|
40 |
+
fig.update_traces(textposition="bottom right")
|
41 |
+
st.plotly_chart(fig)
|
42 |
+
|
43 |
+
"""*fig = plt.figure(figsize=(15,5))
|
44 |
+
line = sns.lineplot(data=dfl2, y="Present", x="Date")
|
45 |
+
locator = mdates.DayLocator(interval=10)
|
46 |
+
line.xaxis.set_major_locator(locator)
|
47 |
+
st.pyplot(fig)
|
48 |
+
st.markdown('---')"""
|
49 |
+
|
50 |
+
if low_symbol == 'Sucorinvest Money Market Fund' :
|
51 |
+
|
52 |
+
fig = px.line(dfl7, x="Date", y="Present")
|
53 |
+
fig.update_traces(textposition="bottom right")
|
54 |
+
st.plotly_chart(fig)
|
55 |
+
"""
|
56 |
+
fig = plt.figure(figsize=(15,5))
|
57 |
+
line = sns.lineplot(data=dfl7, y="Present", x="Date")
|
58 |
+
locator = mdates.DayLocator(interval=10)
|
59 |
+
plt.ylim(reversed(plt.ylim()))
|
60 |
+
line.xaxis.set_major_locator(locator)
|
61 |
+
line.yaxis.set_major_locator(locator)
|
62 |
+
st.pyplot(fig)
|
63 |
+
st.markdown('---')
|
64 |
+
"""
|
65 |
+
|
66 |
+
elif low_symbol == 'Bahana Dana Likuid' :
|
67 |
+
fig = plt.figure(figsize=(15,5))
|
68 |
+
line = sns.lineplot(data=dfl1, y="Present", x="Date")
|
69 |
+
locator = mdates.DayLocator(interval=10)
|
70 |
+
plt.ylim(reversed(plt.ylim()))
|
71 |
+
line.xaxis.set_major_locator(locator)
|
72 |
+
line.yaxis.set_major_locator(locator)
|
73 |
+
st.pyplot(fig)
|
74 |
+
st.markdown('---')
|
75 |
+
|
76 |
+
elif low_symbol == 'Manulife Dana Kas II Kelas A' :
|
77 |
+
fig = plt.figure(figsize=(15,5))
|
78 |
+
line = sns.lineplot(data=dfl6, y="value", x="date")
|
79 |
+
locator = mdates.DayLocator(interval=10)
|
80 |
+
line.xaxis.set_major_locator(locator)
|
81 |
+
st.pyplot(fig)
|
82 |
+
st.markdown('---')
|
83 |
+
|
84 |
+
elif low_symbol == 'TRIM Kas 2' :
|
85 |
+
fig = plt.figure(figsize=(15,5))
|
86 |
+
line = sns.lineplot(data=dfl10, y="Present", x="Date")
|
87 |
+
locator = mdates.DayLocator(interval=10)
|
88 |
+
plt.ylim(reversed(plt.ylim()))
|
89 |
+
line.xaxis.set_major_locator(locator)
|
90 |
+
line.yaxis.set_major_locator(locator)
|
91 |
+
st.pyplot(fig)
|
92 |
+
st.markdown('---')
|
93 |
+
|
94 |
+
elif low_symbol == 'Danareksa Seruni Pasar Uang III' :
|
95 |
+
fig = plt.figure(figsize=(15,5))
|
96 |
+
line = sns.lineplot(data=dfl5, y="Present", x="Date")
|
97 |
+
locator = mdates.DayLocator(interval=10)
|
98 |
+
line.xaxis.set_major_locator(locator)
|
99 |
+
st.pyplot(fig)
|
100 |
+
st.markdown('---')
|
101 |
+
|
102 |
+
elif low_symbol == 'Sucorinvest Sharia Money Market Fund' :
|
103 |
+
fig = plt.figure(figsize=(15,5))
|
104 |
+
line = sns.lineplot(data=dfl9, y="Present", x="Date")
|
105 |
+
locator = mdates.DayLocator(interval=10)
|
106 |
+
line.xaxis.set_major_locator(locator)
|
107 |
+
st.pyplot(fig)
|
108 |
+
st.markdown('---')
|
109 |
+
|
110 |
+
elif low_symbol == 'Danamas Rupiah Plus' :
|
111 |
+
fig = plt.figure(figsize=(15,5))
|
112 |
+
line = sns.lineplot(data=dfl4, y="value", x="date")
|
113 |
+
locator = mdates.DayLocator(interval=10)
|
114 |
+
line.xaxis.set_major_locator(locator)
|
115 |
+
st.pyplot(fig)
|
116 |
+
st.markdown('---')
|
117 |
+
|
118 |
+
elif low_symbol == 'Danareksa Seruni Pasar Uang II' :
|
119 |
+
|
120 |
+
fig = px.line(dfl5, x="Date", y="Present")
|
121 |
+
fig.update_traces(textposition="bottom right")
|
122 |
+
st.plotly_chart(fig)
|
123 |
+
"""
|
124 |
+
fig = plt.figure(figsize=(15,5))
|
125 |
+
line = sns.lineplot(data=dfl5, y="Present", x="Date")
|
126 |
+
locator = mdates.DayLocator(interval=10)
|
127 |
+
line.xaxis.set_major_locator(locator)
|
128 |
+
st.pyplot(fig)
|
129 |
+
st.markdown('---')
|
130 |
+
"""
|
131 |
+
|
132 |
+
elif low_symbol == 'BNI-AM Dana Likuid' :
|
133 |
+
fig = plt.figure(figsize=(15,5))
|
134 |
+
line = sns.lineplot(data=dfl3, y="Present", x="Date")
|
135 |
+
locator = mdates.DayLocator(interval=10)
|
136 |
+
line.xaxis.set_major_locator(locator)
|
137 |
+
st.pyplot(fig)
|
138 |
+
st.markdown('---')
|
139 |
+
if __name__ == '__main__':
|
140 |
+
run()
|
low_1.py
ADDED
@@ -0,0 +1,123 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
from streamlit_option_menu import option_menu
|
3 |
+
import yfinance as yf
|
4 |
+
import pandas as pd
|
5 |
+
import matplotlib.pyplot as plt
|
6 |
+
import matplotlib.dates as mdates
|
7 |
+
import seaborn as sns
|
8 |
+
import datetime
|
9 |
+
from PIL import Image
|
10 |
+
|
11 |
+
dfb1 = pd.read_csv(r'G:\Final project\deployment2\p2---final-project-ftds-016-rmt-group-002\Dataset_clean\Med Clean\ABF Indonesia Bond Index Fund Clean.csv')
|
12 |
+
dfb2 = pd.read_csv(r'G:\Final project\deployment2\p2---final-project-ftds-016-rmt-group-002\Dataset_clean\Med Clean\Batavia Dana Obligasi Ultima Clean.csv')
|
13 |
+
dfb3 = pd.read_csv(r'G:\Final project\deployment2\p2---final-project-ftds-016-rmt-group-002\Dataset_clean\Med Clean\Danamas_Stabil Clean.csv')
|
14 |
+
dfb4 = pd.read_csv(r'G:\Final project\deployment2\p2---final-project-ftds-016-rmt-group-002\Dataset_clean\Med Clean\Eastspring IDR Fixed Income Fund Kelas A Clean.csv')
|
15 |
+
dfb5 = pd.read_csv(r'G:\Final project\deployment2\p2---final-project-ftds-016-rmt-group-002\Dataset_clean\Med Clean\Eastspring Syariah Fixed Income Amanah Kelas A Clean.csv')
|
16 |
+
dfb6 = pd.read_csv(r'G:\Final project\deployment2\p2---final-project-ftds-016-rmt-group-002\Dataset_clean\Med Clean\Manulife Obligasi Negara Indonesia II Kelas A Clean.csv')
|
17 |
+
dfb7 = pd.read_csv(r'G:\Final project\deployment2\p2---final-project-ftds-016-rmt-group-002\Dataset_clean\Med Clean\Manulife Obligasi Unggulan Kelas A.csv')
|
18 |
+
dfb8 = pd.read_csv(r'G:\Final project\deployment2\p2---final-project-ftds-016-rmt-group-002\Dataset_clean\Med Clean\Schroder Dana Mantap Plus II Clean.csv')
|
19 |
+
dfb9 = pd.read_csv(r'G:\Final project\deployment2\p2---final-project-ftds-016-rmt-group-002\Dataset_clean\Med Clean\Sucorinvest Sharia Sukuk Funds Clean.csv')
|
20 |
+
dfb10 = pd.read_csv(r'G:\Final project\deployment2\p2---final-project-ftds-016-rmt-group-002\Dataset_clean\Med Clean\Sucorinvest Stable Fund Clean.csv')
|
21 |
+
def run():
|
22 |
+
def user_input_low():
|
23 |
+
low_symbol = st.sidebar.selectbox('Mutual Funds', ('ABF Indonesia Bond Index Fund',
|
24 |
+
'Batavia Dana Obligasi Ultima',
|
25 |
+
'Danamas_Stabil',
|
26 |
+
'Eastspring IDR Fixed Income Fund Kelas A',
|
27 |
+
'Eastspring Syariah Fixed Income Amanah Kelas A',
|
28 |
+
'Manulife Obligasi Negara Indonesia II Kelas A',
|
29 |
+
'Manulife Obligasi Unggulan Kelas A',
|
30 |
+
'Schroder Dana Mantap Plus II',
|
31 |
+
'Sucorinvest Sharia Sukuk Funds',
|
32 |
+
'Sucorinvest Stable Fund'))
|
33 |
+
tickerData = yf.Ticker(low_symbol+'.JK')
|
34 |
+
return low_symbol
|
35 |
+
low_symbol = user_input_low()
|
36 |
+
if low_symbol == 'ABF Indonesia Bond Index Fund' :
|
37 |
+
fig = plt.figure(figsize=(15,5))
|
38 |
+
line = sns.lineplot(data=dfb1, y="Present", x="Date")
|
39 |
+
locator = mdates.DayLocator(interval=10)
|
40 |
+
line.xaxis.set_major_locator(locator)
|
41 |
+
st.pyplot(fig)
|
42 |
+
st.markdown('---')
|
43 |
+
|
44 |
+
if low_symbol == 'Batavia Dana Obligasi Ultima' :
|
45 |
+
fig = plt.figure(figsize=(15,5))
|
46 |
+
line = sns.lineplot(data=dfb2, y="Present", x="Date")
|
47 |
+
locator = mdates.DayLocator(interval=10)
|
48 |
+
plt.ylim(reversed(plt.ylim()))
|
49 |
+
line.xaxis.set_major_locator(locator)
|
50 |
+
line.yaxis.set_major_locator(locator)
|
51 |
+
st.pyplot(fig)
|
52 |
+
st.markdown('---')
|
53 |
+
|
54 |
+
elif low_symbol == 'Danamas_Stabil' :
|
55 |
+
fig = plt.figure(figsize=(15,5))
|
56 |
+
line = sns.lineplot(data=dfb3, y="Present", x="Date")
|
57 |
+
locator = mdates.DayLocator(interval=10)
|
58 |
+
plt.ylim(reversed(plt.ylim()))
|
59 |
+
line.xaxis.set_major_locator(locator)
|
60 |
+
line.yaxis.set_major_locator(locator)
|
61 |
+
st.pyplot(fig)
|
62 |
+
st.markdown('---')
|
63 |
+
|
64 |
+
elif low_symbol == 'Eastspring IDR Fixed Income Fund Kelas A' :
|
65 |
+
fig = plt.figure(figsize=(15,5))
|
66 |
+
line = sns.lineplot(data=dfb4, y="value", x="date")
|
67 |
+
locator = mdates.DayLocator(interval=10)
|
68 |
+
line.xaxis.set_major_locator(locator)
|
69 |
+
st.pyplot(fig)
|
70 |
+
st.markdown('---')
|
71 |
+
|
72 |
+
elif low_symbol == 'Eastspring Syariah Fixed Income Amanah Kelas A' :
|
73 |
+
fig = plt.figure(figsize=(15,5))
|
74 |
+
line = sns.lineplot(data=dfb5, y="Present", x="Date")
|
75 |
+
locator = mdates.DayLocator(interval=10)
|
76 |
+
plt.ylim(reversed(plt.ylim()))
|
77 |
+
line.xaxis.set_major_locator(locator)
|
78 |
+
line.yaxis.set_major_locator(locator)
|
79 |
+
st.pyplot(fig)
|
80 |
+
st.markdown('---')
|
81 |
+
|
82 |
+
elif low_symbol == 'Manulife Obligasi Negara Indonesia II Kelas A' :
|
83 |
+
fig = plt.figure(figsize=(15,5))
|
84 |
+
line = sns.lineplot(data=dfb6, y="Present", x="Date")
|
85 |
+
locator = mdates.DayLocator(interval=10)
|
86 |
+
line.xaxis.set_major_locator(locator)
|
87 |
+
st.pyplot(fig)
|
88 |
+
st.markdown('---')
|
89 |
+
|
90 |
+
elif low_symbol == 'Manulife Obligasi Unggulan Kelas A' :
|
91 |
+
fig = plt.figure(figsize=(15,5))
|
92 |
+
line = sns.lineplot(data=dfb7, y="Present", x="Date")
|
93 |
+
locator = mdates.DayLocator(interval=10)
|
94 |
+
line.xaxis.set_major_locator(locator)
|
95 |
+
st.pyplot(fig)
|
96 |
+
st.markdown('---')
|
97 |
+
|
98 |
+
elif low_symbol == 'Schroder Dana Mantap Plus II' :
|
99 |
+
fig = plt.figure(figsize=(15,5))
|
100 |
+
line = sns.lineplot(data=dfb8, y="value", x="date")
|
101 |
+
locator = mdates.DayLocator(interval=10)
|
102 |
+
line.xaxis.set_major_locator(locator)
|
103 |
+
st.pyplot(fig)
|
104 |
+
st.markdown('---')
|
105 |
+
|
106 |
+
elif low_symbol == 'Sucorinvest Sharia Sukuk Funds' :
|
107 |
+
fig = plt.figure(figsize=(15,5))
|
108 |
+
line = sns.lineplot(data=dfb9, y="Present", x="Date")
|
109 |
+
locator = mdates.DayLocator(interval=10)
|
110 |
+
line.xaxis.set_major_locator(locator)
|
111 |
+
st.pyplot(fig)
|
112 |
+
st.markdown('---')
|
113 |
+
|
114 |
+
elif low_symbol == 'Sucorinvest Stable Fund' :
|
115 |
+
fig = plt.figure(figsize=(15,5))
|
116 |
+
line = sns.lineplot(data=dfb10, y="Present", x="Date")
|
117 |
+
locator = mdates.DayLocator(interval=10)
|
118 |
+
line.xaxis.set_major_locator(locator)
|
119 |
+
st.pyplot(fig)
|
120 |
+
st.markdown('---')
|
121 |
+
if __name__ == '__main__':
|
122 |
+
run()
|
123 |
+
|
med.py
ADDED
@@ -0,0 +1,116 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
from streamlit_option_menu import option_menu
|
3 |
+
import yfinance as yf
|
4 |
+
import pandas as pd
|
5 |
+
import matplotlib.pyplot as plt
|
6 |
+
import matplotlib.dates as mdates
|
7 |
+
import seaborn as sns
|
8 |
+
import datetime
|
9 |
+
from PIL import Image
|
10 |
+
|
11 |
+
dfb1 = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/Dataset_clean/Med%20Clean/ABF%20Indonesia%20Bond%20Index%20Fund%20Clean.csv')
|
12 |
+
dfb2 = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/draft_model/Dataset_clean/Med%20Clean/Batavia%20Dana%20Obligasi%20Ultima%20Clean.csv')
|
13 |
+
dfb3 = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/draft_model/Dataset_clean/Med%20Clean/Danamas%20Stabil%20Clean.csv')
|
14 |
+
dfb4 = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/Dataset_clean/Med%20Clean/Eastspring%20IDR%20Fixed%20Income%20Fund%20Kelas%20A%20Clean.csv')
|
15 |
+
dfb5 = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/Dataset_clean/Med%20Clean/Eastspring%20Syariah%20Fixed%20Income%20Amanah%20Kelas%20A%20Clean.csv')
|
16 |
+
dfb6 = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/Dataset_clean/Med%20Clean/Manulife%20Obligasi%20Negara%20Indonesia%20II%20Kelas%20A%20Clean.csv')
|
17 |
+
dfb7 = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/Dataset_clean/Med%20Clean/Manulife%20Obligasi%20Unggulan%20Kelas%20A.csv')
|
18 |
+
dfb8 = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/Dataset_clean/Med%20Clean/Schroder%20Dana%20Mantap%20Plus%20II%20Clean.csv')
|
19 |
+
dfb9 = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/Dataset_clean/Med%20Clean/Sucorinvest%20Sharia%20Sukuk%20Funds%20Clean.csv')
|
20 |
+
dfb10 = pd.read_csv(r'https://github.com/H8-Assignments-Bay/p2---final-project-ftds-016-rmt-group-002/raw/main/Dataset_clean/Med%20Clean/Sucorinvest%20Stable%20Fund%20Clean.csv')
|
21 |
+
def run():
|
22 |
+
def user_input_low():
|
23 |
+
low_symbol = st.sidebar.selectbox('Mutual Funds', ('ABF Indonesia Bond Index Fund',
|
24 |
+
'Batavia Dana Obligasi Ultima',
|
25 |
+
'Danamas_Stabil',
|
26 |
+
'Eastspring IDR Fixed Income Fund Kelas A',
|
27 |
+
'Eastspring Syariah Fixed Income Amanah Kelas A',
|
28 |
+
'Manulife Obligasi Negara Indonesia II Kelas A',
|
29 |
+
'Manulife Obligasi Unggulan Kelas A',
|
30 |
+
'Schroder Dana Mantap Plus II',
|
31 |
+
'Sucorinvest Sharia Sukuk Funds',
|
32 |
+
'Sucorinvest Stable Fund'))
|
33 |
+
tickerData = yf.Ticker(low_symbol+'.JK')
|
34 |
+
return low_symbol
|
35 |
+
low_symbol = user_input_low()
|
36 |
+
if low_symbol == 'ABF Indonesia Bond Index Fund' :
|
37 |
+
fig = plt.figure(figsize=(15,5))
|
38 |
+
line = sns.lineplot(data=dfb1, y="Present", x="date")
|
39 |
+
locator = mdates.DayLocator(interval=10)
|
40 |
+
line.xaxis.set_major_locator(locator)
|
41 |
+
st.pyplot(fig)
|
42 |
+
st.markdown('---')
|
43 |
+
|
44 |
+
if low_symbol == 'Batavia Dana Obligasi Ultima' :
|
45 |
+
fig = plt.figure(figsize=(15,5))
|
46 |
+
line = sns.lineplot(data=dfb2, y="value", x="date")
|
47 |
+
locator = mdates.DayLocator(interval=10)
|
48 |
+
line.xaxis.set_major_locator(locator)
|
49 |
+
st.pyplot(fig)
|
50 |
+
st.markdown('---')
|
51 |
+
|
52 |
+
elif low_symbol == 'Danamas_Stabil' :
|
53 |
+
fig = plt.figure(figsize=(15,5))
|
54 |
+
line = sns.lineplot(data=dfb3, y="value", x="date")
|
55 |
+
locator = mdates.DayLocator(interval=10)
|
56 |
+
line.xaxis.set_major_locator(locator)
|
57 |
+
st.pyplot(fig)
|
58 |
+
st.markdown('---')
|
59 |
+
|
60 |
+
elif low_symbol == 'Eastspring IDR Fixed Income Fund Kelas A' :
|
61 |
+
fig = plt.figure(figsize=(15,5))
|
62 |
+
line = sns.lineplot(data=dfb4, y="value", x="date")
|
63 |
+
locator = mdates.DayLocator(interval=10)
|
64 |
+
line.xaxis.set_major_locator(locator)
|
65 |
+
st.pyplot(fig)
|
66 |
+
st.markdown('---')
|
67 |
+
|
68 |
+
elif low_symbol == 'Eastspring Syariah Fixed Income Amanah Kelas A' :
|
69 |
+
fig = plt.figure(figsize=(15,5))
|
70 |
+
line = sns.lineplot(data=dfb5, y="Present", x="Date")
|
71 |
+
locator = mdates.DayLocator(interval=10)
|
72 |
+
st.pyplot(fig)
|
73 |
+
st.markdown('---')
|
74 |
+
|
75 |
+
elif low_symbol == 'Manulife Obligasi Negara Indonesia II Kelas A' :
|
76 |
+
fig = plt.figure(figsize=(15,5))
|
77 |
+
line = sns.lineplot(data=dfb6, y="value", x="date")
|
78 |
+
locator = mdates.DayLocator(interval=10)
|
79 |
+
line.xaxis.set_major_locator(locator)
|
80 |
+
st.pyplot(fig)
|
81 |
+
st.markdown('---')
|
82 |
+
|
83 |
+
elif low_symbol == 'Manulife Obligasi Unggulan Kelas A' :
|
84 |
+
fig = plt.figure(figsize=(15,5))
|
85 |
+
line = sns.lineplot(data=dfb7, y="value", x="date")
|
86 |
+
locator = mdates.DayLocator(interval=10)
|
87 |
+
line.xaxis.set_major_locator(locator)
|
88 |
+
st.pyplot(fig)
|
89 |
+
st.markdown('---')
|
90 |
+
|
91 |
+
elif low_symbol == 'Schroder Dana Mantap Plus II' :
|
92 |
+
fig = plt.figure(figsize=(15,5))
|
93 |
+
line = sns.lineplot(data=dfb8, y="Present", x="date")
|
94 |
+
locator = mdates.DayLocator(interval=10)
|
95 |
+
line.xaxis.set_major_locator(locator)
|
96 |
+
st.pyplot(fig)
|
97 |
+
st.markdown('---')
|
98 |
+
|
99 |
+
elif low_symbol == 'Sucorinvest Sharia Sukuk Funds' :
|
100 |
+
fig = plt.figure(figsize=(15,5))
|
101 |
+
line = sns.lineplot(data=dfb9, y="value", x="date")
|
102 |
+
locator = mdates.DayLocator(interval=10)
|
103 |
+
line.xaxis.set_major_locator(locator)
|
104 |
+
st.pyplot(fig)
|
105 |
+
st.markdown('---')
|
106 |
+
|
107 |
+
elif low_symbol == 'Sucorinvest Stable Fund' :
|
108 |
+
fig = plt.figure(figsize=(15,5))
|
109 |
+
line = sns.lineplot(data=dfb10, y="value", x="date")
|
110 |
+
locator = mdates.DayLocator(interval=10)
|
111 |
+
line.xaxis.set_major_locator(locator)
|
112 |
+
st.pyplot(fig)
|
113 |
+
st.markdown('---')
|
114 |
+
if __name__ == '__main__':
|
115 |
+
run()
|
116 |
+
|
requirements.txt
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
streamlit
|
2 |
+
matplotlib
|
3 |
+
seaborn
|
4 |
+
numpy
|
5 |
+
scikit-learn
|
6 |
+
plotly
|
7 |
+
streamlit_option_menu
|
8 |
+
|
9 |
+
|