|
import streamlit as st |
|
import yfinance as yf |
|
import pandas as pd |
|
from Pandas_Market_Predictor import Pandas_Market_Predictor |
|
|
|
def fetch_yfinance_data(symbol): |
|
data = yf.download(symbol, start="2022-01-01", end="2022-12-31", interval="5m") |
|
return data |
|
|
|
def calculate_indicators(data): |
|
|
|
data = data.apply(pd.to_numeric, errors='coerce') |
|
|
|
|
|
data['Doji'] = abs(data['Close'] - data['Open']) <= 0.01 * (data['High'] - data['Low']) |
|
data['Inside'] = (data['High'] < data['High'].shift(1)) & (data['Low'] > data['Low'].shift(1)) |
|
return data |
|
|
|
def main(): |
|
st.title("AI Stock Trend Predictor") |
|
|
|
|
|
symbol = st.text_input("Enter stock symbol (e.g., AAPL):", "AAPL") |
|
|
|
|
|
stock_data = fetch_yfinance_data(symbol) |
|
|
|
|
|
stock_data = calculate_indicators(stock_data) |
|
|
|
|
|
my_market_predictor = Pandas_Market_Predictor(stock_data) |
|
|
|
|
|
indicators = ["Doji", "Inside"] |
|
trend = my_market_predictor.Trend_Detection(indicators, 10) |
|
|
|
|
|
st.subheader("Predicted Trend:") |
|
st.write("Buy Trend :", trend['BUY']) |
|
st.write("Sell Trend :", trend['SELL']) |
|
st.write("Hold Trend :", trend['HOLD']) |
|
|
|
|
|
del stock_data |
|
|
|
if __name__ == "__main__": |
|
main() |