| import streamlit as st |
| import yfinance as yf |
| from prophet import Prophet |
| import pandas as pd |
| import matplotlib.pyplot as plt |
|
|
| st.title("💱 Döviz Kuru Tahmin Uygulaması (Prophet)") |
| st.write("Yahoo Finance verilerini kullanarak gelecekteki kur hareketlerini tahmin edin.") |
|
|
| |
| pariteler = { |
| "INR/USD": "INRUSD=X", |
| "USD/TRY": "USDTRY=X", |
| "EUR/USD": "EURUSD=X", |
| "GBP/USD": "GBPUSD=X", |
| "BTC/USD": "BTC-USD" |
| } |
|
|
| secilen_etiket = st.selectbox("Tahmin edilecek pariteyi seçin:", list(pariteler.keys())) |
| symbol = pariteler[secilen_etiket] |
| tahmin_suresi = st.slider("Tahmin gün sayısı:", 7, 90, 30) |
|
|
| |
| @st.cache_data |
| def veri_indir(sym): |
| data = yf.download(sym, period="2y", interval="1d") |
| |
| if isinstance(data.columns, pd.MultiIndex): |
| data.columns = data.columns.get_level_values(0) |
| return data |
|
|
| data = veri_indir(symbol) |
|
|
| if not data.empty: |
| |
| df_prophet = data.reset_index()[['Date', 'Close']] |
| df_prophet.columns = ['ds', 'y'] |
| df_prophet['ds'] = df_prophet['ds'].dt.tz_localize(None) |
|
|
| |
| model = Prophet(daily_seasonality=True) |
| model.fit(df_prophet) |
|
|
| |
| future = model.make_future_dataframe(periods=tahmin_suresi) |
| forecast = model.predict(future) |
|
|
| |
| st.subheader(f"{secilen_etiket} Tahmin Grafiği") |
| fig1 = model.plot(forecast) |
| st.pyplot(fig1) |
|
|
| st.subheader("Trend ve Mevsimsellik Bileşenleri") |
| fig2 = model.plot_components(forecast) |
| st.pyplot(fig2) |
|
|
| |
| if symbol == "INRUSD=X": |
| st.info("Bilgi: 11 Nisan 2026 itibarıyla INR/USD kuru yaklaşık 0.01074 seviyesindedir.") |
| else: |
| st.error("Veri alınamadı, lütfen tekrar deneyin.") |