<?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: Ssolidssnake9</title>
    <description>The latest articles on DEV Community by Ssolidssnake9 (@ssolidssnake9).</description>
    <link>https://dev.to/ssolidssnake9</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%2F4146153%2Faa79043e-0d42-4a64-be30-05f800964927.png</url>
      <title>DEV Community: Ssolidssnake9</title>
      <link>https://dev.to/ssolidssnake9</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ssolidssnake9"/>
    <language>en</language>
    <item>
      <title>BolsaBuddy: a $0, fully-local tracker for the Mexican stock market</title>
      <dc:creator>Ssolidssnake9</dc:creator>
      <pubDate>Sat, 03 Oct 2026 04:06:22 +0000</pubDate>
      <link>https://dev.to/ssolidssnake9/bolsabuddy-a-0-fully-local-tracker-for-the-mexican-stock-market-4lg6</link>
      <guid>https://dev.to/ssolidssnake9/bolsabuddy-a-0-fully-local-tracker-for-the-mexican-stock-market-4lg6</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A friend wanted an investing tool for the Mexican market. Not a dashboard with a subscription. Something simple: what did the IPC do today, am I near a high, and a plain-English line about it. So I built BolsaBuddy this weekend.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live demo:&lt;/strong&gt; &lt;a href="https://ssolidssnake9.github.io/bolsa-buddy/" rel="noopener noreferrer"&gt;https://ssolidssnake9.github.io/bolsa-buddy/&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Repo:&lt;/strong&gt; &lt;a href="https://github.com/ssolidssnake9/bolsa-buddy" rel="noopener noreferrer"&gt;https://github.com/ssolidssnake9/bolsa-buddy&lt;/a&gt; (MIT)&lt;/p&gt;
&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;p&gt;It's all local. Free Yahoo Finance data (^MXX, history back to 1991). A pipeline that fetches, computes momentum (day change, 20/50/200-day averages, drawdown from the 52-week high, streaks, all-time-high alerts), and a local open-weight model that writes the daily brief. A watchlist where your thesis and kill-trigger sit next to the live price. Output is a phone-readable HTML page.&lt;/p&gt;
&lt;h2&gt;
  
  
  The AI part almost went sideways
&lt;/h2&gt;

&lt;p&gt;I wanted Gemma on-device, but the machine I had couldn't hold it. Then I tried TabPFN for a 7-day forecast, and it wanted an account, a license acceptance, and an API token. That killed the whole point: $0, no keys, no accounts, nothing leaves your machine.&lt;/p&gt;

&lt;p&gt;So the brief runs on a small local model, and if the model is down the pipeline writes a templated brief instead of breaking. That fallback rule ended up being the best design decision in the whole project. The tool never goes red.&lt;/p&gt;

&lt;p&gt;Here's what the fallback brief actually reads like on a real day:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;IPC daily brief (2026-10-01) — auto-generated without the AI model:&lt;/p&gt;

&lt;p&gt;The Mexican IPC index closed at 63,828.6 on 2026-10-01, -0.60% on the day. It is down 3 days in a row. It sits -11.49% below its 52-week high of 72,111.41. Close is below the 20-day moving average (64,377.02). Close is below the 50-day moving average (65,248.02). Close is below the 200-day moving average (67,215.54).&lt;/p&gt;

&lt;p&gt;No investment advice. Data: Yahoo Finance free daily feed (^MXX).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Not poetry. But it's true, it's fresh every day, and it never fails.&lt;/p&gt;
&lt;h2&gt;
  
  
  Run it yourself
&lt;/h2&gt;

&lt;p&gt;One command runs the whole thing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python3 fetch.py &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; python3 analyze.py &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; python3 brief.py &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; python3 news.py &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; python3 report.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Smoke test needs no network and no model (uses cached data):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python3 test_smoke.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Watchlist:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python3 watchlist.py add CEMEXCPO.MX &lt;span class="s2"&gt;"cement demand recovering"&lt;/span&gt; &lt;span class="s2"&gt;"breaks below 200-day avg"&lt;/span&gt;
python3 watchlist.py check
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;CI runs the smoke test on every push. The repo README has a screenshot of the report.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why local
&lt;/h2&gt;

&lt;p&gt;A closed AI API would charge per brief forever and send your watchlist and theses to someone else's server. The local model costs nothing, works offline, and keeps your financial thinking private. That's the whole point.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
