Project Description

The application is designed to filter stocks based on specific trading conditions and return the top 10 stocks that meet these criteria. Utilizing Python and the yfinance library, the application pulls relevant stock data and performs necessary computations to provide the desired results. The project aims to streamline the stock filtering process, ensuring users receive timely and accurate stock recommendations.

Challenge

Problem

The main challenge addressed by this project is the inefficiency in filtering a large volume of stocks based on real-time trading conditions. Users need an automated solution to identify top-performing stocks without manual intervention and excessive execution times.

Project Goals

  • Optimize Stock Filtering: Develop a solution that filters stocks based on specific trading conditions efficiently.
  • Timely Updates: Ensure the results are as up-to-date as possible.
  • Automated Process: Automate the process of pulling stock data, performing computations, and sending out results.

Challenge

Problem

The main challenge addressed by this project is the inefficiency in filtering a large volume of stocks based on real-time trading conditions. Users need an automated solution to identify top-performing stocks without manual intervention and excessive execution times.

Project Goals

  • Optimize Stock Filtering: Develop a solution that filters stocks based on specific trading conditions efficiently.
  • Timely Updates: Ensure the results are as up-to-date as possible.
  • Automated Process: Automate the process of pulling stock data, performing computations, and sending out results.

Solution

The application is designed with the following key functionalities:

  • Data Pre-Processing: Retrieve and curate a dataset of stock symbols that meet initial conditions.
  • Volume Computation: Calculate the average trading volume over three months and compare it with the current trading volume.
  • Percentage Increase Calculation: Determine the percentage increase in trading volume and sort stocks based on this metric.
  • Top 10 Stock Selection: Return the top 10 stocks that meet the specified conditions.

Innovations

  • Automated Data Retrieval: Using the Finnhub API and yfinance library to automate data retrieval.
  • Efficient Data Processing: Pre-processing stocks to create a curated dataset, reducing execution time during main computations.
  • Cloud Integration: Running the application on Azure Functions to offload processing and ensure scalability.

High-Level Architecture

Automated Stock Filtering System Using Python and Azure

System Components

  • Data retrieval & Pre-Processing Module: Uses finnhub API and yfinance to pull stock data and then filters and curates, the initial dataset of stock symbols.
  • Computation Module: Performs volume computations and percentage increase calculations.
  • Notification Module: Sends daily emails with the top 10 stock recommendations.

Core Technologies/Technical Stack

Common Stack

  • Python: Programming language used for development.
  • Azure Functions: Platform for running the application.

Database

  • Microsoft SQL Server: Database for storing the curated stock dataset.

Process

Development Challenges

  • Execution Time: Mitigated by pre-processing stocks and optimizing computations.
  • Data Accuracy: Ensuring real-time data retrieval for up-to-date results.

Testing

  • Unit Testing: Ensuring individual components function correctly.
  • Integration Testing: Verifying interactions between components.
  • Performance Testing: Ensuring the application meets performance criteria.

Process

Development Challenges

  • Execution Time: Mitigated by pre-processing stocks and optimizing computations.
  • Data Accuracy: Ensuring real-time data retrieval for up-to-date results.

Testing

  • Unit Testing: Ensuring individual components function correctly.
  • Integration Testing: Verifying interactions between components.
  • Performance Testing: Ensuring the application meets performance criteria.

Results

  • Efficient Data Pre-Processing: By retrieving a list of stock symbols using the finnhub API and filtering out non-relevant stocks (e.g., those that are not commodity stocks or do not provide options), the application creates a curated dataset. This pre-processing step ensures that only stocks meeting the initial criteria are considered for further computations, significantly reducing the volume of data to be processed.
  • Top 10 Stock Selection: The final step involves sorting the stocks based on the percentage increase in trading volume and selecting the top 10 stocks. This streamlined and automated process ensures that users receive timely and relevant stock recommendations based on real-time trading data.
  • Automated Email Dispatch: The application automatically compiles the list of the top 10 stocks and sends it to users via email each day. This automation eliminates the need for manual intervention and ensures consistent and timely delivery of stock recommendations.
  • Up-to-date Information: Despite the potential delay caused by the execution time of the program, the application is designed to provide as up-to-date information as possible. By scheduling the execution to run later in the day, the application ensures that the data is current and reflects the latest trading activity.
  • User-Friendly Format: The daily emails are structured in a user-friendly format, highlighting the top 10 stocks along with relevant metrics such as the percentage increase in trading volume. This concise and clear presentation makes it easy for users to quickly grasp the key insights and make informed decisions.
  • Serverless Architecture: Azure Functions is a serverless compute service that automatically scales based on demand. This means that the application can handle varying workloads without requiring manual scaling or infrastructure management. Whether the application needs to process data for a few stocks or thousands, Azure Functions dynamically allocates resources to ensure optimal performance.
  • Cost Efficiency: By leveraging a serverless architecture, the application incurs costs only for the actual computer resources used during execution. This pay-as-you-go model helps manage costs effectively, especially during periods of low usage.
  • Reliability and Availability: Azure Functions provides high availability and reliability, ensuring that the application remains accessible and responsive even during peak times. The platform’s robust infrastructure minimizes downtime and ensures that users receive timely stock recommendations without interruptions.
  • Integration with Azure Services: Azure Functions seamlessly integrate with other Azure services, such as Azure Storage and Azure Databases, enabling efficient data storage and retrieval. This integration supports the application’s data processing needs and enhances overall performance.

Let’s optimize your stock filtering process and provide you with real-time, accurate stock recommendations. Contact us today to learn how our solutions can drive your financial success and bring your trading to the next level.

Databricks Consulting Services 
Databricks Consulting Services
Angular 4 to 18
TrueDepth Technology

Let’s Start a Conversation

Request a Personalized Demo of Xorbix’s Solutions and Services

Discover how our expertise can drive innovation and efficiency in your projects. Whether you’re looking to harness the power of AI, streamline software development, or transform your data into actionable insights, our tailored demos will showcase the potential of our solutions and services to meet your unique needs.

Take the First Step

Connect with our team today by filling out your project information.

Address

802 N. Pinyon Ct,
Hartland, WI 53029