<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sandeela Waseem</title>
    <description>The latest articles on DEV Community by Sandeela Waseem (@sandeela).</description>
    <link>https://dev.to/sandeela</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4187319%2F7c9abc2a-be66-4649-babc-bf4b230320e1.png</url>
      <title>DEV Community: Sandeela Waseem</title>
      <link>https://dev.to/sandeela</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sandeela"/>
    <language>en</language>
    <item>
      <title>I Built StockPilot AI: An Open-Source Investment Research Assistant That Does the Homework for You</title>
      <dc:creator>Sandeela Waseem</dc:creator>
      <pubDate>Sun, 25 Oct 2026 17:54:22 +0000</pubDate>
      <link>https://dev.to/sandeela/i-built-stockpilot-ai-an-open-source-investment-research-assistant-that-does-the-homework-for-you-2f8j</link>
      <guid>https://dev.to/sandeela/i-built-stockpilot-ai-an-open-source-investment-research-assistant-that-does-the-homework-for-you-2f8j</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What if researching investments could take a few clicks instead of hours of browsing financial websites?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That question inspired &lt;strong&gt;StockPilot AI&lt;/strong&gt;, a free, open-source investment research assistant built for people who want to understand stocks and ETFs without becoming financial analysts.&lt;/p&gt;

&lt;p&gt;Imagine you have €20,000 to invest over 12 months. Normally, you might spend hours comparing prices, researching ETFs, studying charts, calculating currency conversions, and estimating how many shares you could afford.&lt;/p&gt;

&lt;p&gt;StockPilot brings those tasks into one browser-based experience.&lt;/p&gt;

&lt;p&gt;Enter your budget, currency, investment duration, preferred market, and investment type. StockPilot automatically retrieves historical market data, analyzes investment candidates using open-source machine learning, and produces a research shortlist.&lt;/p&gt;

&lt;p&gt;It displays:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI-ranked stocks and ETFs from selected US and European markets.&lt;/li&gt;
&lt;li&gt;Historical price charts and momentum indicators.&lt;/li&gt;
&lt;li&gt;A machine-learning assessment of historical price patterns.&lt;/li&gt;
&lt;li&gt;Estimated purchase quantities and remaining cash.&lt;/li&gt;
&lt;li&gt;Currency conversion information.&lt;/li&gt;
&lt;li&gt;Illustrative investment scenarios for the selected duration.&lt;/li&gt;
&lt;li&gt;Candidate comparisons and external research links.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal isn't to predict the stock market perfectly. It's to make the first stage of investment research more accessible, transparent, and less repetitive.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Try StockPilot AI:&lt;/strong&gt; &lt;a href="https://stockpilot-ai.sandeela.workers.dev/" rel="noopener noreferrer"&gt;https://stockpilot-ai.sandeela.workers.dev/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No installation, account registration, or personal financial documents are required.&lt;/p&gt;

&lt;p&gt;For example, I tested the application with a €20,000 budget, a 12-month investment horizon, and both US and European stocks and ETFs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F344an3tf0pvxllsedndn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F344an3tf0pvxllsedndn.png" alt="StockPilot AI investment form showing a 20000 euro budget, 12-month duration, and US and European market selection" width="782" height="580"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The application screened 23 instruments and generated a research shortlist. Its leading diversified ETF candidate was the iShares MSCI World UCITS ETF, with an estimated price of €129.89, 153 whole units affordable, and €126.83 remaining cash.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4l852csfc3rkzg91dx3d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4l852csfc3rkzg91dx3d.png" alt="StockPilot AI recommendation for an iShares MSCI World UCITS ETF showing estimated share price, affordable units, remaining cash, and machine-learning analysis" width="797" height="702"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The application also displayed historical model statistics and an illustrative future value.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fctwkmjvtjy5o96zegueh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fctwkmjvtjy5o96zegueh.png" alt="StockPilot AI comparison cards showing an ETF and ING stock with historical price charts, estimated purchase quantities, and illustrative investment values" width="777" height="642"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These figures are historical research outputs, not guaranteed investment returns.&lt;/p&gt;

&lt;p&gt;I also tested a €100 budget and an invalid €0 budget. The application correctly rejected the zero amount. The €100 test highlighted an important improvement opportunity: the top-ranked candidate can cost more than the available budget, so the interface warns that no whole unit can be purchased.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub repository:&lt;/strong&gt; &lt;a href="https://github.com/sandeela/stockpilot-ai" rel="noopener noreferrer"&gt;https://github.com/sandeela/stockpilot-ai&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Version 1.3 release:&lt;/strong&gt; &lt;a href="https://github.com/sandeela/stockpilot-ai/releases/tag/v1.3.0" rel="noopener noreferrer"&gt;https://github.com/sandeela/stockpilot-ai/releases/tag/v1.3.0&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project is publicly available under the MIT license.&lt;/p&gt;

&lt;p&gt;The repository includes the application source code, Cloudflare Worker deployment file, documentation, and automated tests.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;I wanted the open-source AI component to do meaningful work—not simply add an AI label to a conventional calculator.&lt;/p&gt;

&lt;p&gt;StockPilot uses &lt;strong&gt;TensorFlow.js&lt;/strong&gt;, an Apache-2.0-licensed open-source machine-learning framework, to run a k-nearest-neighbors (KNN) classifier in the user's browser.&lt;/p&gt;

&lt;p&gt;The application follows this workflow:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Retrieve historical market data&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A Cloudflare Worker serves the application and retrieves historical stock and ETF prices through an external market-data source.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Prepare machine-learning features&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The application constructs features from historical price behavior, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;20-day momentum.&lt;/li&gt;
&lt;li&gt;50-day momentum.&lt;/li&gt;
&lt;li&gt;Historical volatility.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These features summarize how an investment behaved over different periods.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Train a local classifier&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;TensorFlow.js performs tensor-based distance calculations for a KNN classifier.&lt;/p&gt;

&lt;p&gt;The model compares current market conditions with similar historical observations. It uses the outcomes of those observations to classify the current pattern.&lt;/p&gt;

&lt;p&gt;The model is trained and evaluated in the browser rather than through a proprietary AI prediction API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Evaluate historical performance&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The application separates training and validation observations chronologically, helping avoid the most obvious form of training-on-future-data leakage.&lt;/p&gt;

&lt;p&gt;In one demonstration, the model reported:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;187 earlier training observations.&lt;/li&gt;
&lt;li&gt;47 historical validation observations.&lt;/li&gt;
&lt;li&gt;63.8% directional validation accuracy.&lt;/li&gt;
&lt;li&gt;76.6% majority-class baseline accuracy.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;This is an important limitation:&lt;/strong&gt; the classifier did not outperform the simple majority-class baseline in that example. I deliberately retained these results rather than presenting the model as more accurate than the evidence supports.&lt;/p&gt;

&lt;p&gt;The model's historical-neighbor percentages are not calibrated probabilities of future profit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Generate an AI-ranked shortlist&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Model classifications contribute to the candidate rankings and eligibility filters. Existing trend checks and investment-planning calculations then help users compare the results.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Run the application without managing a server&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Cloudflare Workers hosts the application. TensorFlow.js runs in the visitor's browser.&lt;/p&gt;

&lt;p&gt;The deployed website remains accessible even when my laptop is switched off.&lt;/p&gt;

&lt;h3&gt;
  
  
  Technology Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;TensorFlow.js:&lt;/strong&gt; Open-source machine-learning runtime.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JavaScript:&lt;/strong&gt; Data processing, classification, and application logic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTML and CSS:&lt;/strong&gt; Browser interface.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cloudflare Workers:&lt;/strong&gt; Hosting and market-data proxy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; Public source code, version history, and releases.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;For me, the most important benefit of open-source AI is &lt;strong&gt;transparency&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Investment tools often present recommendations as authoritative answers without explaining how those answers were produced.&lt;/p&gt;

&lt;p&gt;I wanted a different approach.&lt;/p&gt;

&lt;p&gt;With StockPilot, the feature calculations, historical labels, model logic, validation approach, and ranking rules are inspectable.&lt;/p&gt;

&lt;p&gt;Anyone can review the implementation, challenge its assumptions, or improve it.&lt;/p&gt;

&lt;p&gt;There are also practical advantages:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Local inference:&lt;/strong&gt; The machine-learning calculations run in the user's browser. Their investment budget does not need to be sent to a proprietary AI prediction service.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No paid AI API:&lt;/strong&gt; The classifier does not require a subscription or secret API key.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Replaceable components:&lt;/strong&gt; Developers can experiment with alternative features, classifiers, and evaluation approaches.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reproducibility:&lt;/strong&gt; The repository provides code and tests so others can inspect the implementation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Honest limitations:&lt;/strong&gt; Open code makes it easier to identify when a model performs poorly or when historical evidence is insufficient.&lt;/p&gt;

&lt;p&gt;The application is not completely offline: TensorFlow.js loads from a CDN, and historical market data requires network access. Open-source AI does not automatically mean offline operation.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;p&gt;I used AI-assisted development to help iterate on the application, improve its deployment architecture, introduce machine-learning functionality, and prepare tests and documentation.&lt;/p&gt;

&lt;p&gt;I reviewed the resulting application through browser-based testing and published the source code and release history on GitHub.&lt;/p&gt;

&lt;p&gt;I have not included a DevRelay agent-session recording.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Lazy Payoff
&lt;/h2&gt;

&lt;p&gt;The theme of Week 3 is &lt;strong&gt;Slow and Steady&lt;/strong&gt;: build something that does the work so people don't have to.&lt;/p&gt;

&lt;p&gt;StockPilot's contribution is reducing the repetitive preparation involved in early-stage investment research.&lt;/p&gt;

&lt;p&gt;Instead of manually opening several finance websites, converting prices, calculating quantities, and comparing historical charts, users can enter their preferences once and receive a structured shortlist.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3j7ba179rvgrplxpnso4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3j7ba179rvgrplxpnso4.png" alt="StockPilot AI research results comparing ETF and stock candidates, including historical trends, affordable units, and investment scenarios" width="777" height="642"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It automates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Collecting historical data for supported instruments.&lt;/li&gt;
&lt;li&gt;Comparing momentum and volatility patterns.&lt;/li&gt;
&lt;li&gt;Running local ML classification.&lt;/li&gt;
&lt;li&gt;Calculating whole-share affordability.&lt;/li&gt;
&lt;li&gt;Converting prices between supported currencies.&lt;/li&gt;
&lt;li&gt;Presenting research comparisons in one place.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flpw42tkgkadvehnuusii.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flpw42tkgkadvehnuusii.png" alt="StockPilot AI Compare All BUY Candidates with My Budget feature showing investment candidates, affordability, and side-by-side comparisons" width="800" height="741"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I haven't conducted a controlled time-saving study, so I won't claim a specific number of hours saved. The benefit is consolidating multiple repetitive steps into one workflow.&lt;/p&gt;

&lt;p&gt;The bigger lesson from building StockPilot is that &lt;strong&gt;open-source AI doesn't have to be enormous to be useful&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A relatively small, transparent model can automate a meaningful part of a workflow while leaving its assumptions open to scrutiny.&lt;/p&gt;

&lt;h3&gt;
  
  
  What I'd Improve Next
&lt;/h3&gt;

&lt;p&gt;My next priorities are improving affordability-aware recommendations, expanding validation, evaluating the model against stronger baselines, and incorporating additional financial data where appropriate.&lt;/p&gt;

&lt;p&gt;StockPilot AI is an educational historical research prototype, not personalized financial advice or an automated trading system. Its model outputs and illustrative future values should not be treated as reliable predictions of investment returns.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try it:&lt;/strong&gt; &lt;a href="https://stockpilot-ai.sandeela.workers.dev/" rel="noopener noreferrer"&gt;https://stockpilot-ai.sandeela.workers.dev/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Explore the source:&lt;/strong&gt; &lt;a href="https://github.com/sandeela/stockpilot-ai" rel="noopener noreferrer"&gt;https://github.com/sandeela/stockpilot-ai&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;Overall Hacktoberfest Open-Source AI Challenge: Week 3 — Slow and Steady.&lt;/p&gt;

&lt;p&gt;No partner-specific prize category is claimed.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>opensource</category>
      <category>machinelearning</category>
    </item>
  </channel>
</rss>
