Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| from src.components.header import set_page_config, set_custom_css, display_header, display_footer | |
| from src.components.sidebar import display_sidebar | |
| from src.components.technical_analysis import display_technical_analysis | |
| from src.components.financial_analysis import display_financial_analysis | |
| from src.utils.data_loader import get_stock_data, get_financial_data, get_default_dates | |
| from src.utils.technical_indicators import add_technical_indicators | |
| def main(): | |
| # Thiết lập cấu hình trang | |
| set_page_config() | |
| set_custom_css() | |
| # Hiển thị header | |
| display_header() | |
| # Hiển thị sidebar và lấy tham số | |
| symbol, source = display_sidebar() | |
| # Tạo tabs | |
| tab1, tab2 = st.tabs(["📊 Phân tích Kỹ thuật", "💰 Báo cáo Tài chính"]) | |
| # Lấy ngày mặc định | |
| start_date, end_date = get_default_dates() | |
| if symbol: | |
| # Lấy dữ liệu giá | |
| price_data = get_stock_data(symbol, source, start_date, end_date) | |
| if price_data is not None and not price_data.empty: | |
| # Thêm các chỉ báo kỹ thuật | |
| price_data = add_technical_indicators(price_data) | |
| # TAB 1: PHÂN TÍCH KỸ THUẬT | |
| with tab1: | |
| display_technical_analysis(price_data, symbol) | |
| # TAB 2: BÁO CÁO TÀI CHÍNH | |
| with tab2: | |
| # Lấy dữ liệu tài chính | |
| income, balance, cashflow, ratio = get_financial_data(symbol, source) | |
| display_financial_analysis(income, balance, cashflow, ratio, symbol) | |
| else: | |
| st.error(f"Không thể lấy dữ liệu cho mã cổ phiếu {symbol}. Vui lòng kiểm tra lại mã cổ phiếu.") | |
| else: | |
| st.info("Vui lòng nhập mã cổ phiếu để bắt đầu phân tích.") | |
| # Hiển thị footer | |
| display_footer() | |
| if __name__ == "__main__": | |
| main() |