<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Hummingbot Newsletter]]></title><description><![CDATA[Published with each Hummingbot release, our newsletter is filled with info about new features in Hummingbot, upcoming events, and updates about our growing trader community.]]></description><link>https://hummingbot.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!r2jy!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa092af1f-84a0-4285-8f63-575d83eaa90c_500x500.png</url><title>Hummingbot Newsletter</title><link>https://hummingbot.substack.com</link></image><generator>Substack</generator><lastBuildDate>Thu, 20 Aug 2026 07:50:07 GMT</lastBuildDate><atom:link href="https://hummingbot.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Hummingbot Foundation]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[hummingbot@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[hummingbot@substack.com]]></itunes:email><itunes:name><![CDATA[Hummingbot Foundation]]></itunes:name></itunes:owner><itunes:author><![CDATA[Hummingbot Foundation]]></itunes:author><googleplay:owner><![CDATA[hummingbot@substack.com]]></googleplay:owner><googleplay:email><![CDATA[hummingbot@substack.com]]></googleplay:email><googleplay:author><![CDATA[Hummingbot Foundation]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Hummingbot Newsletter - July 2026]]></title><description><![CDATA[&#128640; Shipped Hummingbot v2.16 | &#128187; New hbot CLI | &#127942; Agent Builders Cup Hackathon | &#127897;&#65039; The Bot Pod Ep 13: Hackathon Kickoff]]></description><link>https://hummingbot.substack.com/p/hummingbot-newsletter-july-2026</link><guid isPermaLink="false">https://hummingbot.substack.com/p/hummingbot-newsletter-july-2026</guid><dc:creator><![CDATA[Hummingbot Foundation]]></dc:creator><pubDate>Fri, 31 Jul 2026 01:54:07 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!c422!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02276197-31b4-4d24-8342-81533d8be0ea_1456x816.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!c422!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02276197-31b4-4d24-8342-81533d8be0ea_1456x816.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!c422!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02276197-31b4-4d24-8342-81533d8be0ea_1456x816.png 424w, https://substackcdn.com/image/fetch/$s_!c422!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02276197-31b4-4d24-8342-81533d8be0ea_1456x816.png 848w, https://substackcdn.com/image/fetch/$s_!c422!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02276197-31b4-4d24-8342-81533d8be0ea_1456x816.png 1272w, https://substackcdn.com/image/fetch/$s_!c422!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02276197-31b4-4d24-8342-81533d8be0ea_1456x816.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!c422!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02276197-31b4-4d24-8342-81533d8be0ea_1456x816.png" width="1456" height="816" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/02276197-31b4-4d24-8342-81533d8be0ea_1456x816.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:816,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:587897,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hummingbot.substack.com/i/209194945?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02276197-31b4-4d24-8342-81533d8be0ea_1456x816.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!c422!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02276197-31b4-4d24-8342-81533d8be0ea_1456x816.png 424w, https://substackcdn.com/image/fetch/$s_!c422!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02276197-31b4-4d24-8342-81533d8be0ea_1456x816.png 848w, https://substackcdn.com/image/fetch/$s_!c422!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02276197-31b4-4d24-8342-81533d8be0ea_1456x816.png 1272w, https://substackcdn.com/image/fetch/$s_!c422!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02276197-31b4-4d24-8342-81533d8be0ea_1456x816.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Hey Hummingbot community &#128075;</p><p>July was a big month: <strong>v2.16.0</strong> just shipped with a brand-new CLI built for AI agents, the <strong>Agent Builders Cup</strong> hackathon opens August 1 with a <strong>$20,000 prize pool</strong>, and we're kicking it all off live on <strong>The Bot Pod Episode 13</strong>. Let's dive in.</p><div><hr></div><h2>&#128640; Hummingbot v2.16.0 is here</h2><p>Our latest release makes Hummingbot more agent-friendly than ever &#8212; a scriptable CLI, agent memory in Condor, new connectors and chains, and hardened wallet security across the stack. More on the two biggest additions below.</p><p><strong>Highlights:</strong></p><ul><li><p><strong>&#128187; New </strong><code>hbot</code><strong> CLI</strong> &#8212; A non-interactive command-line interface for running, controlling, and monitoring Hummingbot without the TUI. Compact Markdown output, stable exit codes, and <code>--json</code> support make it easy for AI agents and humans alike to drive Hummingbot from scripts, CI, and agent workflows &#8212; no MQTT broker required.</p></li><li><p><strong>&#128279; Robinhood Chain &amp; Unichain</strong> &#8212; Gateway adds two new EVM chains, with Uniswap router, AMM, and CLMM wired up on Robinhood Chain mainnet using official deployment addresses.</p></li><li><p><strong>&#128268; New Gemini &amp; Lambdaplex connectors</strong> &#8212; Spot connectors for <a href="https://www.gemini.com">Gemini</a>, the regulated cryptocurrency exchange, and <a href="https://www.lambdaplex.io/">Lambdaplex</a>, a Hedera-native onchain exchange with offchain matching.</p></li><li><p><strong>&#128256; New Solana routers</strong> &#8212; Titan, DFlow, and OKX DEX join Jupiter as Solana router connectors, with all transaction signing consolidated through a single chokepoint.</p></li><li><p><strong>&#129412; Uniswap v4 routing</strong> &#8212; Routing now includes v4 pools on supported chains (mainnet, Arbitrum, Base, Unichain, and more), picking whichever route prices best. Plus, Permit2 allowances no longer expire every 48 hours by default.</p></li><li><p><strong>&#129504; Condor agent memory &amp; skills</strong> &#8212; Agents now support persistent user memory and reusable skill playbooks, exposed via MCP tools and a new <code>/memory</code> command. The web dashboard also gains a full model picker with an advisor that steers you toward local or free OpenRouter models.</p></li><li><p><strong>&#128202; Interactive reports</strong> &#8212; Condor reports are now self-contained interactive HTML with filters, linked charts, drilldowns, searchable tables, and CSV export &#8212; viewable in the dashboard or offline.</p></li><li><p><strong>&#128274; Wallet security hardening</strong> &#8212; Gateway adds at-rest key encryption, loopback bind by default, opt-in API auth, and rate-limiting for network-reachable deployments, with auto-generated mTLS certificates from Hummingbot API.</p></li></ul><p>&#128073; <strong><a href="https://hummingbot.org/release-notes/2.16.0/">Read the full v2.16.0 release notes</a></strong></p><div><hr></div><h2>&#128187; Run Hummingbot from the Command Line</h2><p>The headline feature of v2.16.0 is <code>hbot</code>, a new non-interactive CLI for running, controlling, and monitoring Hummingbot, without needing to go through the interactive Python shell.</p><p>Every command emits compact Markdown output with stable exit codes, and <code>run</code>/<code>observe</code> support <code>--json</code> for machine-readable output. That means AI agents and humans alike can drive Hummingbot from scripts, CI pipelines, and agent workflows. Under the hood, it runs the same <code>HummingbotApplication</code> and <code>TradingCore</code> engine as the classic client through a headless host.</p><p>Building an agent for the Agent Builders Cup? <code>hbot</code> is your new best friend.</p><p>&#128073; <strong><a href="https://hummingbot.org/client/hbot-cli/">Read the hbot CLI docs</a></strong></p><div><hr></div><h2>&#128268; New Connectors, Chains &amp; Routers</h2><p>v2.16.0 expands where you can trade across both CEXs and DEXs:</p><ul><li><p><strong>&#9889; Gemini</strong> &#8212; Spot connector for the regulated cryptocurrency exchange, trading via the Gemini Fast API (WebSocket) and REST v1 API with limit/market orders, cancellation, balance tracking, and real-time order and trade updates. <em>Thanks to community contributor <a href="https://github.com/erickuhn19">erickuhn19</a>!</em></p></li><li><p><strong>&#9889; Lambdaplex</strong> &#8212; Spot connector for the <a href="https://hedera.com">Hedera</a>-native onchain exchange with an offchain matching engine and onchain settlement. <em>Thanks to community contributor <a href="https://github.com/petioptrv">petioptrv</a>!</em></p></li><li><p><strong>&#128279; Robinhood Chain &amp; Unichain</strong> &#8212; Gateway adds two new EVM chains, with Uniswap router, AMM, and CLMM wired up on Robinhood Chain mainnet using official deployment addresses.</p></li><li><p><strong>&#128256; Titan, DFlow &amp; OKX DEX</strong> &#8212; Three new Solana router connectors join Jupiter, with all Solana transaction signing consolidated through a single signing chokepoint.</p></li></ul><div><hr></div><h2>&#127942; Agent Builders Cup Hackathon &#8212; Build Window Opens August 1</h2><p>The <strong>Agent Builders Cup</strong> is an agentic strategy hackathon run by <a href="https://www.botcamp.xyz">Botcamp</a>, our affiliated education company &#8212; and it's almost go time.</p><p>Build a <strong>Hummingbot V2 Controller</strong> or <strong>Condor Agent</strong>, apply to one of six exchange sponsor teams &#8212; <strong>Orca, Derive, Gate, XRPL, Bitget, and Meteora</strong> &#8212; and compete for a <strong>$20,000 total prize pool</strong>. Each sponsor selects two agents, and the finalists face off in a <strong>48-hour live trading competition</strong>.</p><p><strong>&#128197; Key dates:</strong></p><ul><li><p><strong>August 1&#8211;31</strong> &#8212; Build window</p></li><li><p><strong>September</strong> &#8212; Judging</p></li><li><p><strong>October 1&#8211;2</strong> &#8212; Livestreamed finals</p></li><li><p><strong>October 7</strong> &#8212; Winners announced at our Token2049 side event in Singapore</p></li></ul><p>&#128073; <strong><a href="https://www.botcamp.xyz/hackathons/agent-builders-cup-1">Register for the Agent Builders Cup</a></strong> &#8212; full schedule, rules, workshops, and team sponsors at <a href="https://www.botcamp.xyz/hackathons">botcamp.xyz/hackathons</a></p><div><hr></div><h2>&#127897;&#65039; The Bot Pod Episode 13: Hackathon Kickoff</h2><p>Don&#8217;t miss the official <strong>Agent Builders Cup kickoff</strong> on The Bot Pod on <strong>Friday, July 31</strong>! We'll walk through the hackathon format, the exchange sponsor teams, what makes a winning agent, and how to get started building &#8212; plus the latest across the Hummingbot ecosystem.</p><p>Bring your questions &#8212; this is the best place to get them answered before the build window opens.</p><div id="youtube2-zzDOBUToICA" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;zzDOBUToICA&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/zzDOBUToICA?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://hummingbot.substack.com/p/hummingbot-newsletter-july-2026?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Hummingbot Newsletter! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://hummingbot.substack.com/p/hummingbot-newsletter-july-2026?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://hummingbot.substack.com/p/hummingbot-newsletter-july-2026?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><div><hr></div><p><em>Happy trading,</em><br><em>The Hummingbot Team</em></p><p><a href="https://hummingbot.substack.com/">Get the newsletter</a> &#183; <a href="https://discord.gg/hummingbot">Join Discord</a> &#183; <a href="https://github.com/hummingbot/hummingbot">GitHub</a></p>]]></content:encoded></item><item><title><![CDATA[Gateway Security Improvements]]></title><description><![CDATA[Hey Hummingbot community &#128075;]]></description><link>https://hummingbot.substack.com/p/gateway-security-improvements</link><guid isPermaLink="false">https://hummingbot.substack.com/p/gateway-security-improvements</guid><dc:creator><![CDATA[Hummingbot Foundation]]></dc:creator><pubDate>Sat, 27 Jun 2026 02:38:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!r2jy!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa092af1f-84a0-4285-8f63-575d83eaa90c_500x500.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey Hummingbot community &#128075;</p><p>Lately, we&#8217;ve been monitoring a sharp rise in automated bots scanning cloud servers for vulnerabilities. These bots probe for exposed API ports and attempt to exploit any they find &#8212; including setups where Gateway or Hummingbot API are reachable from the public internet.</p><p>To keep your funds and private keys safe, we&#8217;ve shipped <strong><a href="https://hummingbot.org/release-notes/2.15.1/">Gateway v2.15.1</a></strong><a href="https://hummingbot.org/release-notes/2.15.1/">,</a> a security-only patch that removes unsafe wallet operations from the server side. We strongly recommend updating immediately &#8212; especially if you&#8217;re running on a cloud server.</p><p>Hummingbot API was updated at the same time to reflect these changes.</p><p><strong>What this means for you:</strong></p><p>Going forward, wallets must be imported using keys you generate <em>externally</em> &#8212; either via <code>POST /wallet/add</code> (Gateway) or <code>POST /accounts/gateway/add-wallet</code> (Hummingbot API). Safe wallet routes (viewing, adding hardware wallets, removing, setting default) are unchanged.</p><p><strong>Action required:</strong></p><ul><li><p>Update Gateway to <strong>v2.15.1</strong></p></li><li><p>Pull the latest <code>main</code> branch of Hummingbot API</p></li></ul><p>&#9888;&#65039; If your setup relies on the removed wallet operations, you&#8217;ll need to switch to importing wallets instead.</p><div><hr></div><p><strong>&#128274; Pro tip: Secure your cloud setup with Tailscale</strong></p><p>Running Hummingbot on a cloud server? Consider using <strong>Tailscale</strong> to access your instance without exposing it to the public internet. It creates a private network (&#8221;tailnet&#8221;) so only your devices can reach your Hummingbot API and Gateway &#8212; no open ports, no scanning bots.</p><p>We&#8217;ve put together a step-by-step guide:<br>&#128279; <a href="https://hummingbot.org/blog/securing-condor-and-hummingbot-api-with-tailscale/">https://hummingbot.org/blog/securing-condor-and-hummingbot-api-with-tailscale/</a></p><div><hr></div><p>This is a <strong>strongly recommended update</strong> for all users, especially anyone running on cloud infrastructure. Stay safe out there! &#128274;</p><p>Michael Feng</p><p>Co-founder, Hummingbot</p>]]></content:encoded></item><item><title><![CDATA[Hummingbot Newsletter - June 2026]]></title><description><![CDATA[&#128640; Shipped Hummingbot v2.15 | &#127897;&#65039; Jupiter RFQ Hack | &#129309; New Lighter Connector and Hyperliquid Fixes | &#127942; GRVT Team Trading League]]></description><link>https://hummingbot.substack.com/p/hummingbot-newsletter-june-2026</link><guid isPermaLink="false">https://hummingbot.substack.com/p/hummingbot-newsletter-june-2026</guid><dc:creator><![CDATA[Hummingbot Foundation]]></dc:creator><pubDate>Wed, 17 Jun 2026 22:34:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!99Jg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F488c5008-e586-480a-8668-9c68c0494bcd_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!99Jg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F488c5008-e586-480a-8668-9c68c0494bcd_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!99Jg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F488c5008-e586-480a-8668-9c68c0494bcd_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!99Jg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F488c5008-e586-480a-8668-9c68c0494bcd_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!99Jg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F488c5008-e586-480a-8668-9c68c0494bcd_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!99Jg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F488c5008-e586-480a-8668-9c68c0494bcd_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!99Jg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F488c5008-e586-480a-8668-9c68c0494bcd_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/488c5008-e586-480a-8668-9c68c0494bcd_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1299237,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hummingbot.substack.com/i/202501257?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F488c5008-e586-480a-8668-9c68c0494bcd_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!99Jg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F488c5008-e586-480a-8668-9c68c0494bcd_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!99Jg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F488c5008-e586-480a-8668-9c68c0494bcd_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!99Jg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F488c5008-e586-480a-8668-9c68c0494bcd_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!99Jg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F488c5008-e586-480a-8668-9c68c0494bcd_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Hey Hummingbot community &#128075;</p><p>Since our last newsletter, we&#8217;ve been pushing improvements to the new <a href="https://condor.hummingbot.org/">Condor</a> AI harness and the underlying Hummingbot API code repos on an almost-daily basis. Now, you can schedule and send regular reports via Telegram, as described in the podcast episode below, and use Condor with OpenRouter and other model providers. Currently, we&#8217;re overhauling the agent framework design, giving them personalization and memory, and improving their ability to help you manage trading bots.</p><p>These Condor updates use the fresh, new <strong>v2.15.0 release</strong>, which we shipped yesterday. This release also includes a new connector to the Lighter perps DEX, which has been heavily requested by the community, along with fixes to Hyperliquid, position management in perpetual connectors, and other updates.</p><p>I wanted to highlight a fun experiment we&#8217;re conducting with GRVT: <strong>a team trading competition</strong> that anyone can join, along with a new episode of The Bod Pod, in which Fede describes how he found a vulnerability in Jupiter&#8217;s RFQ system and became a <strong>white-hat hacker</strong> for a day.</p><p>Finally, check out the new <a href="https://reporting.hummingbot.org/">Hummingbot Reporting</a>, a real-time dashboard of trading volume by exchange generated by active Hummingbot instances around the world.</p><p>Michael Feng<br>Co-founder, Hummingbot</p><p></p><div><hr></div><h2><strong>&#128640; Hummingbot v2.15.0 is here</strong></h2><p>Our latest release includes the oft-requested connector to Lighter, exchange improvements, and security and AI upgrades across the stack.</p><p><strong>Highlights:</strong></p><ul><li><p><strong>&#9889; New Lighter connector</strong> &#8212; Spot and perpetual connectors for <a href="https://lighter.xyz/">Lighter</a>, a decentralized exchange built on a zero-knowledge rollup with CLOB order books and verifiable on-chain execution. Includes candles data feeds for both markets. </p></li><li><p><strong>Hyperliquid improvements</strong> &#8212; Foundation builder code support for mainnet order attribution, fixed spot candles, websocket timeout for connection stability, and a fix for stale perpetual positions after partial close.</p></li><li><p><strong>Perpetual connector updates</strong> &#8212; Better ONEWAY position hold management across backtesting and live trading, improved position mode setting flow, and a fix for initial positions initialization.</p></li><li><p><strong>&#128274; Tailscale security</strong> &#8212; Condor and Hummingbot API now support <a href="https://tailscale.com/">Tailscale</a>, so you can reach order placement, balances, and bot control over a private tailnet instead of exposing port 8000 to the public internet.</p></li><li><p><strong>&#129302; OpenRouter support in Condor</strong> &#8212; Use OpenRouter as an LLM provider for <code>/agent</code>, with access to a large model catalog through a single API key &#8212; including free models at $0 pricing.</p></li><li><p><strong>&#128279; Chainstack RPC provider</strong> &#8212; Gateway adds Chainstack as a cross-chain RPC provider for Solana and EVM networks for lower latency and more reliable swap execution.</p></li><li><p><strong>&#127754; Gateway CLMM fixes</strong> &#8212; Inverted BUY price fix on Orca/Meteora, real Uniswap pool balances, an optional <code>binCount</code> param on <code>pool-info</code> for liquidity distribution, and extended Ethereum tx receipt polling.<br></p><p><span data-color="rgb(187, 190, 191)" style="color: rgb(187, 190, 191);">&#128073; </span><strong><a href="https://hummingbot.org/release-notes/2.15.0/">Read the full v2.15.0 release notes</a></strong></p><p></p></li></ul><div><hr></div><h2><strong>&#127897;&#65039; New Podcast: The Jupiter RFQ Hack</strong></h2><p>The latest episode dives into the backstory behind a vulnerability in the JupiterZ RFQ system that our CTO Fede discovered and helped patch :</p><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://x.com/cardosofede/status/2065901384612847707&quot;,&quot;full_text&quot;:&quot;1/ This is the full story of how I found a JupiterZ RFQ vulnerability, extracted ~$45k in a controlled white-hat test, returned the funds, and worked with the teams involved to get the issue fixed and safely back in production.\n\nThe One-Byte Heist &#129525;&quot;,&quot;username&quot;:&quot;cardosofede&quot;,&quot;name&quot;:&quot;Fede Cardoso&quot;,&quot;profile_image_url&quot;:&quot;https://pbs.substack.com/profile_images/1111467861002862593/OtnkB7Xc_normal.jpg&quot;,&quot;date&quot;:&quot;2026-06-13T20:57:27.000Z&quot;,&quot;photos&quot;:[],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:4,&quot;retweet_count&quot;:21,&quot;like_count&quot;:151,&quot;impression_count&quot;:19636,&quot;expanded_url&quot;:null,&quot;video_url&quot;:null,&quot;video_preview_media_key&quot;:null,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><div id="youtube2-ZdoHxwxVuMM" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;ZdoHxwxVuMM&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/ZdoHxwxVuMM?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>We also discuss <strong>tokenized equities</strong> &#8212; Backpack exchange now offers transferable tokenized shares (e.g., SpaceX) and show off the new <strong>Condor reports</strong> feature, custom scheduled reports which now you can schedule and deliver via Telegram.</p><p></p><div><hr></div><h2><strong>&#128202; New Live Reporting Site</strong></h2><p>We&#8217;ve launched a brand-new reporting site at <strong><a href="https://reporting.hummingbot.org/">reporting.hummingbot.org</a></strong> &#8212; a real-time window into Hummingbot usage worldwide.</p><p>Since Jan 2025, Hummingbot instances have reported over <strong>$36B in aggregated trade volume</strong> across <strong>300+ connectors</strong> from <strong>100K+ instances</strong>. The dashboard tracks it all live:</p><ul><li><p><strong>&#128225; Live feed</strong> &#8212; Trade data collected by exchange, updating in real time as instances around the world report in.</p></li><li><p><strong>&#9201;&#65039; Minute-by-minute snapshots</strong> &#8212; Drill into per-minute activity (reports, instances, and volume), and click any snapshot to dig deeper.</p></li><li><p><strong>&#128200; Headline metrics</strong> &#8212; Total trade volume, 24h volume, active instances, and active connectors at a glance.</p></li></ul><p>&#128073; <strong><a href="https://reporting.hummingbot.org/">Explore the live dashboard</a></strong></p><p></p><div><hr></div><h2><strong>&#127942; GRVT Team Trading League</strong></h2><p>GRVT is officially launching their <strong>Team Trading League</strong> &#8212; a team-based trading competition &#8212; and we&#8217;re putting together a powerhouse Hummingbot team.</p><p>This is a fantastic opportunity for our community to pool our trading volumes, collaborate on strategies, and climb the global leaderboard together.</p><ul><li><p>&#128214; <strong>Learn more:</strong> <a href="https://help.grvt.io/en/articles/15341353-grvt-team-trading-league">GRVT Team Trading League details</a></p></li><li><p>&#127903;&#65039; <strong>Join with our invite code:</strong> <a href="https://grvt.io/?ref=6ZUODT5">grvt.io/?ref=6ZUODT5</a></p></li></ul><p>Form up, run your bots, and let&#8217;s climb the leaderboard with the Hummingbot community.</p><p></p><div><hr></div><h2><strong>&#127919; Register for the Agent Builders Cup Hackathon</strong></h2><p>The <strong>Agent Builders Cup</strong> is coming &#8212; a multi-round hackathon for builders creating trading agents on Hummingbot, culminating in the finals. Registration is open now.</p><p>&#128073; <strong><a href="https://www.botcamp.xyz/hackathons">Register for the hackathon</a></strong></p><p></p><div><hr></div><h2><strong>Security Notice</strong></h2><p>Beware of scammers impersonating the Hummingbot Foundation:</p><ul><li><p>We <strong>NEVER</strong> DM you first</p></li><li><p>We <strong>NEVER</strong> sell or airdrop HBOT tokens</p></li><li><p>HBOT is only earned through completing bounties</p></li><li><p>Report suspicious activity in our Discord #scam-reports channel</p></li></ul><div><hr></div><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://hummingbot.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Hummingbot Newsletter! Subscribe for free to get notified of each monthly release.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The Bot Pod Episode 9: Tracking Bot Performance in Condor]]></title><description><![CDATA[Dogfooding our AI harness to improve trading operations]]></description><link>https://hummingbot.substack.com/p/the-bot-pod-episode-9-tracking-bot</link><guid isPermaLink="false">https://hummingbot.substack.com/p/the-bot-pod-episode-9-tracking-bot</guid><dc:creator><![CDATA[Hummingbot Foundation]]></dc:creator><pubDate>Wed, 03 Jun 2026 21:34:36 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/200521077/1b822eb12e9d1ed982edd336a52b6613.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p></p><p>We&#8217;re back with Episode 9 of <strong>The Bot Pod</strong>! This week, Mike and Fede are eating their own cooking&#8212;they&#8217;ve started running Condor internally for QA and client market making&#8212;and they put it on display: deploying live PMM Mister bots with the new <strong>global take-profit / stop-loss</strong>, reading five-minute controller snapshots in real time, and using a Condor <strong>routine to reverse-engineer Hyperliquid&#8217;s HLP vault</strong>. Along the way: a hard-won lesson on slippage, a sober take on Worldcoin, an urgent reminder to lock down your server against AI-driven attacks, and the new F1-style <strong>Agent Builders Cup</strong> hackathon.</p><ul><li><p><strong>Watch the full episode:</strong> <a href="https://youtu.be/HUVPhGsrJrA">YouTube</a></p></li><li><p><strong>Register for the hackathon</strong>: <a href="https://www.botcamp.xyz/">botcamp.xyz</a> </p></li><li><p><strong>Install Condor</strong>: <a href="https://condor.hummingbot.org/">condor.hummingbot.org</a></p></li></ul><div><hr></div><h2><strong><br>Episode Highlights</strong></h2><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=0">0:00</a> Dogfooding Condor</strong></h3><p>The big news: the team is now using Condor internally&#8212;both to run their QA operations and to power a new market making effort for clients. The thesis for the episode is simple: by using their own product, they&#8217;ll make it better for everyone.</p><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=60">1:00</a> Market Discussion: Saylor Sells &amp; &#8220;Is Crypto Dead?&#8221;</strong></h3><p>Michael Saylor sold Bitcoin for the first time, and Mike&#8217;s TradFi friends are texting him asking if crypto is dead. Both hosts read that as a contrarian buy signal&#8212;there are only 21 million Bitcoin, and fiat keeps getting printed.</p><blockquote><p>&#8220;When all the people are asking &#8216;Is crypto dead?&#8217;, it&#8217;s probably the best signal to buy.&#8221; &#8212; Fede</p></blockquote><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=180">3:00</a> HYPE, LP Mistakes &amp; Buying at All-Time Highs</strong></h3><p>HYPE was the week&#8217;s outlier, ripping from ~58 to ~72. Both hosts had conviction early but fumbled the execution: Mike bought HYPE six months ago around the HIP-3 launch, then parked it in an Orca HYPE-SOL LP pool and watched it convert entirely to SOL. Fede did the same, then later flipped a small position from ~$40 to ~$70K-equivalent for a tidy $3K profit. The recurring lesson: conviction is cheap; clean execution is hard.</p><blockquote><p>&#8220;I never like to buy things at the all-time high.&#8221; &#8212; Fede</p></blockquote><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=600">10:00</a> The Worldcoin Identity Bet</strong></h3><p>A genuine disagreement. Fede is bullish on Worldcoin&#8217;s role in proving humanity&#8212;logins for dating apps where you can&#8217;t tell a human from an AI. Mike is skeptical: identity verification is a small market, Worldcoin has scanned roughly 1% of humans, and the token has historically traded like a Sam Altman&#8211;backed meme coin.</p><blockquote><p>&#8220;I think the revenue potential for identity verification is pretty low. It&#8217;s not a big market.&#8221; &#8212; Mike</p></blockquote><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=780">13:00</a> What&#8217;s New in Condor: Five-Minute Controller Snapshots</strong></h3><p>The week&#8217;s headline feature. Condor and Hummingbot API now store a <strong>snapshot of each running controller every five minutes</strong>&#8212;realized and unrealized P&amp;L, volume traded, positions held, executor state, and any custom info the controller wants to surface (like its current signal). It&#8217;s the same mechanism behind the portfolio page, now applied to live bots, giving you the full progression of a bot&#8217;s performance instead of just a point-in-time picture. There&#8217;s also a new routine <strong>download</strong> feature and fixes across the executors page.</p><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=1320">22:00</a> PMM Mister: Global Take-Profit &amp; Stop-Loss</strong></h3><p>PMM Mister gains a <strong>global stop-loss and global take-profit</strong> on top of the per-executor ones. The idea: be more aggressive to generate more volume, then use the global thresholds to control inventory and reset back to zero. In between, the bot does a lot of market making; on a deviation, it stops and starts over&#8212;turning a continuous process into one with discrete, manageable outcomes.</p><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=1380">23:00</a> PMM Mister vs. pmm_v1: Where to Start</strong></h3><p>Mike&#8217;s primer for newcomers. PMM Mister is the advanced controller: self-managing executors across many order levels, each with its own SL/TP, and a &#8220;position held&#8221; bucket that lets the bot hold inventory rather than dumping at a loss. Powerful, but complex&#8212;so beginners should start with <strong>pmm_v1</strong>, which replicates the classic pure market making strategy, then graduate up.</p><blockquote><p>&#8220;If you&#8217;re totally new, start with a simple <code>pmm_v1</code> controller. Once you&#8217;re comfortable, migrate to PMM Mister&#8212;that&#8217;s how you run things the way a professional market maker does.&#8221; &#8212; Mike</p></blockquote><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=1560">26:00</a> Deploying Two Controllers: 3% vs. 7% Exposure</strong></h3><p>Live demo: Fede deploys one bot (a single Docker container) running two BTC controllers in parallel&#8212;$1,000 each, one exposing 7% of quote around the mid-price, the other 3%. The 7% bot does roughly double the volume of the 3% bot, but also carries more inventory risk. Mike explains how the Hummingbot API spins up the container, runs the strategies, and begins reporting performance into the snapshot view.</p><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=2040">34:00</a> Securing Your Server: Tailscale &amp; the AI Bot Threat</strong></h3><p>The episode&#8217;s most important PSA. The team is seeing freshly deployed Hummingbot API servers get <strong>scanned by AI-driven bots within moments</strong> of going live. Condor&#8217;s install scripts now close all exposed ports and put the machine on a <strong>Tailscale</strong> private network, so only your own devices can reach it. Cloudflare One/Tunnels is a valid alternative, and a community tip flags Socket Firewall for supply-chain scanning. Guides are landing on the Hummingbot site and Condor docs shortly.</p><blockquote><p>&#8220;The moment you create a server, there are AI-based bots trying to infiltrate it. Because of AI, the game has changed.&#8221; &#8212; Mike</p></blockquote><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=2400">40:00</a> Reading the Numbers: Volume &amp; Basis-Point Take-Profits</strong></h3><p>Why does a bot with only ~$15 per side rack up hundreds of dollars in volume but pennies in P&amp;L? Because the take-profit is set to <strong>one basis point (0.0001)</strong>&#8212;the bot fills, immediately books a sliver of profit, and goes again, hedging each fill the instant it lands. Widen the take-profit to three basis points and the P&amp;L profile changes entirely. It&#8217;s a clean illustration of how PMM Mister generates turnover while keeping risk tightly bounded.</p><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=2880">48:00</a> Editing a Running Bot&#8217;s Config on the Fly</strong></h3><p>Condor maintains <strong>two layers of config</strong>: the general config you author, and a live copy baked into the deployed bot. Fede edits the live bot&#8217;s min-base-percentage from 0.2 to 0.1 and saves&#8212;updating the running bot without a restart, and without touching the original. Controllers mark which fields are <code>is_updatable</code>, so unsafe changes (like the trading pair or connector) are silently ignored.</p><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=3000">50:00</a> &#8220;How Do I Make Money?&#8221; &#8212; The Honest Answer</strong></h3><p>The question they get every single week, answered honestly. Markets are efficient; there&#8217;s no black box. Expect to break even or lose a little at first while you learn. Real edge comes from a specific inefficiency&#8212;providing liquidity on a thin venue and hedging on a deep one, getting paid by a client to market make their token, or earning liquidity rewards. Hummingbot and Condor don&#8217;t print money; they make running that operation at scale dramatically easier.</p><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=3240">54:00</a> Routines: Dissecting Hyperliquid&#8217;s HLP Vault</strong></h3><p>The standout demo. Using a Condor routine, Fede pulls Hyperliquid&#8217;s public API to x-ray the <strong>HLP vault</strong>: ~$349M TVL, ~1.35% APR, split into a losing &#8220;strategy A&#8221; and a profit-making liquidator &#8220;strategy B&#8221; that net out to roughly break-even. Because Hyperliquid lacks Binance-style hedge mode, the vault runs two inversely correlated strategies to hedge. Mike&#8212;a former HLP investor who exited because it was a black box&#8212;notes the vault is a big reason Hyperliquid launched with deep liquidity. Fede also debunks a viral claim (via hl.eco) that Hyperliquid has 3&#215; Binance&#8217;s liquidity: he asked Condor, and it wasn&#8217;t true.</p><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=3720">1:02:00</a> Why Routines Are Condor&#8217;s Best Feature</strong></h3><p>Mike&#8217;s verdict: routines are the most useful thing they&#8217;ve shipped in Condor. Each one is Python that can call any API and emit a portable <strong>HTML report</strong>&#8212;graphs, indicators, markdown&#8212;that you can email or send over Telegram. Reports can already be scheduled hourly or weekly; auto-delivery and a community routine hub are coming.</p><blockquote><p>&#8220;Routines are the most useful feature we&#8217;ve added to Condor so far.&#8221; &#8212; Mike</p></blockquote><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=3840">1:04:00</a> XRPL, Rewards &amp; the Exchange Land Grab</strong></h3><p>On a viewer question about XRPL&#8217;s low fees: it&#8217;s a key Hummingbot partner, and the <strong>XRP Liquid</strong> program is currently giving away <strong>1,000 XRP per week</strong> to liquidity providers on pairs like XRP-RLUSD. Zooming out, Mike frames the broader land grab&#8212;Hyperliquid adding prediction markets, Polymarket and Kalshi adding perps&#8212;where every venue is converging on every market type, and Hummingbot&#8217;s job is to serve the traders, not the exchanges.</p><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=4260">1:11:00</a> Condor Builders Cup: An F1-Style Trading Competition</strong></h3><p>Coming up: an F1-style trading competition. Each team picks two strategies; Botcamp&#8217;s slots go to the top demo-day strategies from Cohort 13&#8212;Raj&#8217;s tight, academically-grounded market maker and Wei Hong&#8217;s cross-exchange perp strategy. ~40 people have already registered. Builders get about a month to refine a strategy and apply to a sponsor team (each with its own criteria), then each winning agent gets <strong>$1,000 in capital</strong> to race over a <strong>48-hour live competition</strong>. Register and stake your idea at <a href="https://www.botcamp.xyz/">botcamp.xyz</a>.</p><blockquote><p>&#8220;Each winning agent starts with $1,000 in capital and races during a 48-hour competition to see who wins.&#8221; &#8212; Mike</p></blockquote><div><hr></div><h2><strong>Next Week</strong></h2><p>The team keeps dogfooding Condor for their internal QA and client market making, with more fixes landing weekly. Watch for the Tailscale security guide on the Hummingbot site and Condor docs, and get registered for the Condor Builders Cup at <a href="https://www.botcamp.xyz/">botcamp.xyz</a> before the build period opens. Join us live&#8212;possibly on a Wednesday next time&#8212;on <a href="https://www.youtube.com/@Hummingbot">YouTube</a>.</p><div><hr></div><h2><strong>Full Transcript</strong></h2><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=0">00:00:00</a> Intro: Dogfooding Condor</strong></h3><p><strong>Mike:</strong> Hey everyone, I want to welcome everyone to the ninth episode of the Bot Pod podcast. I&#8217;m one of the co-maintainers, along with Fede, of the Hummingbot open source framework. Hey, Fede&#8212;where are you right now?</p><p><strong>Fede:</strong> I&#8217;m in Italy, in Sardinia.</p><p><strong>Mike:</strong> Nice. Fede&#8217;s still a millennial&#8212;he doesn&#8217;t have a mortgage and a kid like me&#8212;so he&#8217;s able to work from anywhere. He&#8217;s in Sardinia working there for the whole month.</p><p>We&#8217;re quite excited to do another episode. We&#8217;re recording on a Wednesday today, and it looks like we already have lots of folks live. Feel free to drop any questions about Hummingbot or Condor&#8212;we&#8217;re going to demo some new features that Fede has added to Condor in the last week.</p><p>We&#8217;re pretty excited because we&#8217;re actually starting to use Condor internally ourselves, to manage our internal QA operations as well as a new market making effort we&#8217;re starting for our clients. By dogfooding our own product, hopefully we can make it better for you guys as well.</p><p>But, like we always do, let&#8217;s start with a discussion about where the markets are. Unfortunately, it&#8217;s been a rough week.</p><div><hr></div><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=60">00:01:00</a> Market Discussion: Saylor Sells &amp; &#8220;Is Crypto Dead?&#8221;</strong></h3><p><strong>Mike:</strong> I think because Michael Saylor sold Bitcoin for the first time, it&#8217;s caused some commotion in the markets. My friends in TradFi are asking me, &#8220;Is crypto dead?&#8221; But honestly, from my side, I actually look at it as a good time to possibly buy some Bitcoin. At the end of the day, there&#8217;s only 21 million Bitcoin, and we see new fiat currencies issued all the time.</p><p>If you believe in the value of a scarce financial asset&#8212;and I think Bitcoin&#8217;s already crossed a chasm into something that will be linear over time&#8212;times like this are a good time to acquire. Not financial advice, obviously, but in my opinion, if you believe in crypto, now is a good time to buy it.</p><p><strong>Fede:</strong> Actually, for me it&#8217;s like, when all the people are asking, &#8220;Is crypto dead?&#8221;&#8212;based on your friends&#8217; question, that type of person asking that&#8212;it&#8217;s probably the best signal to buy.</p><p><strong>Mike:</strong> True. The one outlier in the downturn, though, has been HYPE. Last time we tracked it, it was 58. Now the price is 72, which is really impressive given how the rest of the market has performed.</p><div><hr></div><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=180">00:03:00</a> HYPE, LP Mistakes &amp; Buying at All-Time Highs</strong></h3><p><strong>Mike:</strong> I did start acquiring some HYPE myself. And actually I&#8217;m kind of kicking myself, because I first started buying HYPE about six months ago, when they first introduced HIP-3. What&#8217;s happening now is kind of what I thought would happen&#8212;that perps would start to penetrate the rest of TradFi, and people would start taking HYPE seriously as one of the main perp DEXes.</p><p>Unfortunately, what I did was I took that HYPE and stuck it into an Orca LP pool for HYPE-SOL. So it got converted entirely to SOL. I rebought my HYPE at a higher price, and this time I&#8217;m just holding it. To me, it&#8217;s probably going to be a long-term hold&#8212;a small position now. But I do think there&#8217;s a chance Hyperliquid represents the decentralized perps token, and as perps get more widespread, the token will do okay.</p><p><strong>Fede:</strong> I agree with that. Right now it&#8217;s very priced&#8212;the week before was okay, but I never like to buy things at the all-time high. Even though there&#8217;s still upside, if the current price is the all-time high, all the buyers of that asset are buyers who bought at a much lower price. But I have the same thing as you&#8212;I bought when it was very low.</p><p><em>[Fede&#8217;s Wi-Fi drops briefly; he reconnects with his camera off to free up bandwidth.]</em></p><p><strong>Fede:</strong> What I was saying is that I also did the same thing as you. I bought HYPE, put it in a range with SOL, and ended up with 100% SOL. Then I bought some the other day, when we were talking on the live stream, at 40-something. I bought maybe three or four thousand dollars&#8217; worth, and then I sold everything the other day at around seven thousand. So I made about 3K of profit.</p><p><strong>Mike:</strong> That&#8217;s pretty good, actually.</p><p><strong>Fede:</strong> It&#8217;s really good. But at the same time, we missed the large move&#8212;when it was 20 was the right place to buy. We&#8217;ll always have another chance, though.</p><div><hr></div><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=480">00:08:00</a> Worldcoin: A 3% Slippage Lesson</strong></h3><p><strong>Fede:</strong> Right now the one I&#8217;m angry with myself about is Worldcoin. Remember, on Monday I said in the meeting that I sold all my Worldcoin at 0.36. Now it&#8217;s 0.51.</p><p><strong>Mike:</strong> And I think you sold it in the FDUSD market, so you incurred some slippage, right?</p><p><strong>Fede:</strong> Yeah. I normally sell with a limit order, because that&#8217;s a zero-fee market for limit orders. But I was doing it from my phone during the meeting, and everything was going down, so I said, &#8220;Now everything is going down, I&#8217;ll reduce my exposure for this volatile coin.&#8221; I used that market and had 3% of slippage. It was the bad move of the week.</p><p><strong>Mike:</strong> That&#8217;s actually one thing for the traders out there: if you&#8217;re selling on an exchange, make sure you know how much liquidity there is for your pair. Usually you want to sell in the USDT market, because that market has the most liquidity. Fede was making a market in the FDUSD pair for Worldcoin, which is thinner.</p><p>But the good news is that overall we&#8217;re getting better at standardizing our operations using Condor plus Hummingbot API. When you trade manually, you can always fall into these traps and make a mistake. The advantage of Condor is that if you set everything up with routines, you can monitor everything more easily, and automate a lot of these tasks&#8212;letting the bot do it for you instead of doing it manually.</p><div><hr></div><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=600">00:10:00</a> The Worldcoin Identity Bet</strong></h3><p><strong>Fede:</strong> That&#8217;s a good thing to discuss&#8212;what people think about Worldcoin, because I think there&#8217;s a chance it becomes a bigger thing. What I&#8217;m most bullish on is the interactions Worldcoin will start having with other applications. For example, with a dating app like Tinder: now you don&#8217;t know if you&#8217;re talking with a human or with an AI. Worldcoin could power those logins.</p><p><strong>Mike:</strong> To be honest, I&#8217;m very skeptical&#8212;not because I don&#8217;t think they have good technology, but because I think the revenue potential for identity verification is pretty low. It&#8217;s not a big market. The percentage of humans they&#8217;ve identified is something like 1% of the overall population, and I think they&#8217;d have to cross at least 50% for it to be useful from an ID perspective.</p><p>To be fair, that might happen in, say, 10 years at the pace technology&#8217;s advancing. But Worldcoin has historically traded like a meme coin, because it&#8217;s backed by Sam Altman and there was big hype around it a couple of years ago. So the question is more, can they regain that attention from the market? It&#8217;s possible. I&#8217;m just not sure how quickly they can add new IDs. I&#8217;d be interested to see the velocity of new people added.</p><p>I do think you can make money trading it, though.</p><p><strong>Fede:</strong> Before, on the main website, they had that data, but right now I&#8217;m not seeing it.</p><p><strong>Mike:</strong> That&#8217;s probably because it&#8217;s not looking very good, so they took it down. Sorry&#8212;I&#8217;ve been in this business too long, so I&#8217;m jaded by all the shenanigans I&#8217;ve seen. Usually, if there&#8217;s no data, it probably means it doesn&#8217;t look good.</p><div><hr></div><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=780">00:13:00</a> What&#8217;s New in Condor: Five-Minute Controller Snapshots</strong></h3><p><strong>Mike:</strong> Let&#8217;s get into the meat of today&#8217;s podcast. There have been some changes to Condor in the last week&#8212;do you want to summarize what we&#8217;ve added?</p><p><strong>Fede:</strong> Yeah. We added a bunch of small fixes across different areas of Condor and Hummingbot API&#8212;improvements on the executors page, and in the routines we added a download feature, so you can download a routine and send it to a customer or a friend.</p><p>One very cool thing for when you&#8217;re running bots: this was an improvement done in both Hummingbot API and Condor. Now we&#8217;re storing a snapshot of the controller performance&#8212;realized and unrealized P&amp;L, volume traded, positions held, the P&amp;L of those positions, the state of the executors, and any custom info a controller wants to provide. For example, if your controller provides the current signal, that&#8217;s going to be snapshotted every five minutes by default by the Hummingbot API.</p><p>That gives you a very fast way to visualize the performance of a running bot without going into the details of each individual trade. It&#8217;s like the portfolio page we have&#8212;we just take a snapshot of the portfolio, convert everything to the same unit, and we&#8217;re doing the same thing here for the controllers. Once you deploy a bot, you have a snapshot every five minutes of how it&#8217;s performing. There&#8217;s also a combined view, which is really cool because you can see a lot of the controllers working together as one combined performance view&#8212;or you can filter to see your individual ones.</p><p>There were also fixes on how to update the config of a running bot. Now you can update the config of a running bot, where there was an error before. It&#8217;s important to understand that we have two levels of config for the controllers.</p><p><strong>Mike:</strong> Sorry&#8212;real quick, I think it&#8217;d be easier to show people rather than tell them, because it&#8217;s harder to visualize. Let&#8217;s give people a sense of the changes, and maybe run a simple PMM Mister bot to show how the reporting looks.</p><p><em>[Fede&#8217;s Wi-Fi makes his screen share too low-res to read, so Mike shares his screen and Fede walks him through it.]</em></p><div><hr></div><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=1140">00:19:00</a> The Runs Tab &amp; Archive Cleanup</strong></h3><p><strong>Fede:</strong> I added this Runs view, which is worth testing. When you deploy a bot, two things get stored. First, a record in the database that says, &#8220;This bot was deployed at this time with this configuration.&#8221; Second, a Hummingbot container is created&#8212;a folder with the database, the logs, the configurations, and everything. You have bot one, bot two, bot three, and each bot has its own data, logs, and configs.</p><p>Once you stop a bot, it&#8217;s sent to an archive folder, in case you want to do a post-execution analysis after it&#8217;s stopped. The feature I added is: when you click &#8220;delete bot run&#8221;&#8212;say because it failed or it was a random run&#8212;it gets deleted from the archive bots folder and from the database records. So we don&#8217;t keep track of it, which helps if you&#8217;re running low on space.</p><div><hr></div><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=1320">00:22:00</a> PMM Mister: Global Take-Profit &amp; Stop-Loss</strong></h3><p><strong>Fede:</strong> This is the difference between a general config and a bot config&#8212;let me show it with a simple example. First I need to update PMM Mister in Hummingbot API; there&#8217;s a small update for the position side just to make it simpler for users. What&#8217;s necessary is rebuilding the Hummingbot image with <code>image build -t hummingbot</code>, because there were also fixes in Hummingbot we need to pull in.</p><p>Let me deploy a bot. I&#8217;ll grab one of the configs I was running locally&#8212;let&#8217;s say PMM BTC&#8212;and put it in Hummingbot API. To upload a config, you have two options: upload the YAML file directly, or just copy it in. So it&#8217;s very simple to add a new config.</p><p>Another new thing for PMM is a global stop-loss and a global take-profit. This is really nice, because now you can generate much more volume with this PMM&#8212;you can be more aggressive, and then use the take-profit and stop-loss to control your inventory and come back to zero. For example, you start 100% quote, so you&#8217;re going to acquire BTC&#8212;buy, sell, buy, sell&#8212;and then you have two outcomes: take-profit or stop-loss. In the middle there&#8217;s a lot of market making activity, and if the market range stays in the same place, it&#8217;s perfect for you. If the market deviates, you just stop and start over.</p><p>The good thing is you can make the process more discrete rather than continuous. And you can always disable it if you don&#8217;t want to use it.</p><div><hr></div><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=1380">00:23:00</a> PMM Mister vs. pmm_v1: Where to Start</strong></h3><p><strong>Mike:</strong> I&#8217;d like to pause and explain a bit for those new to the podcast. What we&#8217;re showing is a PMM Mister controller. This is a more advanced single-market market making strategy, built on all the lessons we&#8217;ve learned building Hummingbot over the last few years.</p><p>There are a lot of configuration parameters, because it lets you deploy self-managing executors across a number of order levels, buy and sell. For each executor you can define an individual stop-loss and take-profit. Once those executors finish, they move the inventory into a &#8220;position held&#8221; bucket, and you can apply a different global stop-loss and take-profit on that.</p><p>One reason I built this is that we&#8217;re running it ourselves, and we&#8217;re finding that the ability to hold inventory&#8212;to not sell at a lower price, and instead wait for the market to rise again, or to control how much inventory you&#8217;re holding relative to your wallet&#8212;is very helpful from a market making perspective.</p><p>It does introduce more complexity, so my advice if you&#8217;re new is to check out another controller called pmm_v1. That one replicates the original pure market making strategy from the legacy CLI&#8212;it just places orders above and below the price and refreshes them. It&#8217;s simple, but it&#8217;s probably not going to make money over the long term, because if you naively refresh orders, you&#8217;ll likely end up buying at a higher price and selling at a lower price as the market moves around.</p><p>So if you&#8217;re totally new, my recommendation is to start by running a very simple pmm_v1 controller and understand what&#8217;s going on. Once you&#8217;re comfortable, migrate to the PMM Mister controller, because that&#8217;s how you&#8217;ll be able to run things the way a professional market maker does.</p><div><hr></div><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=1560">00:26:00</a> Deploying Two Controllers: 3% vs. 7% Exposure</strong></h3><p><strong>Fede:</strong> Thanks for the explanation, Mike. I&#8217;ll create two controllers so people can see how you can run two at once. In the first one, PMM BTC, we&#8217;ll put 10 executors active per level, and we&#8217;ll set the portfolio location&#8212;how much you expose around the mid-price&#8212;to 7%. The other one, PMM BTC1, uses 3% and 15 executors. This shows how aggressive you can be in exposure.</p><p><strong>Mike:</strong> And that&#8217;s a percentage of your total quote amount? And how much are you allocating to each bot?</p><p><strong>Fede:</strong> Yes, of the total quote. 1,000 to each. So I have the two configs. To deploy them, I go to &#8220;deploy bot,&#8221; pick the config, and deploy. It takes a little while to appear&#8212;we&#8217;ll have a transition showing we&#8217;re deploying.</p><p><strong>Mike:</strong> Let me explain what&#8217;s going on. When Fede deploys a bot, the Hummingbot API&#8212;which is the backend for Condor&#8212;launches a new Docker container. That container is what we colloquially call a bot. This bot has two strategy configurations, and it runs them in parallel using the same container instance. The reason we do this is to let you have, say, five or 10 controllers in a single instance&#8212;but you can also separate them across instances, because each instance might be on a different server or operating on a different exchange. You can isolate a lot of the operations involved in quantitative trading into one container. Then the Hummingbot API starts tracking that bot and reporting its performance into this view.</p><p><strong>Fede:</strong> This is going to look more appealing in the next five minutes, because we capture this data every five minutes. One interesting thing we added is a conversion of all the metrics to a single currency. That&#8217;s why you see values like 69.77 instead of a fixed value&#8212;it&#8217;s converting the FDUSD into USDT.</p><p><strong>Mike:</strong> So Fede&#8217;s deployed two bots, and they&#8217;ve already generated a couple hundred dollars in volume. The reason we&#8217;re confident letting this run is that the PMM Mister strategy does a good job, if configured correctly, of managing the risk of each order. It sets a stop-loss and take-profit on each level, and globally you can instruct it to have a global take-profit and stop-loss as well.</p><p>Our experience is that you can run these strategies for a good amount of time and they&#8217;ll make money&#8212;some will lose, but break-even is probably what you&#8217;ll experience. Unlike the original PMM strategies, the ability to hold inventory lets these at least break even over time net of fees, whereas the original strategies tended to lose money over time.</p><div><hr></div><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=2040">00:34:00</a> Securing Your Server: Tailscale &amp; the AI Bot Threat</strong></h3><p><strong>Fede:</strong> One thing I&#8217;d like to comment on: nowadays with AI, we&#8217;re much more vulnerable to attacks on our servers. We see that when we deploy a new Hummingbot API, it&#8217;s automatically scanned by other AIs trying to attack servers. So we&#8217;re providing a way we recommend to keep your server secure&#8212;already merged into Condor&#8212;that uses Tailscale.</p><p>If you&#8217;re not aware of Tailscale, look it up or ask ChatGPT or Claude. Basically, it creates a local network for all your devices. Our installation scripts will now start by closing all the ports your server has exposed to the web, so you don&#8217;t have any vulnerability there. Second, it adds that computer to your Tailscale network, so now only the devices you&#8217;ve added can access this new server. Everything works on the same network without you having to expose any port to the outside.</p><p>We strongly recommend going that route. CheeseAndGarlic says they use Cloudflare One&#8212;that&#8217;s another good option. We&#8217;re supporting Tailscale because we were familiar with it and it&#8217;s very simple. Personally, for my side projects, I use Cloudflare tunnels, which are really good for exposing things to the outside.</p><p><strong>Mike:</strong> This is quite important. As Fede mentioned, the moment you create any type of server now, there are AI-based bots trying to infiltrate it, automatically scanning for vulnerabilities across all the servers out there. There&#8217;s a pull request on the Hummingbot site right now with a Tailscale guide&#8212;we&#8217;ll try to publish that in the next couple of days, and another guide on the Condor docs.</p><p>In the past, because we didn&#8217;t have Tailscale set up properly, some people launched servers without using any service like Cloudflare or Tailscale, and they saw bots go in and try to steal their keys. This is really important. Because of AI, the game has changed&#8212;there are a ton of bots out there trying to steal money.</p><p>CheeseAndGarlic also recommends checking out Socket Firewall and Scanner for supply-chain attacks&#8212;a really good suggestion. We appreciate any suggestions the community has on how to make our bots safer. We&#8217;ll have our team investigate Cloudflare support after we get Tailscale up and running, because we want to make it as easy as possible for people to deploy their bots safely.</p><div><hr></div><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=2400">00:40:00</a> Reading the Numbers: Volume &amp; Basis-Point Take-Profits</strong></h3><p><strong>Fede:</strong> Okay, now my Wi-Fi is working. Remember the difference between the two configs we deployed? The first one, PMM BTC, used 7% around the mid-price, and the other one used 3%. That&#8217;s why this one has almost double the volume of the other.</p><p><strong>Mike:</strong> So when you say 7%, is that 7% of your total quote, and is that the amount in each order level, or in total?</p><p><strong>Fede:</strong> In total. So with $1,000, 7% means it&#8217;s placing $70 around the mid-price. Half is for the buy side, so during the loading period it&#8217;s $35 buying first. The second one, at 3%, is $30, so it&#8217;s placing $15 per side.</p><p><strong>Mike:</strong> Maybe a dumb question, but if the second bot only had $15 on the buy and sell side, how did it generate over 260 in volume in only 60 minutes?</p><p><strong>Fede:</strong> That&#8217;s why I wanted to show Binance&#8212;it&#8217;s buying and selling all the time. The other question is, if it generated that much volume, why is the P&amp;L only one cent? It&#8217;s because 251 times 0.0001&#8212;that&#8217;s the take-profit set here, one basis point.</p><p><strong>Mike:</strong> I see what&#8217;s going on. You&#8217;re setting orders, and as soon as they&#8217;re filled, you&#8217;re setting a take-profit right above, one basis point higher. So you&#8217;re always buying and selling right away as soon as everything hits. This kind of strategy is designed to place orders around the mid-price, get them filled, and hedge that risk immediately using the take-profit and stop-loss for every executor. That&#8217;s why these strategies are very good at generating volume without a lot of risk.</p><p><strong>Fede:</strong> That depends on how you configure it. If you increase the take-profit&#8212;say three basis points&#8212;it would be a totally different game, and the P&amp;L might be three times this. So it depends a lot on how you configure it.</p><div><hr></div><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=2640">00:44:00</a> Realized vs. Unrealized P&amp;L</strong></h3><p><strong>Fede:</strong> On the P&amp;L chart, we have two lines. The first shows the P&amp;L evolution over time. We have the unrealized P&amp;L as a dashed line, the realized, and the total. The realized grows as a continuous line, and the unrealized moves independently. Can you guess why?</p><p><strong>Mike:</strong> I think it&#8217;s because the unrealized is based on the position you&#8217;ve held?</p><p><strong>Fede:</strong> Exactly. The unrealized is based on the position held. Right now the position is $29. That means if we start closing it now, we&#8217;d be taking profit from that $29 position.</p><div><hr></div><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=2700">00:45:00</a> General Configs vs. Live Configs</strong></h3><p><strong>Fede:</strong> Here we have the combined view of these two bots. We can filter to see one, both, or the other. Now, this PMM BTC1&#8212;if we go to the editor, we see its config. This is the general config. If we go to Hummingbot API, under configs/controllers we have PMM BTC and PMM BTC1&#8212;those are the general configs. But in the deployed instance, inside that bot&#8217;s folder, we also have a PMM BTC and PMM BTC1.</p><p>So there are two configurations: one general, and once we decide to deploy the general config, it goes inside the bucket of the bot. The bot has live configs inside it, and what this lets us do is modify those configs independently from the main configs. We generate a set of generic configurations, deploy them in a bot, and once deployed, each becomes an independent config we can modify from there.</p><p><strong>Mike:</strong> Can you give me an example&#8212;maybe modify something?</p><p><strong>Fede:</strong> Let&#8217;s say I want to move a value on PMM BTC1. You see here it says min base percentage 0.2. Let me put 0.1 and click save. Config saved&#8212;and now if I go back, I see 0.1.</p><p><strong>Mike:</strong> So that means it&#8217;s being used now by the live bot?</p><p><strong>Fede:</strong> It&#8217;s being used by the live bot, but I&#8217;m only modifying the config of the live bot&#8212;not the original. The original still has 0.2.</p><p><strong>Mike:</strong> This is really cool, because it means you can have lots of bots running, monitor them, and change their configs on the fly without starting a new instance or stopping them.</p><p><strong>Fede:</strong> Exactly. Plus, you can modify them live without affecting the original main configuration.</p><p><strong>Mike:</strong> I&#8217;m guessing there are certain things you can&#8217;t modify&#8212;like the trading pair?</p><p><strong>Fede:</strong> Right, you can&#8217;t. There&#8217;s a parameter in the controller&#8212;you can see it on the generic PMM Mister or any controller&#8212;where, if the parameter is updatable, it has a JSON schema extra that says <code>is_updatable: true</code>. If it&#8217;s true, you can update it. You can technically change the other parameters, but the strategy won&#8217;t take them into account. Only the ones marked updatable will be used.</p><div><hr></div><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=3000">00:50:00</a> &#8220;How Do I Make Money?&#8221; &#8212; The Honest Answer</strong></h3><p><strong>Mike:</strong> Before we move on, let me answer a question from CheeseAndGarlic, who asked about the P&amp;L example I mentioned earlier and how much volume.</p><p><strong>Fede:</strong> That was on Botcamp, right?</p><p><strong>Mike:</strong> No, that was just a manual trading example on Solana, from Fede&#8217;s own wallet&#8212;not with a bot. We get some form of this question every time, because what people want to do with bots is make money. So the way we try to answer it: what we&#8217;re building with Hummingbot is a framework&#8212;a set of tools that helps you do something. That something might be automating a trading activity, or running a business like market making.</p><p>Generally speaking, markets are efficient. There&#8217;s no easy way to just make lots of money. It&#8217;s not a black box&#8212;you can&#8217;t just throw money at it. Usually, if you&#8217;re running a market making strategy like this, initially you&#8217;ll either break even or lose some money, because you have to learn how the market works. Over time, if you stick at it, you can find a strategy. That might be purely making money off arbitrage or market making, but more likely it&#8217;s because you&#8217;ve identified some inefficiency&#8212;providing liquidity on a less liquid exchange and hedging on a more liquid one, market making for a customer who pays you to provide liquidity for their token, or earning rewards on a platform like XRP Liquid that pays for providing liquidity.</p><p>The way we look at it, Hummingbot and Condor is a toolset optimized for people doing market making and trading. There&#8217;s no big secret, but we&#8217;re convinced that if you use Condor and Hummingbot, it makes doing this at scale a lot easier&#8212;you can configure each strategy, run them independently, and change them on the fly. So my advice, as always: experiment with a small amount of capital using one of the simpler strategies, and eventually you can scale it to a market maker operation run by a single person.</p><p><strong>Fede:</strong> One important thing to look at here: remember the difference between the two configs&#8212;the portfolio location. The one we exposed more is now suffering more on the unrealized. Why? Bitcoin is going down, and as we expose more capital on each order, we get filled for more, so we end up holding more inventory. If the market goes down, it goes down double. It&#8217;s interesting to see this relationship. Right now I&#8217;m losing about 81 cents across the two, and made about 10 cents on the two controllers. But this is expected&#8212;the market maker is at the minimum base percentage it should be holding, and it has 1.4K more to buy before it&#8217;s filled to the max base percentage. This is part of the market making logic.</p><div><hr></div><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=3240">00:54:00</a> Routines: Dissecting Hyperliquid&#8217;s HLP Vault</strong></h3><p><strong>Fede:</strong> Another thing I&#8217;d like to show about routines&#8212;I have quite a lot of them right now. For example, I started doing an analysis of the HLP vault, the other day, just from my phone. I strongly recommend getting started with routines. You can organize them by topic, by agent, so you can ask your agent about it. Here we&#8217;re seeing the TVL of the HLP strategy.</p><p><strong>Mike:</strong> This is the Hyperliquid vault&#8212;the vault they run.</p><p><strong>Fede:</strong> Yeah, it&#8217;s the HLP vault. The APR is 1.35%, and it has 349 million in TVL. Here&#8217;s the P&amp;L of the last 30 days.</p><p><strong>Mike:</strong> I actually was an investor in this vault a year ago. Back then the APR was something like 30%. One reason I exited was that I wasn&#8217;t sure what the strategy was&#8212;it was kind of a black box. But I do think this vault is one of the reasons Hyperliquid has done very well: they were market making for their own markets from the get-go, so they had really good liquidity on all the major markets as soon as they launched. And anyone can create these vaults&#8212;as a user you can create your own vault and have people invest in it. This vault feature was actually one of the main reasons we added the Hyperliquid connector about two years ago.</p><p>This routine&#8217;s very interesting&#8212;it&#8217;s just using their API, right?</p><p><strong>Fede:</strong> Yeah. And the interesting thing is that the HLP is split: there&#8217;s a strategy A, which is losing money, and a strategy B, which is a liquidator vault that&#8217;s making money&#8212;but overall it&#8217;s roughly break-even. On a million in capital it only made about $1,000 in P&amp;L, so it&#8217;s not that big. The reason they run two strategies is that Hyperliquid doesn&#8217;t have hedge mode like Binance, where you can go long and short at the same time with the same account. Since Hyperliquid doesn&#8217;t, they need two strategies to hedge&#8212;strategy A in blue, strategy B in purple.</p><p><strong>Mike:</strong> Interesting&#8212;you can tell they&#8217;re long and short because they&#8217;re inversely correlated.</p><p><strong>Fede:</strong> Yeah. From what I can see, they&#8217;re long on some names and short on others&#8212;they even appear to be long on competitors like BNB. <em>(Some of the individual tickers here are hard to read off the dashboard, so I won&#8217;t assert the exact set.)</em> The interesting thing I&#8217;m trying to understand is how this HLP is getting filled. For BTC, for example, here&#8217;s how they&#8217;re getting filled.</p><p><strong>Mike:</strong> That&#8217;s a lot of data they have available on the API.</p><p><strong>Fede:</strong> Yeah, it should all be public. They&#8217;re quoting as a maker, but the HLP is also taking. Here we have the trades&#8212;open shorts, open longs&#8212;and the trade composition: around 26% taker, the rest maker. We can also see the P&amp;L by coin. So first of all, you can analyze the risk the HLP vault has&#8212;for example, if a given coin goes down X amount, how exposed it is.</p><p>This is all made by Condor. To create a routine like this, you just need to have your Cloud Code or whatever you&#8217;re using initialized. You go to Agents&#8212;here I asked it to compare the liquidity between Binance and Hyperliquid, because a friend told me there&#8217;s a site called hl.eco that says Hyperliquid has three times more liquidity than Binance. I just told Condor, &#8220;Give me the liquidity on Binance and Hyperliquid&#8221;&#8212;and it&#8217;s not true what the website says. So there are a lot of lies out there.</p><p>You go to the plus button, click the routine builder, and these agents help you create the report. The interesting thing is that the routine is Python code that can call APIs or whatever, and at the end it generates a report&#8212;a structure of graphs, indicators, markdowns, whatever you want. You can&#8217;t add too much customization, but you don&#8217;t need to. You just need to see the information the way you want.</p><div><hr></div><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=3720">01:02:00</a> Why Routines Are Condor&#8217;s Best Feature</strong></h3><p><strong>Mike:</strong> Honestly, routines are the most useful feature we&#8217;ve added to Condor so far. I&#8217;m using it all the time now to create reports for analyses I&#8217;m doing internally or for clients&#8212;we started to market make for a couple of clients. Being able to create a customized report of what&#8217;s going on with a market maker operation and send it to a client every day or week is really helpful.</p><p>The way we&#8217;ve structured it, the report is just HTML, so you can email it or send it via Telegram, and anyone can open it on their phone or in a browser. It&#8217;s a really portable artifact. There&#8217;s already a scheduling feature where you can run the report continuously&#8212;every hour or every week&#8212;and soon we&#8217;ll add the ability to automatically send that report via Telegram or email to yourself or a customer. We&#8217;ll probably also add a hub where you can upload your routines and find ones others have built. We think this routines feature is one of the most useful parts of Condor because of how flexible it is.</p><p><strong>Fede:</strong> Yeah, and it&#8217;s very simple to schedule&#8212;you just click Schedule. And to download, it&#8217;s right here, Download Report.</p><div><hr></div><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=3840">01:04:00</a> XRPL, Rewards &amp; the Exchange Land Grab</strong></h3><p><strong>Mike:</strong> Before we end, one more question from CheeseAndGarlic: &#8220;XRPL is very interesting because of the low fees.&#8221; I totally agree. XRPL is one of our key partners&#8212;they sponsor the Hummingbot Foundation, we maintain the XRPL integration, and we maintain a program called XRP Liquid where people can earn rewards. Right now we&#8217;re giving away 1,000 XRP per week for people providing liquidity to the key pairs.</p><p>If you&#8217;re interested in trading XRPL, using XRP Liquid is a smart move, because you can earn rewards for market making on major pairs like XRP-RLUSD, EUR-RLUSD, or BTC-RLUSD. Especially if you&#8217;re new to Hummingbot, you can run either a pure market making strategy or a cross-exchange market making strategy and earn rewards.</p><p>What we try to do with Hummingbot is support every major blockchain, CEX, and DEX. There&#8217;s constant competition between new and existing markets&#8212;every exchange is trying to compete with every other exchange. Right now Hyperliquid is adding prediction markets, and Polymarket and Kalshi, which started as prediction-market exchanges, are now adding perps. Every exchange is supporting different market types and trying to compete, whether centralized, decentralized, or on-chain.</p><p>Our job at Hummingbot is that we partner with these exchanges and blockchains, but our real user base is the traders&#8212;folks like you and us. As traders, we may favor certain exchanges, but overall we&#8217;re trying to make money from the overall market landscape by filling in the gaps: providing liquidity where it&#8217;s most needed and taking arbitrage opportunities where they&#8217;re available.</p><p>On the XRPL minimum order&#8212;there&#8217;s no minimum order on XRPL, because it&#8217;s a blockchain. The transaction fees there are still very low, usually less than one cent, so the minimum order is whatever the blockchain&#8217;s basic constraint is&#8212;probably less than a dollar. That&#8217;s the advantage of these more decentralized chains compared to trading on exchanges. Every chain and exchange has different rules, so there&#8217;s some investment you have to make in understanding how to trade on each market.</p><p><strong>Fede:</strong> That&#8217;s a great point. The minimum order amount on Hyperliquid is $10, which is quite high compared to others&#8212;it doesn&#8217;t let you play around with small capital. On XRPL you can play with $1.</p><p>For some reason Binance came back, so I&#8217;ll show what the bot we deployed looks like. These orders are the hanging orders, or the take-profits of other executors that were filled, using one-minute candles since we deployed. The bad thing is this market doesn&#8217;t have as much activity as it had in the past, but we&#8217;re still feeding it trades.</p><p>It&#8217;s important to understand that we have two limits for placing orders. One prevents us from placing an order based on a cool-down time&#8212;after a fill, you need to wait 10 seconds. The other is that to place another order, the distance should be at least 0.1%. That&#8217;s why the second order is here. So we have two components validating that we&#8217;re not buying too much at the same price.</p><p>This market is 65 million in volume. If we check the USDT market, it&#8217;s 2.11 billion&#8212;so the difference in volume between the two markets is quite large. At some point this market was almost higher in volume than the other one. I don&#8217;t know what happened with the FDUSD perps&#8212;suddenly they all went down.</p><p><strong>Mike:</strong> Are you still getting zero fees for making on this pair?</p><p><strong>Fede:</strong> Yeah, zero fees maker. That&#8217;s why I&#8217;m trading here. And the minimum order amount is $5. So, checking the bots, we&#8217;re probably still negative on the unrealized, but we&#8217;re generating volume. In about an hour, the one we exposed at 7% is doing more than double the volume of the 3% one&#8212;but it&#8217;s also taking more risk. The turnover is more than two times the total quote amount in one hour. So it&#8217;s quite a nice turnover.</p><div><hr></div><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=4260">01:11:00</a> Condor Builders Cup: An F1-Style Trading Competition</strong></h3><p><strong>Mike:</strong> There&#8217;s one thing I want to show before we end. We&#8217;ve been making updates to our Botcamp website for the hackathon we&#8217;re going to launch shortly. For those who don&#8217;t know, Botcamp is our educational arm&#8212;we have courses and a cohort a couple of times a year where we teach people how to build bots. Our cohort recently ended&#8212;cohort 13&#8212;and in it, people built strategies using Condor and demoed them on demo day. You can go to botcamp.xyz/cohorts to watch the demo day recap.</p><p>The gist is that the top strategies presented at demo day will represent Botcamp in our upcoming hackathon. It&#8217;s an F1-style trading competition: each team selects two strategies to represent them, and for Botcamp those will be the two top strategies from demo day. For example, Raj built a strategy that uses a more advanced academic model to provide liquidity very tightly, so he generated a ton of volume with a small amount of capital in his demo. The second strategy, from Wei Hong, was a cross-exchange strategy that plays two perpetual exchanges against one another. We thought these were very sophisticated, which is why they won.</p><p>We already have something like 40 people registered for the hackathon, and you can see some of the strategy ideas they&#8217;ve put up. We&#8217;ll start the hackathon in about two weeks, so you can already register and get prepared. During the hackathon we&#8217;ll have live streams explaining how it works, and you can apply to each of the team sponsors&#8212;each team defines its own criteria. For example, Derive would probably pick a strategy that runs on Derive, and they&#8217;ve added their own selection criteria.</p><p>When the hackathon window opens, you&#8217;ll create a strategy, make a video, and apply to a team. You&#8217;ll have about one month to build, optimize, and refine your strategy. After that, we&#8217;ll work with each sponsor to select the winning agents. Each winning agent starts with $1,000 in capital and races during a 48-hour competition to see who wins. It&#8217;s the first time we&#8217;re doing this, so it&#8217;s a bit of an experiment for everyone&#8212;but I&#8217;m excited, because it&#8217;s a chance for people to build a custom strategy they&#8217;ve envisioned, and then we can compare all of them live over a fixed time period with the same amount of capital. We&#8217;ll manage the competition process to make it fair.</p><p>So if you go to botcamp.xyz and click the hackathon tab, you can register, tell the community what you want to build, and prepare for the hackathon to start.</p><div><hr></div><h3><strong><a href="https://youtu.be/HUVPhGsrJrA?t=4500">01:15:00</a> Wrap-Up</strong></h3><p><strong>Mike:</strong> That was about it. I want to thank everyone for joining this episode of the live stream. We usually do this on Wednesdays or Fridays&#8212;we might do it on Wednesdays next time, since we seem to get a slightly bigger audience. We&#8217;ll be back next week with more improvements to Condor and more stuff to show you. So please register for the hackathon, install Condor, check it out, and give us feedback on Discord on what you want to see.</p><p><strong>Fede:</strong> Bye-bye.</p><p><strong>Mike:</strong> Thanks, everyone. I&#8217;m going to play some more music before we leave.</p><p><strong>Fede:</strong> The track you played at the beginning was very good.</p><p><strong>Mike:</strong> I&#8217;ve been playing around with Suno. There&#8217;s a bunch more in the catalog I&#8217;ll try to use. All right, everyone&#8212;see you next time.</p><p><em>[Outro music.]</em></p><h2></h2>]]></content:encoded></item><item><title><![CDATA[The Bot Pod Episode 8: Demo Day Highlights + New Condor Features]]></title><description><![CDATA[Check out the HFT strategies built by Botcamp Cohort 13 students!]]></description><link>https://hummingbot.substack.com/p/the-bot-pod-episode-8-demo-day-highlights</link><guid isPermaLink="false">https://hummingbot.substack.com/p/the-bot-pod-episode-8-demo-day-highlights</guid><dc:creator><![CDATA[Hummingbot Foundation]]></dc:creator><pubDate>Fri, 22 May 2026 19:48:08 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/198875392/898dca8d02dfbefb377c4e2974b6984a.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<h1><strong>The Bot Pod Episode 8: Cohort 13 Demo Day &amp; Real-Time Bot Monitoring</strong></h1><p>We&#8217;re back with Episode 8 of <strong>The Bot Pod</strong>! This week, Mike and Fede highlight the top strategies presented at <strong>Botcamp Cohort 13&#8217;s demo day</strong>, share an updated schedule for the <strong>Condor Builders Cup</strong>, and demo a big new Condor capability: watching your live bots in real time, with controller snapshots saved every five minutes so you can finally see how P&amp;L evolves over time.</p><p><strong>Watch the full episode:</strong> <a href="https://youtu.be/fdlt23C5yJ4">YouTube</a> <br><strong>Register for the Condor Builders Cup</strong>: <a href="https://www.botcamp.xyz/">botcamp.xyz</a> <br><strong>Install Condor</strong>: <a href="https://condor.hummingbot.org/">condor.hummingbot.org</a></p><div><hr></div><h2><strong>Episode Highlights</strong></h2><h3><strong><a href="https://youtu.be/fdlt23C5yJ4?t=0">0:00</a> Cohort 13 Wrap-Up</strong></h3><p>The hosts open with Botcamp&#8217;s 13th cohort, just wrapped: eight strategies demoed, and&#8212;both agree&#8212;noticeably higher quality than prior cohorts. The reason is AI. Students used Condor to analyze their strategies and build their controllers, iterating far faster than before.</p><blockquote><p>&#8220;We made a great choice in the past&#8212;framing our system as building blocks. That&#8217;s what now lets AI create agentic algo-trading strategies without too much friction.&#8221; &#8212; Fede</p></blockquote><h3><strong><a href="https://youtu.be/fdlt23C5yJ4?t=120">2:00</a> Market Discussion: HYPE FOMO &amp; Pre-IPO Stock Perps</strong></h3><p>Last week we talked up Hyperliquid moving into TradFi via pre-IPO trading of CRBS and other, but never actually bought HYPE at $42. It&#8217;s now ~$58, having touched $62. The lesson: <strong>talking isn&#8217;t trading</strong>. They also dig into the new stock perp markets, where thin liquidity creates fat-finger arbitrage opportunities (Fede spotted a ~2% deviation on Microsoft), but where depth is still too shallow for institutions to size up.</p><h3><strong><a href="https://youtu.be/fdlt23C5yJ4?t=420">7:00</a> Q&amp;A: Agent Backtesting &amp; Shorts</strong></h3><p>Answering MJ Lee, the hosts say agent backtesting is coming, but for now you can already backtest V2 controllers in Condor&#8217;s Bots tab. On a request for TikTok-style shorts: Carlito (community manager) is already chopping these Friday sessions into clips for YouTube, Twitter, LinkedIn, and Reddit&#8212;marketing has just never been Hummingbot&#8217;s forte.</p><blockquote><p>&#8220;We&#8217;re a lot better at building stuff than we are at talking about it.&#8221; &#8212; Mike</p></blockquote><h3><strong><a href="https://youtu.be/fdlt23C5yJ4?t=600">10:00</a> Condor Builders Cup: Revised Schedule</strong></h3><p>The hackathon is being <strong>pushed back about a month</strong> so Fede can extend the agent framework first&#8212;soon agents won&#8217;t just launch executors, they&#8217;ll manage and reconfigure sets of controllers. New timeline: the build period runs <strong>June 19 &#8211; July 10</strong> with workshops along the way, followed by judging with sponsors, and a <strong>48-hour live competition the week of August 3rd</strong> run with the team&#8217;s own capital. Registration is already open.</p><h3><strong><a href="https://youtu.be/fdlt23C5yJ4?t=780">13:00</a> Demo Day: Wei Hong&#8217;s Cross-Exchange Perp Market Making (2nd Place)</strong></h3><p>Wei Hong rebuilt core Hummingbot components to do <strong>cross-exchange market making on perpetual connectors</strong>&#8212;traditionally a spot-only strategy. His version scans perp markets for opportunities to go long on one venue and short on another, capturing both the price spread and the <strong>funding-rate difference</strong>. He ran it live: long the stable USDT pair on Binance, short on Hyperliquid.</p><blockquote><p>&#8220;Conceptually, you&#8217;d be in a position where you&#8217;re getting paid to enter, and you earn the funding rate along the way.&#8221; &#8212; Mike</p></blockquote><h3><strong><a href="https://youtu.be/fdlt23C5yJ4?t=1080">18:00</a> Demo Day: Raj&#8217;s &#8220;Market Making at the Touch&#8221; (Winner)</strong></h3><p>The winning strategy turned market making into a <strong>stochastic optimization problem</strong> (drawing on an academic paper Mike attributes to Cartea &amp; Penalva). It precomputes a policy, then runs 300-second cycles of placing and liquidating orders rather than recomputing every tick. Raj ran it live on Hyperliquid: <strong>120K+ in volume on a few thousand dollars of capital, with basically flat P&amp;L</strong>.</p><blockquote><p>&#8220;This strategy is very close to what professional market-making firms&#8212;even the algorithmic ones&#8212;are running.&#8221; &#8212; Mike</p></blockquote><h3><strong><a href="https://youtu.be/fdlt23C5yJ4?t=1380">23:00</a> Why Condor vs. General-Purpose Agents</strong></h3><p>Responding to a question about adding Hermes support, Mike explains the thesis: general-purpose harnesses (Hermes, Open Claw) are great, but trading is quantitative, not qualitative. A trader needs the agent to <strong>not hallucinate, not make mistakes, and run fast</strong>. That&#8217;s why Condor offloads core logic to deterministic <strong>routines</strong> (Python files) and uses the LLM sparingly&#8212;both for reliability and token efficiency.</p><blockquote><p>&#8220;Condor is structured to minimize the tokens used for decision-making, and offload the core logic to routines, which are deterministic Python files.&#8221; &#8212; Mike</p></blockquote><h3><strong><a href="https://youtu.be/fdlt23C5yJ4?t=1620">27:00</a> Demo: PMM with Take Profit, Stop Loss &amp; Position Hold</strong></h3><p>Fede demos his work-in-progress PMM controller with <strong>global take-profit / stop-loss</strong> and a <strong>limit chaser</strong>. The key concept is <strong>position hold</strong>: when a position executor fills but the market doesn&#8217;t reverse, instead of dumping it, the position is moved into an &#8220;effective position&#8221;&#8212;a long-run inventory bag the bot manages as a whole. Take-profit only triggers once inventory passes a minimum threshold, and stop-loss only once it hits the target&#8212;so the market maker has room to improve its entry price before ever taking a loss.</p><h3><strong><a href="https://youtu.be/fdlt23C5yJ4?t=2100">35:00</a> New Runs Tab &amp; Real-Time Bot Monitoring</strong></h3><p>Condor gets a new <strong>Runs tab</strong> (likely to replace the older Archive tab) and, more importantly, real-time bot monitoring. Until now you could only see a snapshot of a bot&#8217;s current state. Now every running controller is <strong>dumped to the database every five minutes</strong>, giving you the full progression of realized/unrealized P&amp;L and volume over time.</p><blockquote><p>&#8220;Can we make something that actually lets you see the bot in real time while it&#8217;s running? That was the goal.&#8221; &#8212; Fede</p></blockquote><h3><strong><a href="https://youtu.be/fdlt23C5yJ4?t=2220">37:00</a> Five-Minute Snapshots &amp; Custom Controller Info</strong></h3><p>The data flows over <strong>MQTT</strong> (keeping the bot lightweight) and is collected by the Hummingbot API&#8212;the same mechanism already used for portfolio history. Beyond the standard metrics, a new <code>get_custom_info</code> method lets you push <strong>any custom field</strong> from your controller into the snapshot stream.</p><h3><strong><a href="https://youtu.be/fdlt23C5yJ4?t=2520">42:00</a> Live Deployment &amp; On-the-Fly Config Updates</strong></h3><p>Fede deploys a single bot (Docker container) running <strong>three controllers across three markets</strong> in seconds, then shows off live updates: you can change a controller&#8217;s config and push it to the <strong>running bot without restarting</strong>. Controllers define which parameters are updatable&#8212;change the connector name and it&#8217;ll safely refuse. (Next up: a Markdown view that highlights the editable fields.)</p><h3><strong><a href="https://youtu.be/fdlt23C5yJ4?t=2700">45:00</a> Combined P&amp;L Across Controllers</strong></h3><p>Once there are enough snapshots, Condor charts the <strong>combined P&amp;L of every controller you&#8217;re running</strong>&#8212;and lets you toggle individual lines. Run five algorithms and see them as one portfolio, or drill into any single one.</p><blockquote><p>&#8220;I&#8217;m running five different algorithms, and this is the combined performance. This will be a game-changer for the agents.&#8221; &#8212; Fede</p><p>&#8220;Is this bot doing well because it&#8217;s consistently profitable, or is it just getting lucky because the market happened to move in its direction?&#8221; &#8212; Mike</p></blockquote><div><hr></div><h2><strong>Next Week</strong></h2><p>The team is finishing the Hummingbot, Hummingbot API, and Condor changes needed for agents to manage controllers&#8212;the reason the Builders Cup moved to June 19. Registration for the Builders Cup is open now at <a href="https://www.botcamp.xyz/">botcamp.xyz</a>. Join us live next Friday on <a href="https://www.youtube.com/@Hummingbot">YouTube</a>!</p><div><hr></div><h2><strong>Full Transcript</strong></h2><div><hr></div><h3><strong><a href="https://youtu.be/fdlt23C5yJ4?t=0">00:00:00</a> Intro: Botcamp Cohort 13 Wrap-Up</strong></h3><p><strong>Mike:</strong> Welcome everyone to another episode of the Bot Pod podcast. I&#8217;m Mike, this is Fede, and we&#8217;re the co-maintainers of the Hummingbot open source framework. How are you doing today, Fede?</p><p><strong>Fede:</strong> Very nice, everything good. We just finalized the Botcamp cohort&#8212;another successful journey, so I&#8217;m very happy about that. And I&#8217;m really happy with the submissions the students made. There were some very high-quality ones; for one month of training, it&#8217;s quite impressive. What about you?</p><p><strong>Mike:</strong> I totally agree. This was the 13th cohort we&#8217;ve done for Botcamp. We had eight strategies demoed on demo day yesterday&#8212;I&#8217;ll show the winner later in the podcast&#8212;but the quality felt quite a bit higher than in prior cohorts. I think it&#8217;s because people were able to use Condor to analyze their strategies and help build their controllers. We&#8217;re finally seeing the power of using AI in quant trading.</p><p><strong>Fede:</strong> Yeah, the use of AI is improving the submissions a lot, mostly because they can iterate very fast on the analysis. The other thing is that I think we made a great choice in the past&#8212;framing our system as building blocks. That&#8217;s what now allows AI to create agentic algo-trading strategies without too much friction, because all those building blocks help the AI design strategies better.</p><p><strong>Mike:</strong> I&#8217;ll show off the winning strategy from demo day. But before we get into it, I have to admit a bit of FOMO right now.</p><p><strong>Fede:</strong> Me too.</p><p><strong>Mike:</strong> Because just one week ago on this podcast, we were talking about how Hyperliquid is really getting into TradFi&#8212;showing you can trade pre-IPO stocks like Cerebras. But you know what we didn&#8217;t do? We didn&#8217;t actually buy HYPE when it was at $42 last Friday. What&#8217;s the price today?</p><p><strong>Fede:</strong> I think it should be around 57 or 58, something like that.</p><p><strong>Mike:</strong> Let me check CoinMarketCap. Yeah, it&#8217;s at 58 right now, but it actually hit 60 yesterday.</p><p><strong>Fede:</strong> It hit 62.</p><p><strong>Mike:</strong> So basically, we talked about it, but we didn&#8217;t actually put anything into action.</p><div><hr></div><h3><strong><a href="https://youtu.be/fdlt23C5yJ4?t=120">00:02:00</a> Market Discussion: HYPE FOMO &amp; Pre-IPO Stock Perps</strong></h3><p><strong>Mike:</strong> What&#8217;s interesting, though, is that the volumes in these pre-IPO stocks aren&#8217;t actually that high. SpaceX was about the only one with real volume.</p><p><strong>Fede:</strong> Right, generally the volumes aren&#8217;t quite high there. One thing I was researching across the different markets: there are opportunities to place orders to catch fat fingers, because there are deviations&#8212;for example, in Microsoft of around 2%. Someone executes a big trade, and since there isn&#8217;t much liquidity, there&#8217;s an opportunity to do the arbitrage&#8212;but you need to have the limit order already in place.</p><p><strong>Mike:</strong> Are you talking about the Microsoft perps market?</p><p><strong>Fede:</strong> Yeah, the perp markets. I think that one is deployed by a different provider, not by Trade XYZ. But across these markets, if you check the liquidity, it&#8217;s not that huge. The institutionals will probably start providing liquidity, but institutional traders need this kind of deep liquidity to trade&#8212;otherwise it&#8217;s not an interesting market. If you can&#8217;t get out, it&#8217;s not that good.</p><p>Let&#8217;s say for NVIDIA/USDC&#8212;I&#8217;m looking at NVIDIA/USDC on Trade XYZ. Up to a value of 1732, up to 7.1%, there&#8217;s only about 120K. So it&#8217;s not that deep. For someone placing a 500K trade, it would move the price a lot. Actually, a dollar above, there&#8217;s more&#8212;up to 7.5% there&#8217;s about a million dollars. But it&#8217;s a perpetual market, so a million dollars in perps isn&#8217;t that much either.</p><p><strong>Mike:</strong> This kind of makes sense, though, because right now NVIDIA trades in the spot markets on the NYSE. So if I&#8217;m an equities market maker, it&#8217;s actually very easy to make a market on this perps market and just hedge in the spot market on NVIDIA. I actually think we should add an equities connector at some point to Hummingbot&#8212;like Alpaca or Interactive Brokers&#8212;because our users probably want to do the same thing.</p><div><hr></div><h3><strong><a href="https://youtu.be/fdlt23C5yJ4?t=300">00:05:00</a> Equities Connectors &amp; Binance Prediction Markets</strong></h3><p><strong>Fede:</strong> The thing is, if all these stocks start trading in the spot, I think they&#8217;ll naturally appear in these exchanges too. Actually, Binance is listing all of this. That&#8217;s another interesting thing&#8212;I don&#8217;t know if you saw, but Binance released prediction markets.</p><p><strong>Mike:</strong> Really?</p><p><strong>Fede:</strong> Yeah, they released prediction markets, and they also released SpaceX. They&#8217;re catching up. But one interesting thing I saw about Binance is that they have something like 10,000 employees, and Hyperliquid has only 11. So there&#8217;s a big bias there.</p><p><strong>Mike:</strong> Hyperliquid is our type of organization, right? Maybe they&#8217;re even better than we are&#8212;small number of people, but they try to do a lot. From a regulatory perspective, both Hyperliquid and Binance are doing an end-around on US regulations. I&#8217;ve heard there&#8217;s a lot of talk in the US about how the CME is lobbying for more restrictive policy against Hyperliquid and Binance, to protect the sanctity of US markets. So that&#8217;ll be a really interesting watch.</p><div><hr></div><h3><strong><a href="https://youtu.be/fdlt23C5yJ4?t=420">00:07:00</a> Q&amp;A: Agent Backtesting &amp; Shorts</strong></h3><p><strong>Mike:</strong> But let&#8217;s get into it. We already have some questions from the audience. Let&#8217;s answer one from MJ Lee: &#8220;Are there any plans for Condor agent backtest support, other than deterministic script-based backtests?&#8221;</p><p><strong>Fede:</strong> Yeah, to backtest the agent&#8212;I think we can add that. It won&#8217;t be so difficult. And nice, because if you&#8217;re asking that, it means you&#8217;re probably using the agent framework. Based on the output of the cohort, we found it might be smarter to have an agent be in charge of deploying controllers and modifying their config, rather than trading directly. But if you&#8217;re doing grid trading, the agent is enough. So yeah, we can add something like that.</p><p><strong>Mike:</strong> My thought is to initially try backtesting using the backtest tab in the Bots section in Condor. Backtesting was always one of the most requested features in Hummingbot. We originally added it to the dashboard&#8212;the GUI for Hummingbot&#8212;a couple of years ago, but when we built Condor, we combined those capabilities into Condor. So you should already be able to backtest V2 controllers using Condor. And one of the changes Fede will talk about later is how we&#8217;re planning to let agents manage controllers more effectively in the future.</p><p><strong>Fede:</strong> Yeah, I think that&#8217;s the way to go&#8212;agents directly. There&#8217;s one more question: a user asks, &#8220;Guys, why not create short videos, TikTok style?&#8221; You want to be a TikToker, right?</p><p><strong>Mike:</strong> The first thing I&#8217;ll say is that marketing has never been our forte at Hummingbot. We&#8217;re a lot better at building stuff than we are at talking about it. But we have been creating more shorts and clips. Fede and I record here every Friday, and our community manager, Carlito, takes the videos, chops them into shorts, and publishes them on YouTube, Twitter, LinkedIn, and Reddit. We don&#8217;t do TikTok yet, mostly because of bandwidth. If you follow our Twitter handle, @_hummingbot, you&#8217;ll see some of those clips. And Deja&#8212;thank you for offering to help with marketing. If you have ideas, join the Discord and post them. As I said, we&#8217;re builders, not marketers, so we appreciate any help the community can offer.</p><div><hr></div><h3><strong><a href="https://youtu.be/fdlt23C5yJ4?t=600">00:10:00</a> Condor Builders Cup: Revised Schedule</strong></h3><p><strong>Mike:</strong> So let&#8217;s get into it. There are two things we want to do today. First, I want to talk about the upcoming hackathon&#8212;we&#8217;re revising the schedule&#8212;and show off a strategy someone created during the cohort, because it&#8217;s a good example of what people can build during the hackathon. Then Fede will demo some new Condor features that make it easier to manage your bots.</p><p>We&#8217;re revising the hackathon schedule a bit. It was supposed to start today, but based on feedback from the Botcamp students and the strategies they built, we&#8217;ve decided to modify the agent framework. Currently, agents in Condor can launch executors, so they can trade. But we&#8217;ve found a better role for the agent might be monitoring an existing HFT strategy&#8212;and Hummingbot already has a good framework for that, called bots and controllers. So Fede is going to change the agent framework so that, in addition to launching executors directly, the agent can manage a set of controllers and modify them.</p><p>We&#8217;ll be making those changes over the next couple of weeks so people can use them when the hackathon starts. That&#8217;s why we&#8217;re delaying the hackathon by about a month. The hackathon period will run from June 19th to July 10th, with a series of workshops to teach you how to build your agent strategy. After that, we&#8217;ll have a judging period where we work with our sponsors to select the winning agents, and we&#8217;ll prepare those agents to &#8220;drive,&#8221; so to speak, in a 48-hour live competition the week of August 3rd.</p><p>So it&#8217;s delayed a bit, but we hope this lets you create more sophisticated agents that manage true bot strategies. Registration is already open, and we&#8217;ll have more resources for registered folks before the 19th.</p><div><hr></div><h3><strong><a href="https://youtu.be/fdlt23C5yJ4?t=780">00:13:00</a> Demo Day: Wei Hong&#8217;s Cross-Exchange Perp Market Making (2nd Place)</strong></h3><p><strong>Mike:</strong> Let me show you some of the strategies people built during demo day. We had eight different strategies, and honestly, they&#8217;re all quite impressive. Some were directional, some market making; some traded on DEXes, others on order-book exchanges. I was really gratified to see how much work the students put in, especially given that the Condor harness is fairly new and they had to overcome bugs and other issues along the way.</p><p>Let me start with Wei Hong&#8217;s, which was the second-place winner. I thought it was quite impressive because he actually rebuilt a lot of the core components in Hummingbot to do it. What he built was a strategy that does cross-exchange market making, but on perpetual connectors. Traditionally, our cross-exchange market making only handles two spot exchanges, but with perpetuals you can now do the same thing on perps.</p><p>He built a strategy that analyzes different perpetual markets and finds opportunities to do cross-exchange market making&#8212;taking into account both the funding-rate differences between the two perp exchanges and the prices. When it identifies an opportunity, the strategy enters one long position and one short position, and hopefully captures the spread between the price differences as well as the funding-rate difference. Conceptually, you&#8217;d be in a position where you&#8217;re actually getting paid to enter, and you earn the funding rate along the way.</p><p><strong>Fede:</strong> Just as a reference, I created a video about two or three years ago doing funding-rate arbitrage between Hyperliquid and Binance perpetuals. I showed that if you enter both positions at market, you need almost two or three days of funding fees to recover the trading cost. The recommendation was to enter the position progressively, which is what Wei Hong is doing here&#8212;taking profits while entering a position he&#8217;ll be paid to hold.</p><p><strong>Mike:</strong> I was also impressed by how he got the strategy working in production. You can see the bot he was running: a long position in the stable USDT pair on Binance, and a short position on Hyperliquid. He was capturing some unrealized and realized P&amp;L, and also taking advantage of the funding-rate differences. Overall, a very impressive example where the student added his own custom executor and custom controller, and the strategy makes sense conceptually. We may even want to have this as a type of executor in Hummingbot later on.</p><p><strong>Fede:</strong> Yeah, we should.</p><div><hr></div><h3><strong><a href="https://youtu.be/fdlt23C5yJ4?t=1080">00:18:00</a> Demo Day: Raj&#8217;s &#8220;Market Making at the Touch&#8221; (Winner)</strong></h3><p><strong>Mike:</strong> This was the number-two strategy. The winning strategy was by Raj, called &#8220;Market Making at the Touch.&#8221; Let me explain it, since I could hear the audio on this one. Raj took concepts from an academic paper&#8212;I believe by Cartea and Penalva&#8212;that talks about how to turn market making into a stochastic optimization problem.</p><p>The idea is that when you acquire assets, you want to sell them to get back to neutral; if you sell, you want to buy them back; and in the middle, when you&#8217;re at a neutral position, you&#8217;re placing both orders. What he&#8217;s doing is creating 300-second grids and repeating that cycle every 300 seconds&#8212;placing orders and then trying to liquidate. Once we post the strategy video and he explains it, it&#8217;ll be easier to understand.</p><p>There&#8217;s quite a bit of academic theory here in terms of how it&#8217;s done, and he generated some really impressive visualizations to analyze what&#8217;s happening at various points. Essentially, he&#8217;s creating a policy that defines how the strategy should act. Because the policy is predefined, it&#8217;s easier to just run it instead of doing computations every tick. So this is very much an advanced market-making strategy based on more academic factors.</p><p>What also impressed me is that he ran the strategy live on Hyperliquid and generated over 120,000 in volume with basically flat P&amp;L&#8212;and with only a few thousand dollars in capital. In my opinion, this strategy is very close to what professional market-making firms, even the algorithmic ones, are running. It was a combination of the academic approach and real results in the wild, and that&#8217;s why he got the most votes. It was a very close competition between him and Wei Hong for the top slot, so I&#8217;m hopeful Wei Hong can also submit his strategy for the hackathon and win one of the other slots.</p><p><strong>Fede:</strong> This is really cool because one of them presented a professional-grade market-making strategy using a paper as inspiration, and the other went full operational. One guy with $1.5K traded 120K on spot in four hours&#8212;very impressive. And the other was trading perpetual positions of more than $5K into the exchanges. If you&#8217;re trading that amount, it&#8217;s because you&#8217;re confident in your strategy.</p><p><strong>Mike:</strong> I totally agree. And that&#8217;s why we&#8217;re doing this hackathon&#8212;during the cohort we had about eight submitted strategies, but with the hackathon a lot more people will get the chance to show what they can do with Condor, and we&#8217;ll see which strategies actually work in the wild.</p><p>To reiterate: the hackathon starts officially on June 19th, and you&#8217;ll have a three-to-four-week period to build your agent. Along the way we&#8217;ll have workshops, then we&#8217;ll judge the strategies with our sponsors, select the winners, and run the five or six winning strategies with our own capital in a sandbox environment for 48 hours to see which generates the most P&amp;L and volume. So, a final call-out: join the hackathon. You can find it at botcamp.xyz, and we&#8217;ll have more information over the next couple of weeks.</p><div><hr></div><h3><strong><a href="https://youtu.be/fdlt23C5yJ4?t=1380">00:23:00</a> Why Condor vs. General-Purpose Agents</strong></h3><p><strong>Mike:</strong> Let me answer one more question, from Digita, before we move on to the Condor updates: &#8220;You guys should add Hermes agent support. It will greatly boost.&#8221; Our community manager, Carlito, has been doing a lot of experimentation with Hermes&#8212;using it to schedule the publication of YouTube clips and shorts, and to notify people on Discord about changes.</p><p>The reason we&#8217;re building Condor, though, is that most current agentic harnesses&#8212;whether Open Claw or Hermes&#8212;are meant for general-purpose agents. That&#8217;s great; I use them quite a lot. But as a quant trader, trading is different from general tasks because it&#8217;s quantitative. LLMs are really good at qualitative, subjective, probabilistic tasks. But if you&#8217;re doing quant trading, a lot of the time you want the agent to not make mistakes, not hallucinate, and run very quickly.</p><p>So with Condor we&#8217;re trying to design a harness that uses LLMs, but uses them to accomplish the tasks traders actually need&#8212;operating from a first-principles approach. Later on, we could probably make Condor agents more compatible with Hermes or Open Claw, so you can run them in those platforms. But for now, we&#8217;re trying to create an interface that&#8217;s purely designed for trading. That&#8217;s why routines&#8212;deterministic scripts&#8212;are the initial primitive, and trading agents are the second.</p><p><strong>Fede:</strong> I agree. I tried Hermes too. It has 89 prebuilt skills and all that. The only really interesting thing is the auto-feedback loop that improves the skills automatically&#8212;but that&#8217;s something we can easily add to Condor. For our harness, it&#8217;s probably not what we&#8217;re looking for.</p><p><strong>Mike:</strong> Everything is new, so it&#8217;s a very open landscape&#8212;maybe there&#8217;s a way to make them more integrated in the future. But right now, when I&#8217;m trading, I want something dedicated to trading, not a general tool. Also, from a token-efficiency standpoint, you don&#8217;t want to just give API docs to Hermes and have it figure out trading for you, because that would be very expensive. That&#8217;s why Condor is structured to minimize the tokens used for decision-making, and to offload the core logic to routines, which are deterministic Python files.</p><p><strong>Fede:</strong> Yeah, I agree.</p><div><hr></div><h3><strong><a href="https://youtu.be/fdlt23C5yJ4?t=1620">00:27:00</a> Demo: PMM with Take Profit, Stop Loss &amp; Position Hold</strong></h3><p><strong>Mike:</strong> That&#8217;s a good segue. In the second half of today&#8217;s podcast, Fede&#8217;s going to demo the changes he&#8217;s been making to Condor to make it better at managing our bots, so you have more visibility into what&#8217;s going on. Do you want to take over and show what you&#8217;ve built?</p><p><strong>Fede:</strong> For sure. Let me share my screen. Can you see it?</p><p><strong>Mike:</strong> Yep.</p><p><strong>Fede:</strong> I&#8217;m currently adding to the PMM Mister controller. The take-profit and stop-loss feature is working quite well right now; I&#8217;m just figuring out one issue with the sell side that&#8217;s also creating a sell position. Thanks to that bug, I ended up with a position of 4K USD, and when I saw it was about $40 in profit, I just took it. But I&#8217;m trying to fix that position-hold bug.</p><p>The good thing is that the stop loss works, and it&#8217;s actually doing it with a limit chaser. It&#8217;s incredible how well the limit chaser works&#8212;I was watching it live and it was really nice. You can see how it&#8217;s trading.</p><p>Let me explain the position bars to everyone. This first bar that&#8217;s loading shows the mean position I can have, the target position I&#8217;d like to have, and the max position I&#8217;d like to have. Based on that, the bot accumulates a portfolio, and depending on its stop-loss value and current position, it decides whether to take the loss or not. There are a lot of conditions that need to be met to actually take the loss.</p><p>You see here, &#8220;closing position stop loss&#8221;&#8212;it tries to close the position, and it did. Now we have only 13 cents. There are parameters you can configure: global TP enabled, global SL enabled, the values you pick for them. And the take-profit should only trigger if you&#8217;re above the mean-based percentage, because you can be loading inventory. For example, now we have $25 and the global take-profit is $1&#8212;but you don&#8217;t just take it; you need to fill this inventory bar first.</p><p><strong>Mike:</strong> Can I ask a question? The global take-profit and stop-loss&#8212;how is that different from the take-profit and stop-loss at the position-executor level?</p><p><strong>Fede:</strong> Each executor has its own take-profit. But when an executor gets filled and the position isn&#8217;t reversed&#8212;because the market went down&#8212;I don&#8217;t want to keep that position by itself. I&#8217;d like to keep it as part of my big bag of positions. That&#8217;s what we call position hold. These executors are the position executors; after a certain amount of time, they&#8217;re moved to the &#8220;effective position.&#8221; Once they&#8217;re moved there, we manage our position in the long run.</p><p>So in this case, now that we&#8217;ve started, we&#8217;re still losing money, but it&#8217;s okay&#8212;I&#8217;m running with very aggressive parameters in order to fill the position and trigger these take-profit and stop-loss scenarios, because that&#8217;s what I&#8217;m testing. Now it&#8217;s able to take profit because it&#8217;s above the min base percentage. If the market suddenly goes up and the P&amp;L goes above the take-profit, it&#8217;ll take profit.</p><p>The stop-loss is only activated when the inventory reaches a target base. This is because I still have room to buy more&#8212;the market maker has room to buy more&#8212;so I don&#8217;t want to say &#8220;you&#8217;re taking the loss right now.&#8221; Let the market maker acquire more inventory, and maybe after some time we can improve our entry price and not need to take the loss at all. That&#8217;s the point.</p><p><strong>Mike:</strong> I see.</p><p><strong>Fede:</strong> I&#8217;m trying to fix this on the Hummingbot side to make the PMM Mister work with perp trades, plus this stop-loss feature. And on the Condor side there are quite a lot of improvements I&#8217;m finishing. To use this, you&#8217;ll need the latest Hummingbot image and the latest Hummingbot API image deployed.</p><p><strong>Mike:</strong> Sorry&#8212;doesn&#8217;t the Hummingbot API automatically fetch the Hummingbot image, or does the user have to pull the Docker image?</p><p><strong>Fede:</strong> I think if you use the update command, it should do it automatically. David, if not, you can review that process later, or just let us know if you have issues. Otherwise, go to where you have Hummingbot API, run <code>git pull</code>, and update your version&#8212;but I think it should work directly.</p><p><strong>Mike:</strong> You mean the update command in Condor&#8212;the Telegram <code>condor update</code> command?</p><p><strong>Fede:</strong> Correct.</p><div><hr></div><h3><strong><a href="https://youtu.be/fdlt23C5yJ4?t=2100">00:35:00</a> New Runs Tab &amp; Real-Time Bot Monitoring</strong></h3><p><strong>Fede:</strong> Let me go to Telegram and ask for the web link. This is Condor. As I mentioned before, I added a color-blind mode last week for one of my friends. Now I&#8217;ve added this Runs tab, which I&#8217;m going to be testing&#8212;it lets you delete the bot archive from the Hummingbot API.</p><p><strong>Mike:</strong> Does the Runs tab replace the Archive tab? Is archive still there after you delete?</p><p><strong>Fede:</strong> Archive is still there, but I&#8217;m pretty sure I&#8217;ll remove it, because it&#8217;s not working with the efficiency I think we should have. The routines, with their HTMLs, will probably replace it too&#8212;but I can&#8217;t confirm that yet.</p><p><strong>Mike:</strong> So the Runs tab shows the bots you&#8217;ve run, both archived and non-archived?</p><p><strong>Fede:</strong> Yeah. Everything you stop gets archived.</p><p><strong>Mike:</strong> I see &#8220;deployed bot&#8221; here too. So this page shows all the bots you&#8217;ve run, archived and non-archived&#8212;that&#8217;s why you can probably get rid of the Archive tab, since this page is more complete.</p><p><strong>Fede:</strong> Right. The one that says &#8220;deployed&#8221; is because I removed it manually&#8212;the record is in the DB, but I removed it from the file system, so it appears as deployed instead of archived. In this tab, I just deployed three random controllers. Let me build the Hummingbot image so we use the latest one.</p><div><hr></div><h3><strong><a href="https://youtu.be/fdlt23C5yJ4?t=2220">00:37:00</a> Five-Minute Snapshots &amp; Custom Controller Info</strong></h3><p><strong>Fede:</strong> The change I introduced to the Hummingbot API is that when you have a controller running, that controller is now dumped to the DB every five minutes by default. I think that&#8217;s the right interval. At some point we might go to one minute for real-time control, but every five minutes gives us only about 30 records per hour&#8212;otherwise we&#8217;d have a ton of records in the database, which probably isn&#8217;t worth it. Basically, we now have near-real-time information.</p><p>What we&#8217;ll have now is the progression of the P&amp;L, the position hold, and everything over time. Right now, in this view, I&#8217;m just seeing a snapshot of how the bot is doing&#8212;a picture. I can&#8217;t see the truth of what actually happened over time. So my point was: can we make something that actually lets you see the bot in real time while it&#8217;s running? That was the goal.</p><p>The other thing is that the information we collect from the controllers is naturally the realized P&amp;L, the unrealized P&amp;L, the global P&amp;L, and the volume traded. That data is available, but I also exposed a <code>get_custom_info</code> method that you can add to your controller. If you look at the PMM Mister <code>get_custom_info</code> method, everything you put in there will be sent through the MQTT broker.</p><div><hr></div><h3><strong><a href="https://youtu.be/fdlt23C5yJ4?t=2400">00:40:00</a> How the Data Flows: MQTT &amp; the Hummingbot API</strong></h3><p><strong>Mike:</strong> Let me paraphrase to make sure I understand. Right now in Hummingbot you see the real-time performance of the bot, but ideally you want to see how the bot has traded over time. So you&#8217;re sending a snapshot of the performance summary&#8212;plus anything the user puts in custom info&#8212;every five minutes. Where is this data being sent?</p><p><strong>Fede:</strong> The data flows through MQTT, so the bot stays very lightweight&#8212;we just send the data over MQTT and collect it with the Hummingbot API, which then has the real-time data. The only new thing here is: it&#8217;s good to have the real-time data, but now let&#8217;s also save a snapshot every five minutes so we can construct the history later. It&#8217;s the same mechanism we already use for the portfolio&#8212;as the Hummingbot API runs, we can see a one-week portfolio with snapshots every five minutes. We&#8217;re doing the same thing, but for the active bots.</p><div><hr></div><h3><strong><a href="https://youtu.be/fdlt23C5yJ4?t=2520">00:42:00</a> Live Deployment &amp; On-the-Fly Config Updates</strong></h3><p><strong>Mike:</strong> So right now it&#8217;s creating a new Docker instance for the bot, and in that instance it&#8217;s running three different strategy controllers&#8212;one for each trading pair?</p><p><strong>Fede:</strong> Yes, exactly. Here&#8217;s the bot that&#8217;s running&#8212;it started about 22 seconds ago. It&#8217;s already trading on three different markets. We don&#8217;t have a position on every pair yet, but now we have positions in each of them. This view shows the data live. If we enter one specific controller, the historical data isn&#8217;t available yet, because we take a snapshot every five minutes, so it&#8217;ll take a little while to get the first one.</p><p>We can also change the config of the bot from here, save it, and update the running bot in real time. That&#8217;s a really cool thing you can do.</p><p><strong>Mike:</strong> Wow, that&#8217;s fun. So it updates on the fly&#8212;you don&#8217;t need to stop the bot?</p><p><strong>Fede:</strong> Yeah, it updates on the fly. This is a new feature. Honestly, this form is a bit of a pain compared to the editor we have here, so maybe I&#8217;ll just add a Markdown view on the left in this style. What do you think?</p><p><strong>Mike:</strong> I think so too. It&#8217;s more useful, but we&#8217;d have to know the types of each field and constrain them. If a user can put in arbitrary items, it&#8217;s probably better to have Markdown. The only thing is: are there certain values you can change? For example, if you change the connector name, would it break the context?</p><p><strong>Fede:</strong> The controller itself has a concept of updatable or not&#8212;I&#8217;m marking which fields are updatable and which aren&#8217;t. So it doesn&#8217;t matter if you change the connector name; since it&#8217;s not updatable, it won&#8217;t let you change it.</p><p><strong>Mike:</strong> Got it. If you go to Markdown, you might be able to highlight the ones that are updatable&#8212;bold them, or gray out the ones that aren&#8217;t&#8212;so the user knows what they can change.</p><p><strong>Fede:</strong> Yeah, good idea.</p><div><hr></div><h3><strong><a href="https://youtu.be/fdlt23C5yJ4?t=2700">00:45:00</a> Combined P&amp;L Across Controllers</strong></h3><p><strong>Fede:</strong> Now we have the first information here. If we go to Bots, we need at least one more record&#8212;we&#8217;ll see another line in the next five minutes showing the change. As you can see, we have the realized, unrealized, and total P&amp;L, and the volume on a different scale. Once we have position hold, it&#8217;ll also show that.</p><p>For reference, I think we pasted on Twitter and in Discord how it looks. I&#8217;m currently changing the layouts a bit. Another cool thing is that here we can switch through each controller individually&#8212;though right now it&#8217;s not letting me switch; there&#8217;s something blocking it because I just made a change in the PR that I need to review.</p><p>Once we have more than two records, this shows the combined P&amp;L of all the controllers you&#8217;re running. That&#8217;s really cool, because you can see, &#8220;I&#8217;m running five different algorithms, and this is the combined performance.&#8221; Some can go well, some can go wrong, but the interesting thing is you can see the combined performance.</p><p><strong>Mike:</strong> Just so I understand&#8212;those three controllers are running in the bot below, which is basically the Docker instance managing those three controllers?</p><p><strong>Fede:</strong> Yes, exactly.</p><p><strong>Mike:</strong> Should the user be concerned if they see errors, or is that part of normal operation?</p><p><strong>Fede:</strong> If they see errors, they should look at them to understand what they are. For example, &#8220;open order failed&#8221; usually happens if you&#8217;re using limit-maker orders and the order the bot sends crosses the mid-price&#8212;it would match and take while crossing the order book. That can happen if you&#8217;re sending an order that&#8217;s un-updated, or in my case, sending orders very tight. Another error here is that I tried to set a leverage of 20, and 20 isn&#8217;t valid for this pair. So you want to look at these and see if there&#8217;s a specific error.</p><p>The good thing is that here we have a view of controllers&#8212;that&#8217;s probably what you care about. But remember those controllers can be deployed in different bots. If I deploy three more controllers, I&#8217;ll see another bot with three controllers. The bot is the Docker container; the strategies run under that container. I can deploy another Docker container with three more controllers, and that results in another bot.</p><p>I actually broke the visualization&#8212;it was showing the full-screen thing, so I&#8217;ll probably fix it today. I just pushed it.</p><div><hr></div><h3><strong><a href="https://youtu.be/fdlt23C5yJ4?t=2940">00:49:00</a> Why Time-Series P&amp;L Matters for Agents</strong></h3><p><strong>Mike:</strong> I get the general concept, and it makes a lot of sense, because when you&#8217;re trading it&#8217;s not just a point in time. You run a bot for a day or a week, so you really need to see how the bot is evolving&#8212;how the P&amp;L evolves over time. That gives you a lot of insight: is this bot doing well because it&#8217;s consistently profitable, or is it just getting lucky because the market happened to move in its direction?</p><p><strong>Fede:</strong> Exactly. And this is where I think the agent will be good&#8212;almost in real time&#8212;at understanding what&#8217;s actually happening. For example, this BIL market has most of the realized P&amp;L. Why? It has the most volume and the lowest unrealized. So the agent should say, &#8220;Okay, let&#8217;s allocate more total quote to BIL instead of the others, because it&#8217;s making more realized P&amp;L.&#8221; Now that we have two points, you can see it. This combined view is the realized P&amp;L of all the controllers. If I want to see just one, I can isolate it. This is really cool&#8212;I think it&#8217;ll be a game-changer for the agents.</p><p><strong>Mike:</strong> I think that&#8217;s also why we should use this in the trading competition&#8212;being able to see the performance of different bots and how they rank against each other. We basically need the same data to make the competition more interesting.</p><p><strong>Fede:</strong> I agree. This is what I&#8217;m working on right now, and it involves changes on both the Hummingbot side, the Hummingbot API, and Condor&#8212;that&#8217;s the only downside. But overall it&#8217;s really cool.</p><div><hr></div><h3><strong><a href="https://youtu.be/fdlt23C5yJ4?t=3060">00:51:00</a> Wrap-Up</strong></h3><p><strong>Mike:</strong> Just to wrap up&#8212;this is actually why we&#8217;re delaying the hackathon by a few weeks. We want to make sure the agent can manage controllers like this, so you can have a set of controllers running and your agent can make changes on your behalf&#8212;a more agentic strategy. Hopefully we can finalize all those changes in the next few weeks so that when the hackathon starts on June 19th, you&#8217;ll be able to deploy agents that manage this for you. Registration is already open, so if you&#8217;re interested, sign up&#8212;we&#8217;ll be sending emails to the registration list over the next few weeks with more resources and information about how the hackathon works.</p><p><strong>Fede:</strong> See the difference in how it&#8217;s trading now compared to before? Before it was much more aggressive&#8212;well, it&#8217;s still aggressive now. But notice how fast and easy it was to deploy three bots on three different markets. Even if some of these markets aren&#8217;t very competitive, it&#8217;s quite interesting how easy it is to do. That&#8217;s all for me&#8212;I&#8217;ll push this, and it should be available very soon.</p><p><strong>Mike:</strong> Nice. Just to wrap up, thank you all for joining another episode. We&#8217;ll be here next Friday again&#8212;Fede will actually be in Europe, so it&#8217;ll be a little more interesting. Next week we&#8217;ll probably cover more changes; we try to cover every change we make to Condor on a weekly basis. And starting June 19th, when the hackathon starts, we&#8217;ll use these weekly sessions more as workshops for the folks attending, to guide you in building your agents.</p><p>One last thing&#8212;I&#8217;ve always wanted to do a regular podcast. Part of me wants to be semi-famous, so to speak. We have about 10 viewers on average right now; hopefully we can grow that 20% every week and get to hundreds, if not thousands. So that&#8217;s my ulterior motive. Really, thank you everyone for joining and asking questions. We&#8217;ll see you next Friday.</p><p><strong>Fede:</strong> Bye bye.</p>]]></content:encoded></item><item><title><![CDATA[The Bot Pod Episode 7: Deep Dive into Routines]]></title><description><![CDATA["Turn raw market data into custom reports"]]></description><link>https://hummingbot.substack.com/p/the-bot-pod-episode-7-deep-dive-into</link><guid isPermaLink="false">https://hummingbot.substack.com/p/the-bot-pod-episode-7-deep-dive-into</guid><dc:creator><![CDATA[Hummingbot Foundation]]></dc:creator><pubDate>Sat, 16 May 2026 13:26:18 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/197993265/3ba8e5ecadcd4150140247cb92f79b9b.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>We&#8217;re back with Episode 7 of <strong>The Bot Pod</strong>! This week, Mike and Fede take a deep dive into <strong>routines</strong>&#8212;what they&#8217;re calling the most powerful and immediately useful primitive in Condor. The episode covers a wide-ranging market discussion (perps on Cerebras, prediction markets, the prop-firm &#8220;funding test&#8221; model), a live demo of Mike&#8217;s memecoin LP yield routine and agent, and a tour of the latest Condor UI improvements.</p><p><strong>Watch the full episode:</strong> <a href="https://www.youtube.com/watch?v=BIksOezjPvw">YouTube</a> </p><p><strong>Install Condor</strong>: <a href="https://condor.hummingbot.org/">condor.hummingbot.org</a></p><div><hr></div><h2><strong>Episode Highlights</strong></h2><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=120">2:00</a> Crypto as an Oracle for TradFi</strong></h3><p>Mike&#8217;s friends in traditional finance are increasingly excited about Hyperliquid. The standout story: a Citrini tweet about funds watching <strong>CBRS</strong> (Cerebras, the AI inference chip company) trade on a Hyperliquid HIP-3 market for price discovery before the company has even IPO&#8217;d.</p><blockquote><p>&#8220;Crypto markets are becoming almost true oracles for what might happen in traditional finance. When this thing actually IPOs, guess what those initial market makers are going to use for the reference price?&#8221; &#8212; Mike</p></blockquote><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=300">5:00</a> The Risks of &#8220;Perps on Anything&#8221;</strong></h3><p>The hosts talk through the counterparty risk in these new market types. Fede points out that every big crypto crash he&#8217;s seen came from a broken trust between counterparties&#8212;and a thin perp market on a niche index could leave traders unable to exit positions.</p><blockquote><p>&#8220;Having lived through FTX, there&#8217;s always something unknown about any type of leveraged perp DEX.&#8221; &#8212; Mike</p></blockquote><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=480">8:00</a> Spot vs. Derivatives: Two Different Animals</strong></h3><p>Mike draws on his finance background to separate market types: L1s like Solana and Base are where new tokens are <em>born</em> and experiments are run (spot), while a perp DEX is a <em>pure derivatives market</em> for anything you can leverage. They also touch on proof.trade&#8217;s conditional-value markets and MetaDAO&#8217;s decision markets.</p><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=660">11:00</a> The Prop-Firm &#8220;Funding Test&#8221; Model</strong></h3><p>Fede and Mike dissect how FX brokerages and prop firms really work&#8212;identifying winners <em>and</em> losers, and the &#8220;funding test&#8221; model where traders pay for an account, trade on paper, and most of them fail, generating free money for the issuer.</p><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=960">16:00</a> Why Routines?</strong></h3><p>Mike frames the core idea of the episode: turning data into something usable used to take a long time&#8212;collect, clean, parse, visualize. Routines collapse that. Combined with Hummingbot&#8217;s connectivity to every exchange, &#8220;anything you can dream of can be built on top of routines.&#8221;</p><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=1080">18:00</a> Does Hummingbot Actually Make Money?</strong></h3><p>Answering an audience question, the hosts are clear: Hummingbot is a <strong>framework</strong>, not a magic money box. Fede shares a concrete example&#8212;a client market-making fiat pairs on Binance, ~$1.5M/day volume, earning ~9% monthly on rebates alone before trading PnL.</p><blockquote><p>&#8220;If you&#8217;re expecting to click a bot and make money, you will fail. It&#8217;s a framework&#8212;it has all the primitives you need.&#8221; &#8212; Fede</p></blockquote><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=1260">21:00</a> Demo: Memecoin LP Yield Hunter</strong></h3><p>Mike demos a routine he built that uses the GeckoTerminal API to fetch the top Solana pools, ranks them by yield (fees &#247; TVL), and filters to concentrated-liquidity pools so he can set single-sided SOL ranges instead of buying memecoins outright. He then pairs it with an agent&#8212;<strong>Memecoin LP Yield Hunter</strong>&#8212;that fills three LP slots, monitors them, and redeploys capital as positions auto-close.</p><blockquote><p>&#8220;Although it needs some iteration, it basically did what it was supposed to do. So far I&#8217;m pretty much in the black in all the pools.&#8221; &#8212; Mike</p></blockquote><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=1800">30:00</a> Routines Are the &#8220;New Reporting Era&#8221;</strong></h3><p>Mike shows a second routine that visualizes his live LP positions against each pool&#8217;s liquidity distribution&#8212;and how he iterated on it, asking the agent to add more detail with each run.</p><blockquote><p>&#8220;This is a revolution. Routines and reports are the new reporting era&#8212;dynamic visualization. You have an idea, you plot it, then you reproduce it over and over again.&#8221; &#8212; Fede</p></blockquote><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=1980">33:00</a> Architecture: Agents, Routines, and learnings.md</strong></h3><p>Fede explains how it fits together: an agent (powered by an LLM) helps you build routines that surface exactly the data you need. Once built, that data is automatically available to your trading agent, which has tools to create and stop executors&#8212;and maintains a <code>learnings.md</code> file so it improves over time.</p><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=2160">36:00</a> Condor UI Tour</strong></h3><p>Fede walks through the latest UI: multi-currency portfolio conversion via the rate oracle, the trade interface for running grids across any CEX, the executors view, and a pairs-trading agent built live in Botcamp that creates grids based on deviations.</p><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=2520">42:00</a> Order Book Depth Across Exchanges</strong></h3><p>A standout routine: built with agent mode in minutes, it pulls order books from four exchanges and compares depth and spread in BPS around the price. Fede uses it to spot a real cross-exchange opportunity on AAVE and a 90 BPS spread on a memecoin&#8212;leading Mike to plan a CEX/DEX cross-chain market-making routine on the TROLL token for next week.</p><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=2880">48:00</a> Accessibility: Color-Blind Mode</strong></h3><p>A small but meaningful touch&#8212;Fede added a color-blind theme alongside dark and light modes after a friend who uses Condor asked for it.</p><div><hr></div><h2><strong>Next Week</strong></h2><p>Mike&#8217;s homework: extend the order-book arbitrage routine with a Jupiter (Solana) leg and report back on whether there&#8217;s a real CEX/DEX arb on the TROLL token. Join us live next Friday on <a href="https://www.youtube.com/@Hummingbot">YouTube</a>.</p><div><hr></div><h2><strong>Full Transcript</strong></h2><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=0">00:00:00</a> Intro</strong></h3><p><strong>Mike:</strong> Welcome, welcome everyone. This is another weekly episode of the Bot Pod podcast. I&#8217;m Mike, this is Fede, and we are the co-maintainers of the Hummingbot open source framework. Lately we&#8217;ve been working on this new agentic harness called Condor. It&#8217;s like Open Claw, but for traders.</p><p>We&#8217;ve been focusing this podcast on weekly demos of all the new features that Fede&#8212;mostly Fede, but maybe 10% me&#8212;have been adding to the harness. This week Fede&#8217;s going to demonstrate some new changes to the user interface, as well as take a deeper dive into how routines work.</p><p>Overall, we think routines are a really powerful new primitive in Condor. Combined with LLMs, they can make a lot of trading-related tasks a lot easier. But before we get into that, like we always do, let&#8217;s talk about what&#8217;s been going on in the markets lately.</p><div><hr></div><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=60">00:01:00</a> Market Discussion: Markets Are Hot</strong></h3><p><strong>Fede:</strong> Hi, everyone. How&#8217;s it going? The markets are really hot right now. You don&#8217;t know if it&#8217;s going up or going down. Bitcoin could break 80K. Hyperliquid went up 20% yesterday&#8212;well, maybe 15%, but still a lot. Now it&#8217;s going back down a little.</p><p>A lot of things happening. A lot of uncertainty, but I think this is a time to build portfolio, build strategies. As I said last time, we&#8217;re probably at the lowest point of crypto prices over the last two years for some tokens like Solana. And I still see the market evolving&#8212;more transactions being processed, more fees collected, more real-world companies getting into the chains. So I&#8217;m bullish on this.</p><div><hr></div><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=120">00:02:00</a> Crypto as an Oracle for TradFi</strong></h3><p><strong>Mike:</strong> What&#8217;s interesting&#8212;I&#8217;m actually on the East Coast this week. I&#8217;m here for my 25-year college reunion. Yes, I am that old. I stopped by New York on the way and met up with some friends in traditional finance who are crypto-adjacent. It&#8217;s really interesting because a lot of them are super excited about some of the things happening in crypto lately, especially around Hyperliquid.</p><p>We talked last week about Hyperliquid and their HIP-3 markets&#8212;how they&#8217;re basically creating perpetual markets for all kinds of things where there&#8217;s some observable index price. For example, oil is one of the third or fourth biggest tradable markets on Hyperliquid. But now you also have silver, the S&amp;P 500.</p><p>There was a tweet this morning from a Twitter account called Citrini that a lot of people in TradFi follow. Let me read it: &#8220;Have gotten four different calls today from funds for watching CBRS trade on Trade XYZ for price discovery. Pretty surreal.&#8221;</p><p><strong>Fede:</strong> Yeah, it&#8217;s crazy. They&#8217;re trading the price discovery of this new company.</p><p><strong>Mike:</strong> Exactly. But this isn&#8217;t just any new company&#8212;it&#8217;s Cerebras. Cerebras is actually just down the street from me, literally about two miles from where I live. They&#8217;re very secretive, but apparently they&#8217;re building some type of AI inference chip. Now that there&#8217;s so much demand for AI, the load is shifting from training to inference. If they can build an inference-specific chip that&#8217;s faster or lower power, this could be the next big IPO.</p><p>So to me, what&#8217;s interesting is that crypto markets are becoming almost true oracles for what might happen in traditional finance. When Cerebras actually IPOs, guess what those initial market makers are going to use for the reference price of CBRS? I believe they&#8217;ll use this Hyperliquid HIP-3 market.</p><p>So I do think perps on anything is actually a viable outcome. I&#8217;m not saying it&#8217;s going to happen, but&#8212;not financial advice&#8212;we should probably start accumulating some HYPE.</p><div><hr></div><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=300">00:05:00</a> The Risks of &#8220;Perps on Anything&#8221;</strong></h3><p><strong>Fede:</strong> Yeah, I agree. We were discussing today what the risks are. Personally, all the big crypto crashes I saw were when someone broke the trust of the other counterparty. If we&#8217;re trading on a market like this and suddenly all the players go to zero funds, then the market doesn&#8217;t exist and you can&#8217;t trade or get rid of your positions. That&#8217;s something that might be complicated.</p><p><strong>Mike:</strong> Definitely. Having lived through FTX, there&#8217;s always something unknown about any type of leveraged perp DEX&#8212;especially since they&#8217;re also doing the market making. There&#8217;s some tie-up between HLP, the market-making vault, and the exchange. So there are some similarities. I definitely hear you on the risk. It&#8217;s not financial advice.</p><p><strong>Fede:</strong> Not financial advice, but there&#8217;s a part of me that says you have to be careful with these because I don&#8217;t know where it can go. At some point, if someone creates a similar thing on Solana&#8212;I think the Cheetah guys will have a very good chance with their CTX exchange, because Solana has a lot of liquidity. All the tokens are tradable, even meme coins, because there&#8217;s a lot of liquidity for all of them.</p><p>If someone can combine the experience of AMMs for perps with an order book&#8212;similar to what XRP has, where you combine the order book and limit orders&#8212;I think the liquidity in Solana would probably be better and people would choose to trade there. But for now, Hyperliquid has the best experience. The point of why it got so good is that they&#8217;re basically a Binance terminal on a blockchain&#8212;anyone can feel the same experience as trading on a CEX.</p><div><hr></div><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=480">00:08:00</a> Spot vs. Derivatives Markets</strong></h3><p><strong>Mike:</strong> I totally agree. But I think there&#8217;s space for an exchange&#8212;a CEX or DEX like Hyperliquid and Binance&#8212;which is about trading currencies, major coins, those kinds of things. And there&#8217;s also room for another kind of chain for meme coins, where things are created and born. That&#8217;s basically an L1&#8212;composable, like what HyperEVM is supposed to be.</p><p>But that&#8217;s a different animal from a perp DEX, or even a perp CEX, which is just a leveraged futures market. It&#8217;s more like a pure derivatives market for any instrument you can leverage and trade. So you still need a spot market for those things, and you need a spot market for new assets generally. They serve a different purpose from a market-design philosophy perspective.</p><p><strong>Fede:</strong> Yeah, you still need both. Hyperliquid did really well at the perp side, not so much the spot side.</p><p><strong>Mike:</strong> I agree. That&#8217;s why I think an L2 makes sense&#8212;something customized to fit that market. Whereas the edge Solana has is all these different competing startups creating various types of markets. There&#8217;s one recently announced by my friend Squid in the Solana ecosystem called proof.trade. He&#8217;s trying to create impact markets&#8212;basically trading the value of something conditional on some event happening. For example, what would the price of oil be if there&#8217;s a truce between Iran and the US.</p><p>As a statistics nerd, I like the idea of conditional probabilities and expected value given some probability. It&#8217;s a different spin on prediction markets&#8212;prediction markets trade whether an event will be one or zero, and this is more like trading the value of something given that event. Another example is MetaDAO, where they&#8217;re trying to make decision markets and futarchy happen to govern tokens.</p><p>So to me, Solana and Base and other L1s are the chains where things are born and experiments are run, creating new spot tokens. And then there&#8217;s another need: how do you create derivative markets. This is also why, when I worked in finance, these were different departments&#8212;equities on one floor creating new companies, and fixed income or derivatives on the floor above, which is what I worked in, creating all kinds of funky derivatives.</p><p>Overall, whether it&#8217;s spot or derivatives, I think crypto&#8217;s going to take over finance generally. Sorry to our friends in TradFi, but in 20 years it&#8217;s all going to be crypto.</p><p><strong>Fede:</strong> I agree. Everything will move to crypto. It&#8217;s really interesting, the things that are happening.</p><div><hr></div><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=660">00:11:00</a> paper.trade &amp; the FX Prop-Firm Model</strong></h3><p><strong>Fede:</strong> Did you see this paper.trade XYZ? It&#8217;s another vision thing happening on Solana. Basically you&#8217;re trading against an LP&#8212;the paper token. You have 1,000x leverage to trade, and they have a mechanism of queues for getting paid. The long bet is that the value of the LP will grow as people lose against it by trading the markets.</p><p><strong>Mike:</strong> Those are the things that usually crash, but there&#8217;s something interesting here. It reminds me of a conversation I had with a Hummingbot user&#8212;I won&#8217;t disclose who. They were telling me how the FX brokerage game works. They give you an account, and what they&#8217;re really trying to do is identify who&#8217;s a winner and who&#8217;s a loser.</p><p>The winners, obviously, they can give more capital to and you can actually profit&#8212;the incentives are aligned. But identifying a loser is also valuable, because you want to trade against a loser and take the other side. The reason they give people an account is that just making that identification is worth more than the value of the account they&#8217;re giving up. Most of the value comes from identifying the losers, not the winners.</p><p>When I was in Mendoza after your wedding, the guy who drove me around was basically one of these guys getting the accounts. He was trading FX, and I tried to convince him to try crypto trading&#8212;&#8221;Why don&#8217;t you trade FX on Binance perps?&#8221; But then he told me about this model and I realized the whole incentive structure is different. Binance isn&#8217;t going to give people $100 to trade with on Binance Futures, but these FX brokers are giving them $100 accounts.</p><p><strong>Fede:</strong> I think it&#8217;s also a Ponzi model. The way it works is they make you pay a certain amount of money to get the account&#8212;</p><p>[A pause as Fede&#8217;s desk gets bumped.]</p><p>Sorry, I&#8217;m having a problem at my desk&#8212;my wife threw all the mugs onto the table while she was playing a game.</p><p><strong>Mike:</strong> It&#8217;s good you&#8217;re referring to her as your wife. It took me a while after my wedding to refer to &#8220;the wife&#8221;&#8212;&#8221;my wife.&#8221;</p><p><strong>Fede:</strong> Now it&#8217;s my wife. He almost threw it again. But some of these contracts&#8212;you pay for a funding test, and if you fail the funding test, you lose all the money. To pass the funding test, you need to make X percent of yield.</p><p><strong>Mike:</strong> So it gives you an account, and you have to make a certain amount to keep going. Yeah, I think my driver mentioned that too.</p><p><strong>Fede:</strong> You need to make a certain yield to keep going. Most of them lose, so that&#8217;s free money for the one giving the funding. And the thing is, they&#8217;re never trading on real money&#8212;they&#8217;re trading on paper-trade accounts. So the issuer is never losing.</p><p><strong>Mike:</strong> Got it. It&#8217;s like paper trading. So this paper.trade XYZ sounds a bit similar in terms of incentive design&#8212;they&#8217;re trying to get people to lose.</p><p>This is what I love about crypto: any experiment you can think of is being run.</p><div><hr></div><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=960">00:16:00</a> Why Routines?</strong></h3><p><strong>Mike:</strong> Let me do the segue. Speaking of experiments, there&#8217;s nothing you can&#8217;t do with routines, as we&#8217;re finding out. As a trader, it&#8217;s important to be able to quickly take data and turn it into something usable. In the past that would take a long time&#8212;you&#8217;d have to collect the data, clean it, parse it, and finally put it into some visual format you can actually analyze and share.</p><p>But with the power of Hummingbot, how it connects every exchange, plus this concept in Condor called routines, that&#8217;s gotten a lot easier. We&#8217;ve already built a few&#8212;Fede has demonstrated them in prior livestreams&#8212;but today he&#8217;s going to give a real deep dive into exactly how they work and show off the new Condor UI that&#8217;s optimized for routines.</p><p><strong>Fede:</strong> I agree with your description. Anything you can dream of can be built on top of routines. Do you want to share the one you built first&#8212;the one for the token&#8212;and then I&#8217;ll show the new things about routines in general?</p><p><strong>Mike:</strong> All right, let me make sure I&#8217;m running my Hummingbot API and Condor. Let me open up Docker. By the way, I&#8217;m trying to make our content a little more clip-optimized. We have a great community manager named Carlio who&#8217;s been helping with video production, turning the content we create weekly into something shareable. I&#8217;m trying to make his job easier.</p><div><hr></div><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=1080">00:18:00</a> Does Hummingbot Actually Make Money?</strong></h3><p><strong>Mike:</strong> Before I dive into the meat of routines, let&#8217;s answer a few questions from the audience. There&#8217;s one from Digita: &#8220;Is there a real use case where using Hummingbot makes money with a growth strategy?&#8221;</p><p>We get this question a lot. We probably wouldn&#8217;t have $30 billion of reported volume per year if people weren&#8217;t using it for something of value. But I&#8217;d look at Hummingbot more as a framework for building some type of automated process. A lot of market makers use Hummingbot to run strategies like cross-exchange market making or pure market making, because that&#8217;s how they provide that service to their customers. Similar to us&#8212;when we do market making, we use Hummingbot because it lets us automate something and build off a framework instead of hiring a bunch of developers to build from scratch.</p><p>Our job is to make sure it&#8217;s usable in many different ways, and that&#8217;s why we added Condor. Now anyone can use Hummingbot&#8212;you don&#8217;t have to be a developer anymore. You can just talk to Condor and it can build what you want.</p><p><strong>Fede:</strong> That&#8217;s something interesting&#8212;if there were no people making money, we shouldn&#8217;t have 3 billion in trades per month with our framework. So there&#8217;s definitely a way to make money with it. But if you&#8217;re expecting to just click a bot and make money, I&#8217;ll tell you that you will fail, because it&#8217;s a framework. It&#8217;s not a magic mystery box that makes money for you.</p><p>The framework lets you collect all the market data from the exchange&#8212;order book, trades, candles, funding rates, everything you need&#8212;and lets you execute any trade you want. There are some pre-built strategies you need to configure, and based on the config they change a lot.</p><p>So yes, it&#8217;s a framework. If you have a strategy that&#8217;s good for the type of advantages you have, you can make money. In my case, right now we&#8217;re working with a client that has an edge on fiat markets on Binance. We&#8217;re trading around 1.5 million per day, and we get 0.015% in rebates. On a monthly basis, that&#8217;s about 9% only on rebates&#8212;then comes the trading PnL. So it depends a lot on the edge and the type of strategies you want. The point is, wherever you want to use it, you can, because it has all the primitives you need.</p><div><hr></div><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=1260">00:21:00</a> Demo: Memecoin LP Yield Hunter</strong></h3><p><strong>Mike:</strong> Let me demo the routine I built a couple of days ago. As you guys probably know, my specialty is doing LP strategies in Solana, especially for memecoins&#8212;which I do less of now. A couple of years ago I was doing enough of it that I was personally getting concerned I was developing a slight gambling addiction. So I&#8217;ve been building routines to identify promising memecoins and then LP for them on Meteora. Let me share what I&#8217;ve built so far.</p><p>This is very early, so don&#8217;t expect it to be life-changing or some super profitable algorithm. But I thought it was a promising start.</p><p><strong>Fede:</strong> While you share that&#8212;I like a lot what Samuel said in the chat, and that&#8217;s exactly the way I&#8217;m approaching it. I&#8217;m adding a process of batching in the middle, because to be more aggressive, my market maker has an onload period and an offload period. I&#8217;m doing discrete trading sessions&#8212;some with positive outcomes, some with negative outcomes&#8212;but it works long term. There&#8217;s a balance between how aggressive you are and how you can keep making profits long term.</p><p><strong>Mike:</strong> Okay, let me share my whole screen. I have Condor running here. We recently updated the installation section of the website&#8212;condor.hummingbot.org. David just added a new installation script, so you should be able to download the script, run it in your terminal, and it&#8217;ll install everything you need.</p><p>The first step is creating the Telegram bot you&#8217;re going to use. I&#8217;ve named mine Condor&#8212;a new bot I created using BotFather. Because I&#8217;m already running Claude Code, it&#8217;s connected, so I can say &#8220;Hi&#8221; and it should respond. There&#8217;s also the web dashboard. Let me ask Condor what it can do.</p><p>As you can see, it&#8217;s a harness similar to Open Claw, and what you can do with it is anything the Hummingbot API is capable of&#8212;getting portfolio, doing trading, running bots and agents. But the most valuable thing we&#8217;ve seen so far is building routines.</p><p>Here&#8217;s one I created the other day to analyze pools and create an agent. This routine uses the GeckoTerminal API to fetch the top Solana pools&#8212;probably the top one or two hundred pools by volume. Then it ranks them by yield, meaning the fees the pool earned divided by the total value locked. I then filter by concentrated-liquidity pools, because I don&#8217;t want to buy the memecoin outright&#8212;I only want to set single-sided ranges. If the price falls into the range, I&#8217;ll buy some, but I&#8217;d rather earn fees. So this routine just ranks the top pools over and over again. When I ran it, the top pools were RKC, Troll, and Hanta.</p><div><hr></div><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=1440">00:24:00</a> The Memecoin LP Yield Hunter Agent</strong></h3><p><strong>Mike:</strong> After I built that routine, I paired it with an agent&#8212;called Memecoin LP Yield Hunter. The strategy is defined in the agent.md file. It says: provide single-sided SOL liquidity to the top three trending Solana memecoin/SOL concentrated-liquidity pools.</p><p>So it takes the output of that routine&#8212;the ranking of top pools&#8212;and there are three slots. If the slots are empty, it creates LP executors to put single-sided positions in them. The LP executors have automatic close limits&#8212;upper and lower. When an LP executor self-closes, that frees up a slot, the routine triggers again, and the agent deploys that capital into a new slot.</p><p>I&#8217;ve run this for a little bit. This last session ran for 100 ticks. In the beginning, because it was inheriting from other sessions, all three slots were filled. Then it kept tracking the slots. Sometimes it opened slots&#8212;here it actually saved an error: at first it failed, then the next tick it detected the duplicate and did the right thing. Although it needs some iteration, it basically did what it was supposed to do&#8212;run the routine, look for open positions, and create LP executors on Meteora.</p><p>In terms of actual performance, it did okay. I&#8217;ve been tracking it on Meteora, and I had positive PnL in basically all the pools I created. A couple are still in range&#8212;they might rug and go down&#8212;but so far I&#8217;m pretty much in the black in all the pools.</p><p><strong>Fede:</strong> Seems like there&#8217;s a problem with the reporting of the executors&#8212;the P&amp;L. If you go down to the executors, do you see that they say zero P&amp;L?</p><p><strong>Mike:</strong> Yeah. Part of it is the candles aren&#8217;t being fetched, because it would need to get candles from GeckoTerminal for these. There were a couple with P&amp;L in there. It&#8217;s probably easier to see in the executors list. Part of it is that this is SOL&#8212;for instance, this one I made 13% on from a yield perspective, but the volume is in SOL, so the P&amp;L is probably denominated in SOL.</p><p>But you&#8217;re right, I need to check, because there&#8217;s a bunch of stuff with the GeckoTerminal data not displaying correctly. I need to make sure the SOL base displays for executors, as well as general DEX charting.</p><p><strong>Fede:</strong> Don&#8217;t worry about that&#8212;I can do it for you. The SOL thing is already solved in my PR. On the top right you&#8217;ll have a conversion option that lets you do the conversion.</p><div><hr></div><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=1800">00:30:00</a> Routines: The &#8220;New Reporting Era&#8221;</strong></h3><p><strong>Mike:</strong> Overall&#8212;and this is for the audience too&#8212;my experience is I&#8217;ve found routines to be much more helpful and usable right now. The agents I&#8217;m excited about in the long run, but routines are immediately valuable.</p><p>For example, here&#8217;s another routine I created to analyze the existing LP positions I had created. This is the current price, this is my overall position, and these are the auto-close prices for each position. With this routine I could see whether my positions were in range and earning fees, or close to being closed. In the future I&#8217;d also like to have a notification if one closes&#8212;then it shows me a list of the top pools and lets me select which one the new slot deploys into. That kind of format I&#8217;d feel more comfortable running in the near term.</p><p><strong>Fede:</strong> I think this is a revolution. Routines and reports are the new reporting era&#8212;dynamic visualization. You have an idea, you want to plot it, then you want to reproduce it over and over again. It&#8217;s amazing.</p><p><strong>Mike:</strong> This is interesting, Fede&#8212;the first time I ran this routine, I looked at the report and thought, &#8220;I actually want to see more details about all these positions.&#8221; So I asked the agent to add information about each position to the report. The second time I ran it, it added these liquidity distributions for each pool, showing my position relative to the existing liquidity distribution. I thought it was cool how you can iterate on the reports and make them better over time.</p><p>Do you want to share what you&#8217;ve been working on? I think I&#8217;m even using an outdated version of Condor.</p><div><hr></div><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=1980">00:32:00</a> Audience Q&amp;A: LP Executors</strong></h3><p><strong>Mike:</strong> There&#8217;s a question from Raj: are we able to debug some of the LP executor issues? We have been fixing them. I pushed to Condor recently the updated LP executor guide&#8212;that&#8217;s on main. There&#8217;s also a PR open about the API that our QA team is going to review, which fixed a couple of minor issues I found using API plus Gateway.</p><p>Overall, the LP executor should be working from an API perspective. We still need to make sure the Condor UI is integrated correctly. For all executors, my lesson is: if you have it configured correctly, it should work. But you may have to do some work&#8212;check the API logs and error messages&#8212;to make sure it works.</p><div><hr></div><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=1980">00:33:00</a> Architecture: Agents, Routines &amp; learnings.md</strong></h3><p><strong>Fede:</strong> There&#8217;s another question from Samuel&#8212;a very good one, because it&#8217;s about how the architecture works for routines and agents.</p><p>We have the concept of an agent powered by an LLM. All the routines&#8212;like the ones Mike was showing&#8212;you can build with an agent that&#8217;s also in the same product. Inside Condor, you have an agent to build the routine that will help you use Hummingbot to surface all the data you want.</p><p>The interesting thing is that once you create the data you want, and you know what you&#8217;re looking for, that&#8217;s automatically available for the agent. So the trading agent you create will be able to get that data and use it to trade.</p><p>That agent has tools for creating and stopping executors. While the agent works, at each tick it logs things in its journal and maintains a <code>learnings.md</code> file with the knowledge it gathered. The next time, it&#8217;s aware of the problems it had in the past and is able to face them. So it&#8217;s an evolving agent that you work with. Plus you can edit these things from the UI&#8212;the learnings, the behaviors, everything.</p><p><strong>Mike:</strong> Right now, what we&#8217;re trying to do is create an open standard&#8212;a framework where the agent can operate and process data deterministically using routines. It uses tools as executors, so it&#8217;s only using the LLM for the actual decision part, which should be much more token-efficient than throwing a lot of APIs and documentation at a model.</p><p>So the Condor harness has this concept of a trading agent, which is hopefully a standard for doing something professional-grade where an LLM is involved in helping you do something over time. We still need to discover what types of agents are best suited for this versus traditional bots&#8212;which are more for market making and HFT, deterministic and not really suited to make probabilistic choices all the time. That&#8217;s why we&#8217;ve designed Condor in a very open way. Routines, as Fede will show, are probably the most flexible primitive we have right now.</p><div><hr></div><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=2160">00:36:00</a> Condor UI Tour</strong></h3><p><strong>Fede:</strong> Let me put my screen up. Some of the changes we have for Condor. This is the portfolio page&#8212;you already know about it, it didn&#8217;t change much. The important thing is you have a central place to see all your tokens, the distribution by exchanges, and the variations over time. What I added is this USDT selector that lets you change between different currencies. Probably we&#8217;ll remove some and just leave USDT, USDC, and a few others. This uses the rate oracle to translate the values.</p><p>Then the trade interface is still working really well. You can run an executor from here&#8212;create a grid, a short grid, a long grid. If you&#8217;re getting started with trading and want to run some grids, you can run them across all the CEXs. You configure the parameters and the UI works really nice.</p><p>Then we have the bots. Right now I don&#8217;t have bots running on this account. If you go to the editor, you can see the configs we have. We also have the backtest, but I don&#8217;t recommend using this tool yet, because I&#8217;m working on a routine that will do it better. I&#8217;m very bullish on routines in general.</p><p>For example, for the post-analysis of a bot, the best way will be with a routine. You deploy five controllers on one bot; once the bot finishes, the performance of those controllers is the same as before. So once you finish your run, you can process all the databases together and generate the HTML files. The routine result is an HTML file with all the data you want. Once you process one bot, you don&#8217;t need to process it again. So having links to the HTMLs is the best way to store the data of a processed bot, instead of querying all the trades and processing them again every time you want to see an old bot&#8217;s performance.</p><p>This is the executors view&#8212;now we can translate it to USDT. If you have multiple bots... the other day in Botcamp we created a pairs-trading agent that creates grids based on deviations, so you can filter one of those.</p><p>This is the agents view&#8212;the one Mike showed before. If you go to a specific agent, you can see the strategy MD, the learnings, and the routines filtered to that agent. If you run it from here, it generates this output. You have the two versions to move between.</p><p><strong>Mike:</strong> Fede, did it take a couple seconds to run?</p><p><strong>Fede:</strong> Yeah, it takes a few seconds.</p><p><strong>Mike:</strong> You may want to explore adding a loading indicator&#8212;that should help. There should be components you can easily design for that.</p><p><strong>Fede:</strong> &#8220;Can I use Condor directly for a grid bot?&#8221; Yes, you can. It will automatically clone the Hummingbot API, and in the trade pane, if you pick grid, you can create a grid directly there.</p><p>You can also schedule routines&#8212;run them every five minutes, every minute. And I improved the error checking. Here it says &#8220;Running, zero runs, routine failed.&#8221; This is only for failures&#8212;if your routine fails, this is how you see it.</p><div><hr></div><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=2520">00:42:00</a> Order Book Depth Across Exchanges</strong></h3><p><strong>Fede:</strong> You can run interesting things. For example, this routine&#8212;since Hummingbot has access to the order books&#8212;you can analyze the different depths of a specific market. As simple as that, we created a routine that analyzes the order books of four exchanges, compares the same price, and shows the different BPS around the price.</p><p><strong>Mike:</strong> Is it fair to say there might be an arbitrage opportunity between MEXC and KuCoin here, or maybe cross-exchange market making?</p><p><strong>Fede:</strong> Cross-exchange might be a good opportunity&#8212;I&#8217;d place sells here and buys here. This is three, almost four BPS of distance, but there&#8217;s no arbitrage. To have arbitrage, these would have to be crossed, and that value would need to be bigger than the fees you&#8217;re paying.</p><p>But this is the power of routines. I used the agent mode to say I want these order books&#8212;use a gather to get them and compare the books&#8212;and it was able to do it. Let&#8217;s see AAVE. Here there&#8217;s an actual opportunity: on Gate we have five BPS to sell, and on Binance it&#8217;s 0.5 BPS. So there&#8217;d probably be an opportunity to make.</p><div><hr></div><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=2580">00:43:00</a> Arbitrage vs. Cross-Exchange Market Making</strong></h3><p><strong>Fede:</strong> A good long-term strategy, instead of just doing cross-exchange and making trades only when they arrive and then hedging, would be to sell here and place a limit here&#8212;quoting buy here and quoting sell here. That would be a better way to start moving your inventory to one side.</p><p><strong>Mike:</strong> Right.</p><p><strong>Fede:</strong> Here we&#8217;re talking about mature tokens, but let&#8217;s look at a meme coin. This one is only traded on Gate and KuCoin. You can spot opportunities here too.</p><p><strong>Mike:</strong> I should mention this Protocol coin&#8212;I think I was LP-ing for this on Solana. I think it&#8217;s a Solana-based meme coin, so there&#8217;s probably some opportunity between LP-ing or swapping it on Solana and trading it on a CEX.</p><p><strong>Fede:</strong> Here you can get 90 BPS of spread. The power is huge&#8212;the things you can do are amazing.</p><p><strong>Mike:</strong> I think I&#8217;m going to take this arb-check routine and add a Jupiter leg, and really look at this Troll token for next time. I&#8217;m pretty sure the spreads in Jupiter are going to be tighter than this 90 basis points. Since it&#8217;s a Solana-made token, the spread on Solana is tighter, so there should be an opportunity to do cross-chain market making&#8212;make on these CEXs and take on Solana.</p><p><strong>Fede:</strong> I&#8217;ve now set this to run every one minute, so it&#8217;s scheduled.</p><p><strong>Mike:</strong> I&#8217;ll build it off the back of this arb-check routine&#8212;I should be able to just tell the agent to modify this one and add the Solana bit.</p><div><hr></div><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=2820">00:47:00</a> Agent Tab Improvements</strong></h3><p><strong>Fede:</strong> There are a lot of back-end improvements, and the Agent tab was improved. I still like to use Telegram a lot, but here you can use the different agents&#8212;the agent builder, the Condor agent which is your main agent, and the routine builder, which lets you build routines more effectively.</p><p>There are a lot of things to play around with&#8212;seeing how the books are moving from here. It&#8217;s amazing that we can see this on our live reports now.</p><p>You can also see the routines that are running or scheduled in the main UI here. I probably need to simplify this nav bar, because when there&#8217;s a lot of data it gets collapsed. I&#8217;ll probably remove the date from here.</p><p><strong>Mike:</strong> You can probably also shorten it&#8212;show the name and remove the description, because I think the name is sufficient, as long as you can access the name somewhere. It&#8217;s already in the sidebar.</p><p><strong>Fede:</strong> I need to remove these two things.</p><div><hr></div><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=2880">00:48:00</a> Color-Blind Mode</strong></h3><p><strong>Fede:</strong> Another thing I added&#8212;because I have a friend who uses this a lot and he&#8217;s color blind&#8212;I added a theme in the portfolio. This theme works for color-blind people.</p><p><strong>Mike:</strong> Do you do a theme selector, or how does that work?</p><p><strong>Fede:</strong> It&#8217;s just like dark mode, light mode, color-blind mode. You just change this.</p><p><strong>Mike:</strong> I kind of like that. Basically three modes&#8212;that makes sense.</p><p><strong>Fede:</strong> If not, I was going to do color-blind for light and color-blind for dark, but then I said there are a lot of options and it&#8217;s probably not worth it.</p><p><strong>Mike:</strong> We could build themes, but we probably save that for later. I like this&#8212;it makes sense for people who need some visual help.</p><div><hr></div><h3><strong><a href="https://www.youtube.com/watch?v=BIksOezjPvw&amp;t=2940">00:49:00</a> Wrap-up</strong></h3><p><strong>Fede:</strong> I think this was a very good session to demonstrate this. We can catch up next week with more advances.</p><p><strong>Mike:</strong> I&#8217;ll do some homework for next session. After you merge in the PR, I&#8217;ll take the arb-check routine and try to incorporate some CEX/DEX arbitrage checking. Next week I&#8217;ll come back and report on whether there is or isn&#8217;t arbitrage in the Troll token.</p><p>I also want to show that routines aren&#8217;t just for you to run&#8212;you can modify and extend them, and with the agent it&#8217;s a lot easier.</p><p><strong>Fede:</strong> Thank you very much, everyone, for joining. Next week we&#8217;ll see more improvements.</p><p><strong>Mike:</strong> All right. Bye, everyone.</p><p><strong>Fede:</strong> Bye-bye.</p>]]></content:encoded></item><item><title><![CDATA[The Bot Pod Episode 6: The New Condor UI]]></title><description><![CDATA["Open Source Bloomberg for the AI Age"]]></description><link>https://hummingbot.substack.com/p/the-bot-pod-episode-6-the-new-condor</link><guid isPermaLink="false">https://hummingbot.substack.com/p/the-bot-pod-episode-6-the-new-condor</guid><dc:creator><![CDATA[Hummingbot Foundation]]></dc:creator><pubDate>Fri, 08 May 2026 21:23:22 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/196947123/4279ebb9e8146dcd2131391e798bbc21.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>We&#8217;re back with Episode 6 of <strong>The Bot Pod</strong>! This week, Mike and Fede unveil a major UI revamp for Condor, turning it into what they call &#8220;open source Bloomberg for the AI age.&#8221; The episode covers an update on the renamed <strong>Condor Builders Cup</strong> hackathon, and a complete walkthrough of the new Condor interface.</p><ul><li><p><strong>Watch the full episode:</strong> <a href="https://youtu.be/mXhxMeWOFWM">YouTube</a> </p></li><li><p><strong>Register for the Condor Builders Cup</strong>: <a href="https://www.botcamp.xyz/hackathons/condor-builders-cup-1">Hackathon</a> </p></li><li><p><strong>Install Condor</strong>: <a href="https://condor.hummingbot.org/">Condor</a></p></li></ul><div><hr></div><h2><strong>Episode Highlights</strong></h2><h3><strong><a href="https://youtu.be/mXhxMeWOFWM?t=90">1:30</a> Market Discussion: Jito, Orca &amp; OmniPair</strong></h3><p>The hosts share their recent trades and market outlook. The big news: Jito announced JTX, their new perp DEX. With 80% of revenue going to JITO holders, this could be &#8220;the Lighter of Solana.&#8221;</p><blockquote><p>&#8220;The derivative of the price that was going down very strongly the last months is like getting flat, and now seems like it&#8217;s slightly going up. I&#8217;m feeling more like in a positive recovery across most of the assets.&#8221; &#8212; Fede</p></blockquote><h3><strong><a href="https://youtu.be/mXhxMeWOFWM?t=480">8:00</a> Condor Builders Cup Update</strong></h3><p>The hackathon has been renamed from &#8220;Condor Agents Hackathon&#8221; to <strong>Condor Builders Cup</strong>, styled after F1 racing with sponsored teams. The format:</p><ul><li><p>Teams sponsored by Orca, Gate, Ripple, and Derive</p></li><li><p>One slot reserved for the MVP of Botcamp Cohort 13</p></li><li><p>Winners compete in a 48-hour live trading competition with real capital</p></li></ul><h3><strong><a href="https://youtu.be/mXhxMeWOFWM?t=660">11:00</a> Complete UI Walkthrough</strong></h3><p>Fede demos the redesigned Condor interface:</p><ul><li><p><strong>Portfolio view</strong> &#8212; See evolution over day/week/month, asset distribution by exchange</p></li><li><p><strong>Trade tab</strong> &#8212; Merged market view with executors (Order, Position, DCA, Grid)</p></li><li><p><strong>Command+K chat</strong> &#8212; Opens an inline Agent chat panel with context on what you&#8217;re looking at</p></li></ul><blockquote><p>&#8220;With Command+K you can hide the Agent chat, and with Command+K you see it again.&#8221; &#8212; Fede</p></blockquote><h3><strong><a href="https://youtu.be/mXhxMeWOFWM?t=1500">25:00</a> Backtesting with Plotly</strong></h3><p>The backtesting page now uses Plotly for interactive charts. You can run backtests from the UI or create routines that generate backtest reports&#8212;Fede prefers the routine approach for better visualization.</p><h3><strong><a href="https://youtu.be/mXhxMeWOFWM?t=1740">29:00</a> Executors Page: Isolated Performance</strong></h3><p>You can run multiple grids on the same market and see exactly how each one performs in isolation. Fede walks through a live grid on TON that&#8217;s generating ~1.9% daily yield from matching buys and sells. He then creates a second grid on the same pair, and you can see the P&amp;L tracked separately for each.</p><blockquote><p>&#8220;You can do something pretty complicated, and then still evaluate whether that worked or not.&#8221; &#8212; Mike</p></blockquote><h3><strong><a href="https://youtu.be/mXhxMeWOFWM?t=2100">35:00</a> Bots vs Routines vs Agents Explained</strong></h3><p>Fede breaks down the architecture:</p><ul><li><p><strong>Bots</strong> &#8212; Hummingbot instances running controllers in isolated containers</p></li><li><p><strong>Executors</strong> &#8212; Single order types (Grid, DCA, Position) running in the API</p></li><li><p><strong>Routines</strong> &#8212; Python programs that generate HTML reports with data analysis</p></li><li><p><strong>Agents</strong> &#8212; LLM-powered decision makers that create routines and launch executors</p></li></ul><p>The key insight: agents use routines to see data deterministically (same structure every time) instead of burning tokens on repeated tool calls.</p><h3><strong><a href="https://youtu.be/mXhxMeWOFWM?t=2340">39:00</a> Routines: Full-Screen Reports</strong></h3><p>The routines page got a major upgrade with full-screen visualization. Navigate through reports with arrow keys, schedule them to run hourly or daily, and filter by agent.</p><p>The chat panel knows which routine you&#8217;re viewing&#8212;ask &#8220;Can you give me the code of the routine I&#8217;m looking at?&#8221; and it will.</p><h3><strong><a href="https://youtu.be/mXhxMeWOFWM?t=2940">49:00</a> Agent Sessions &amp; Decision Tracking</strong></h3><p>When viewing an agent&#8217;s sessions, you can see exactly when and why it made decisions. Coming soon: bubbles on the chart showing when the agent was reasoning, with click-through to see the full system prompt and response.</p><h3><strong><a href="https://youtu.be/mXhxMeWOFWM?t=3360">56:00</a> &#8220;Open Source Bloomberg for the AI Age&#8221;</strong></h3><p>Mike crystallizes the vision:</p><blockquote><p>&#8220;To me, this is like Bloomberg for the AI age. You want an application that takes advantage of LLMs, but still does the things that a trader needs... look at charts, visualize data. You can also talk to the agent to help you do things, automate tasks, get a better understanding of the data.&#8221;</p></blockquote><div><hr></div><p></p><h2><strong>Next Week</strong></h2><p>More improvements coming, plus continued development on the Condor Builders Cup. Join us live next Friday on <a href="https://www.youtube.com/@Hummingbot">YouTube</a>.</p><div><hr></div><p></p><h2><strong>Full Transcript</strong></h2><h3><strong><a href="https://youtu.be/mXhxMeWOFWM?t=0">00:00:00</a> Intro</strong></h3><p><strong>Mike:</strong> Hello. Welcome to the Bot Pod podcast. I&#8217;m Mike, this is Fede, and we&#8217;re the co-maintainers of the Hummingbot open source framework. A lot of people use Hummingbot to automate their algo trading. We have built a new agentic trading harness called Condor.</p><p>This week I&#8217;m very excited because Fede has lots of improvements to show off. He&#8217;s made a complete UI revamp, and I think now Condor is much closer to a full-fledged trading terminal which can help you execute trades anywhere, conduct research, and because there&#8217;s an LLM attached to it, it&#8217;s more intelligent than traditional applications.</p><p>But before we get into it, I&#8217;m starting to see some stirrings of life in the market, Fede. It seems like some tokens are starting to pump.</p><div><hr></div><h3><strong><a href="https://youtu.be/mXhxMeWOFWM?t=120">00:02:00</a> Market Discussion: Jito, JTX, and Token Picks</strong></h3><p><strong>Fede:</strong> Yeah, actually I regret a lot because I sent you a message saying &#8220;Hey, check out this token,&#8221; and the next day it was 66% up. I only farmed like $100 in fees.</p><p><strong>Mike:</strong> Which one was that?</p><p><strong>Fede:</strong> Jito. They announced JTX, which is this new exchange. I joined the public beta and said, &#8220;Okay, I think it&#8217;s time to trade this thing.&#8221; So I set up a few ranges on Meteora, but suddenly it got into the range, made $100 in fees, but then it went up. It was better to buy and hold, I think.</p><p><strong>Mike:</strong> Yeah. I think JTX is actually very interesting because Jito has always been one of the leading technical projects in Solana. They still have the majority of market share among the validators. So if they launch a perp DEX, that perp DEX should be the fastest on Solana.</p><p><strong>Fede:</strong> They will ensure the fastest execution, so I think they will take a lot of the market. I think it&#8217;s still a very good moment to buy it because the market cap of Jito right now is almost 200 to 300 million.</p><p><strong>Mike:</strong> I think the FDV is higher&#8212;closer to 500 or 600 for Jito. But regardless, if there&#8217;s a Hyperliquid-sized opportunity to build another perp DEX, I do think they can justify the valuation easily.</p><p><strong>Fede:</strong> That&#8217;s an interesting point. With Hyperliquid, it&#8217;s the best place to trade perps, but the HyperEVM&#8212;I don&#8217;t think they&#8217;ll get too much adoption. I don&#8217;t see too many people using it. The clear blockchains that people use are Ethereum, Base, Solana.</p><p><strong>Mike:</strong> Yeah, I agree. HyperEVM has not been a huge success. But I do think HIP-3 has been, because now with all the RWA markets there&#8217;s a clear shift from CME over to Hyperliquid because you can trade 24/7.</p><p>But if JTX can get the same level of open interest or even approach Lighter in terms of volume and open interest, I do think it can easily justify the valuation. I think at least in the near term, there should be an opportunity to build the &#8220;Lighter of Solana&#8221;&#8212;the main perps DEX that people in the Solana ecosystem use.</p><div><hr></div><h3><strong><a href="https://youtu.be/mXhxMeWOFWM?t=300">00:05:00</a> Token Picks: OmniPair and ORCA Trade</strong></h3><p><strong>Mike:</strong> My token pick this week was actually a much smaller token&#8212;also a DEX. I started a new position in OmniPair, which is a Meteora-style DEX, but you can lend and borrow against your reserves. The idea is that if you create a pool and deposit a position&#8212;let&#8217;s say MET/USDC&#8212;now you can borrow some USDC against it and do something else with it.</p><p>I think it&#8217;s interesting. It&#8217;s also a very low market cap. But I did actually make a decent profit off it because basically as soon as I bought it, they announced a raise. That token also jumped 30-40%.</p><p><strong>Fede:</strong> Oh, nice.</p><p><strong>Mike:</strong> Both of us like to look at these new exchange tokens because our day job is integrating exchanges into Hummingbot.</p><p><strong>Fede:</strong> Yeah. Last week I was holding my ORCA position. On Sunday, I sold all of it.</p><p><strong>Mike:</strong> Great trade.</p><p><strong>Fede:</strong> Not all of it&#8212;I left only like 10K on ORCA. But I made probably 120-130% on that trade. Nice trade, yeah.</p><p><strong>Mike:</strong> Your exit timing was incredible because I think you caught the very peak.</p><p><strong>Fede:</strong> It was all luck because my assets were released at that time. When the assets were released, I just said, &#8220;Okay, I&#8217;ll leave this 10K here and the rest will be all in.&#8221;</p><p><strong>Mike:</strong> You still bought ORCA when it was a lot lower than it is now, so the entry was not luck. But the exit timing was probably lucky.</p><div><hr></div><h3><strong><a href="https://youtu.be/mXhxMeWOFWM?t=420">00:07:00</a> Market Sentiment</strong></h3><p><strong>Fede:</strong> And the other thing is that I&#8217;m waiting because MET is coming, so get ready for MET.</p><p><strong>Mike:</strong> We&#8217;re supportive of all DEXes, but I think as we showed in the podcast last week, if you use fundamental analysis, it looks like Meteora from a revenues-to-market-cap perspective is trading &#8220;cheaper&#8221; on a fundamental analysis than the other DEXes.</p><p><strong>Fede:</strong> One thing that&#8217;s interesting&#8212;I&#8217;m seeing some news about the price of Jito. Seems like the JTX trading app is going to redirect 80% of the revenue to JITO holders.</p><p><strong>Mike:</strong> That makes sense. That&#8217;s probably why the token&#8217;s accruing. Before, it wasn&#8217;t really clear how token holders would benefit from Jito doing stuff. And now it seems they actually will benefit if the exchange gets volume.</p><p>Overall, I think the market is recovering. It&#8217;s consolidating now. I feel like it&#8217;s tested the support at 80 a few times for SOL. Bitcoin has recovered to 81K now. So it seems like the market is on more of an uptrend.</p><p><strong>Fede:</strong> I think that the vibes are bullish.</p><p><strong>Mike:</strong> Not financial advice.</p><p><strong>Fede:</strong> Yeah. But I&#8217;m feeling it. The derivative of the price that was going down very strongly the last months is getting flat, and now it seems like it&#8217;s slightly going up. I&#8217;m feeling more like in a positive recovery across most of the assets.</p><p><strong>Mike:</strong> Me too, definitely.</p><div><hr></div><h3><strong><a href="https://youtu.be/mXhxMeWOFWM?t=480">00:08:00</a> Condor Builders Cup Hackathon Update</strong></h3><p><strong>Mike:</strong> So let&#8217;s get into the meat of the presentation for today. We have a lot to show off in terms of the new Condor UI, but I also want to give an update on the hackathon that we&#8217;re planning for this week. Let me share my screen.</p><p>Last week I think it was just called the Condor Agents Hackathon. Now we&#8217;re going to call it the <strong>Condor Builders Cup</strong>, because the idea is that it&#8217;s not just a hackathon. The initial phase will be the hackathon, and we&#8217;ll set up a sandbox environment for each winner. Then we&#8217;ll run them in a regimented race for 48 hours.</p><p>We&#8217;re trying to style it after F1 or racing where there will be teams. The teams will be sponsored by exchanges like ORCA, Gate, Ripple, and Derive. We&#8217;ll also have one agent slot for the MVP of Botcamp Cohort 13. We have about 20 to 30 students going through the cohort right now, and the winning strategy from Botcamp will represent Hummingbot in this competition.</p><p>But we&#8217;ll have at least five other slots that you can apply your agent to. Agent submission will start in about two weeks. You can already register and write something about what you want to build. We&#8217;ll also try to allow people who join the hackathon to find each other and perhaps collaborate on the agent.</p><p><strong>Fede:</strong> We have a lot of good prizes, I think.</p><p><strong>Mike:</strong> I think the sponsors have already committed something like $15,000 or $20,000. We&#8217;ll put up capital for the agents from all the sponsors, and people can really demonstrate what they can do with real capital in their strategy.</p><div><hr></div><h3><strong><a href="https://youtu.be/mXhxMeWOFWM?t=660">00:11:00</a> Condor UI Walkthrough: Portfolio View</strong></h3><p><strong>Fede:</strong> Yeah, I think today I&#8217;ll walk through all these things, and it will be really nice to see what we built. I&#8217;m currently working on it, so there are still some things to improve, but overall I think I can just share screen.</p><p>Can you see my screen now?</p><p><strong>Mike:</strong> Yeah. We have about eight or nine people on YouTube and probably a few more on Twitter as well. If you guys have any comments or questions, just let us know. No question is too basic.</p><p>This is the Condor UI now, but this actually looks a lot different&#8212;a lot better actually&#8212;than the version that I&#8217;m running on my computer.</p><p><strong>Fede:</strong> Yeah, it looks much better than the other version. When you start Condor, you just go here and click on web. We give you this link where you can access the web dashboard.</p><p>On the main screen, we always have the <strong>portfolio evolution</strong>. This graph was below before&#8212;now it&#8217;s everything more compact. This is the page where you see almost everything. You can change the visualization to see the last day, the last week, or just see the last month.</p><p>If you see this view, you&#8217;ll see the proportions of assets that you have. This is quite useful&#8212;let me show this specific case where we see the evolution of the assets when we&#8217;re doing market making.</p><p><strong>Mike:</strong> So did you just switch to a different API server?</p><p><strong>Fede:</strong> Yeah. Here you can pick different API servers. In case you have multiple clients, you can have one Hummingbot API for each client, and you can switch and just start seeing the other data.</p><p>You can see the proportion of assets for each exchange. Where is the distribution? Let&#8217;s say I want to see Binance&#8212;how much we have from each.</p><p>We can add the API keys and servers right away. You can add a new API key&#8212;let&#8217;s say I want to add a new one for Bitget. Here you can put the data that you need, and you&#8217;ll add the credential.</p><p>For Gateway, it says it&#8217;s running, so you can restart it. You can pull the latest gateway image. I&#8217;m going to add a comparison between the current image you have from gateway with the latest image available, so if there&#8217;s a chance to upgrade, it appears here easily. And here you can also see the logs.</p><p><strong>Mike:</strong> Okay. Can you also update the Hummingbot API Docker image as well, or just on the server side?</p><p><strong>Fede:</strong> That&#8217;s something I&#8217;m currently working on with the update command. If you run update, it will check first if it&#8217;s up to date or not, and if so, it will let you push and build a new version.</p><div><hr></div><h3><strong><a href="https://youtu.be/mXhxMeWOFWM?t=900">00:15:00</a> Trade Tab and Executors</strong></h3><p><strong>Fede:</strong> There&#8217;s a question that says, &#8220;Does Condor or Hummingbot come with predefined bot strategies like grid trading?&#8221; And yes, obviously. Let me show you.</p><p>If you go here to the main page to trade&#8212;currently I&#8217;m running a grid. This is a grid. As you can see, it&#8217;s an executor. <strong>There&#8217;s a distinction between executors and bots.</strong> The executor is just like a grid, for example. A grid is an executor. And a strategy will be a combination of multiple executors.</p><p>For example, there&#8217;s a strategy that will place multiple grids depending on different conditions&#8212;that would be more like a bot strategy. In this Trade pane, we can only create executors.</p><p><strong>Mike:</strong> Yeah. So these are kind of like order types&#8212;almost like a basic order type and an advanced order type, right?</p><p><strong>Fede:</strong> Yeah, that&#8217;s the way. Here you can pick between these different executors for trading. <strong>Order</strong> will be just buy and sell, but keeping track of your average buy price. <strong>Position</strong> will be more like, okay, I want to have a take profit of 5% and a stop loss of 2%, and I want to put $10. This will create another executor here to trade with this style.</p><p>You can also pick <strong>DCA</strong> and say, &#8220;Okay, I want to have this level and this level, and between these two things, I want to have a take profit of 5%.&#8221;</p><p><strong>Mike:</strong> Okay, got it. So it appears on the chart.</p><p><strong>Fede:</strong> If you click on this panel, you&#8217;ll see the order book, and we start streaming the trades via WebSocket also. This is the Trade pane.</p><p><strong>Mike:</strong> Yeah, you can get exchange data. That&#8217;s actually a feature I wanted to show. Nice.</p><p><strong>Fede:</strong> There&#8217;s another question: &#8220;Do we intend to add other executors like arbitrage and cross-chain market making?&#8221; We have those executors actually, so we&#8217;ll probably add them, but we need to think a little bit more about those views because that involves two markets. Those executors might need a specific visualization.</p><p><strong>Mike:</strong> Yeah. The other thing is this is just a web dashboard, but you can also use the Telegram bot to launch executors there as well. These visualizations are really intended for single-market executors. When we do multi-market executors like arbitrage and XCM, we&#8217;re not quite sure how to visualize it yet. For now, I&#8217;d recommend just deploying them directly using the Telegram bot.</p><div><hr></div><h3><strong><a href="https://youtu.be/mXhxMeWOFWM?t=1140">00:19:00</a> Command+K Chat Integration</strong></h3><p><strong>Fede:</strong> Talking about agent chat, I&#8217;d like to introduce&#8212;<strong>with Command+K, you have this chat pane</strong> where you can just pick Condor. Today I&#8217;ll add the voice mode, but as you can see now, we have the chat inside the web UI.</p><p>So here I can ask &#8220;what executors do I have running,&#8221; and this will be using the same style as we&#8217;re using on the Telegram chat. The whole product is getting more homogeneous.</p><p>The other cool thing with the dashboard is that now in routines I&#8217;m able to inject some data of the dashboard into the chat. If you&#8217;re looking at a routine, there&#8217;s actually an HTML in the context I&#8217;m passing to the chat saying &#8220;the user is looking at this specific file.&#8221; So it&#8217;s an easy way to start integrating your chat experience with your visual experience.</p><p><strong>Mike:</strong> Yeah. I think that&#8217;s going to be really powerful because the chat&#8217;s great for doing stuff when I&#8217;m not in front of my computer. But in front of a computer, like most traders, I want to see the charts, I want to see everything visualized.</p><p>But there are certain cases when you still want to do things in chat&#8212;maybe you want to ask a question. Being able to see the chart for some token, having the chat up, and just asking questions like &#8220;what has happened recently to this token&#8221; or &#8220;why did the price go up&#8221;&#8212;that kind of thing I think is a really powerful combination.</p><p><strong>Fede:</strong> Also here in the chat you can open multiple chats. I can keep two conversations on different sessions. You can say something like, &#8220;Based on the candles of the last day, can you tell me what are going to be the potential prices that the market will go?&#8221;</p><p>And you can also trigger executors from here too. <strong>With Command+K you can hide it, and with Command+K you get it again.</strong> This experience is good. I&#8217;m using the light theme but it also works with the dark theme too.</p><p><strong>Mike:</strong> Yeah. I think some people prefer dark, some people like light. I just switch back and forth depending on the day or night.</p><div><hr></div><h3><strong><a href="https://youtu.be/mXhxMeWOFWM?t=1380">00:23:00</a> Bots Page and Editor</strong></h3><p><strong>Fede:</strong> Let&#8217;s move to other panes. For <strong>Bots</strong>, we have this bots running page. Let me switch so you can see what it looks like. This pane shows the bots running. We&#8217;re running 14 controllers in one instance. This is a good thing about being able to run different bots and see the different volume they generate and the different P&amp;Ls.</p><p>You have the <strong>Editor</strong> where you can change controllers, add controllers, or whatever. You can also use it to visualize the configs that you have. We have 68 configs for PMM Mister. Here you&#8217;re modifying the YAML. You can also create a new config from a specific controller if you want, upload a YAML file, or paste directly the YAML file that you want.</p><p>If it&#8217;s a controller that you want to add, you can add the controller by type. Once you pick the folder, you pick the name, and you can just add it.</p><div><hr></div><h3><strong><a href="https://youtu.be/mXhxMeWOFWM?t=1500">00:25:00</a> Backtesting with Plotly</strong></h3><p><strong>Fede:</strong> Then we have the <strong>Backtest</strong> that I think we saw last time.</p><p><strong>Mike:</strong> Yeah, but the UI looks much better than last time. Actually, can you do a quick backtest just to show it again? I think this is a really impressive aspect. Backtesting is something that everyone wants to do, but there are very few tools&#8212;let alone open source tools&#8212;that allow people to really do it. Here we&#8217;re actually using the historical data directly from the exchange to conduct a backtest for you. This works on any controller that you create that uses executors.</p><p><strong>Fede:</strong> There&#8217;s a question that says, &#8220;How do you choose the symbols for backtest?&#8221; It&#8217;s in the config itself. The config I was just using has the symbol selected.</p><p><strong>Mike:</strong> Yeah, so if you go to Editor, that&#8217;s where you create the configuration for a controller. When you do the backtest, what you&#8217;re doing is passing that configuration. You&#8217;re basically selecting configuration, and the configuration contains the trading pair and other parameters.</p><p><strong>Fede:</strong> The controller is what you can backtest&#8212;it&#8217;s the code. Here you can see the controller config. You define all these things like candles connector, controller name, all that stuff. You need a YAML file that uses this configuration or gets values for all these configs, and that&#8217;s what you backtest.</p><p>I already have that for MACD BB JITO. If I want to do it for another one, I can copy this, add a new one called MACDBB MET, change it for MET, and upload it. Now if I go to backtest, I can backtest the MACDBB MET. But why do we need to do it manually when you can do it with AI? Now I&#8217;ll show you how to do that with AI.</p><div><hr></div><h3><strong><a href="https://youtu.be/mXhxMeWOFWM?t=1680">00:28:00</a> Mike on the UI Progress</strong></h3><p><strong>Mike:</strong> But yeah, before you move on, I just want to say this is basically a full-on replacement&#8212;it&#8217;s actually even better than the previous dashboard we had in Hummingbot. Before, we had an application that was just designed to do this particular phase: deploying bots, backtesting them, and running them.</p><p>But now, because you also want to do other things&#8212;research, trading&#8212;it&#8217;s one tab in a larger application. We think this harness, this Condor harness, is designed to do everything that a trader might want to do. You may want to do trading, run automated bots, but you also might want to create other types of things like a routine or an agent. That&#8217;s what Fede is going to demo now.</p><div><hr></div><h3><strong><a href="https://youtu.be/mXhxMeWOFWM?t=1740">00:29:00</a> Executors Page: Isolated Performance Tracking</strong></h3><p><strong>Fede:</strong> Then we have the <strong>Executors</strong> page. We added these filters&#8212;three months, one month&#8212;to see overall performance. Here we can find the executor that&#8217;s currently running. You can create a new one from here or export this data as CSV in case you want to analyze it.</p><p>If you click on one of these executors, a left pane will open with more detailed information about this executor. For example, this is a grid that I started yesterday just to test how it would behave&#8212;a long-term grid on TON.</p><p>I found some really interesting things. I paid $4 in fees and the P&amp;L is -3.25, and right now I&#8217;m in a lower price from where I started. That means at some point the grid was making profits because otherwise I should be in another position, right?</p><p>As you can see, if you navigate all this information, there&#8217;s some custom info that the grid shows. The <strong>realized PNL quote was $8.30.</strong> So I was actually making $8.30 after paying $4 in fees. That&#8217;s why this value is +$4. But why am I having -$3? Because I&#8217;m holding a position size of $300 and it&#8217;s down from the original state. That&#8217;s why the final PNL is negative.</p><p><strong>Mike:</strong> So overall it&#8217;s a very&#8212;so that&#8217;s unrealized PNL of the grid?</p><p><strong>Fede:</strong> It&#8217;s unrealized. The grid is buying and selling. All these trades that appear here are buys and sells of that grid&#8212;it&#8217;s actually doing its work. What this will do is hold all this position. Up to this value we should have $500 worth of TON. Right now I only have $300.</p><p>But the interesting thing is that it made realized $8 here. If I did $8.3 and it&#8217;s been 20 hours, let&#8217;s say 21 hours... Let me calculate: 8.37 divided by the hours, times 24... that&#8217;s $9.84 actual realized, divided by the 500 allocation, times 100. <strong>That&#8217;s 1.9% yield that the grid is generating per day.</strong></p><p><strong>Mike:</strong> Okay.</p><p><strong>Fede:</strong> So if the market stays inside these bounds, I&#8217;m making 1.9% per day. That is a lot.</p><p><strong>Mike:</strong> So assuming the P&amp;L is consistent for this grid, right?</p><p><strong>Fede:</strong> That&#8217;s the point. I&#8217;m making 1.9% without counting the P&amp;L of the position. It&#8217;s just 1.9% of matching buys and sells. That means that if the market recovers to the original price, I&#8217;ll be zero on position, but I&#8217;ll have this amount of realized P&amp;L.</p><p><strong>Mike:</strong> And you&#8217;re also trading this on an account with full fees, right? You&#8217;re paying full fees on this account?</p><p><strong>Fede:</strong> Exactly.</p><p><strong>Mike:</strong> So this would be even better with lower fees. To me, I think the best part about this is that you can isolate a pretty complex strategy like a grid and isolate all the trades in it and just be able to analyze what happened. Because if you look at the Binance interface, it&#8217;s really hard to separate what happened&#8212;it&#8217;s all together. <strong>Here it would be hard to tell exactly how one isolated grid performed, but in the Condor interface, this is really cool.</strong></p><div><hr></div><h3><strong><a href="https://youtu.be/mXhxMeWOFWM?t=1980">00:33:00</a> Running Multiple Grids on the Same Market</strong></h3><p><strong>Fede:</strong> Yeah. Another thing is you&#8217;re not taking into account that here I can be running other grids on top. So that&#8217;s when things get complex. Let&#8217;s say I want to deploy another grid on this specific market.</p><p>I can be running two grids. Let&#8217;s say I&#8217;ll auto-fill and I&#8217;d like a short grid here. I&#8217;ll put only $200 and a take profit of 7.5. If I create this new grid, now I have two grids running here.</p><p>See that now there&#8217;s a green thing appearing here&#8212;it&#8217;s because this other grid is just getting started. Until I have a few more records, it will look like the other one later on. You can see the P&amp;L of this grid and of the other grid separately.</p><p><strong>Mike:</strong> Nice. I think this isolation is actually really cool because now we can do something pretty complicated and then still evaluate whether that worked or not.</p><div><hr></div><h3><strong><a href="https://youtu.be/mXhxMeWOFWM?t=2100">00:35:00</a> Bots vs Routines vs Agents Explained</strong></h3><p><strong>Mike:</strong> Can you just quickly walk through what is the difference between a bot, a routine, and an agent?</p><p><strong>Fede:</strong> Yeah. <strong>A bot</strong> will basically be a running Hummingbot instance&#8212;the original Hummingbot that we know from the CLI&#8212;with a set of controllers. One bot can have multiple controllers inside that can be trading on different markets. But you deploy all in an isolated container.</p><p>The <strong>executors</strong> that you deploy from here are going to be running in the Hummingbot API as part of the API.</p><p><strong>Routines</strong> are just Python programs&#8212;very simple Python programs&#8212;that do something and generate a report. When do you use routines? In a lot of scenarios: market data analysis, reports about your operations, discovery of potential markets that you might want to trade, notifications when something happens. There are a lot of different use cases for routines.</p><p>Why is it so cool? Because it&#8217;s just Python. It&#8217;s just a Python file that you can run, you can schedule, or if it&#8217;s continuous, it has a <code>while True</code> and will be doing an update. But it&#8217;s a very simple Python file.</p><p>The main thing is that it will probably always use Hummingbot API for all the market data because we have connectors with 50+ exchanges. You can get order books, trades, OHLCs, funding rates. You can get from the Gateway the distribution of pool liquidity. You can get from GeckoTerminal the candles. All those things are part of the core Hummingbot API things that you can do using the routines. But you can also query any other data source because it&#8217;s just Python.</p><p><strong>Agents</strong> are where the LLM comes in. What I like a lot about organizing routines by agents is that for now we have trading agents, but maybe there can be assistant agents that are more like assistants for market data. So it might be interesting to consolidate all the routines of market data into an agent that&#8217;s more like a market data analysis agent.</p><div><hr></div><h3><strong><a href="https://youtu.be/mXhxMeWOFWM?t=2340">00:39:00</a> Routines Page: Full-Screen Reports</strong></h3><p><strong>Fede:</strong> Now let&#8217;s move to <strong>Routines</strong>. That&#8217;s probably the biggest improvement on the layout.</p><p>Here we have filters on the top that says Routines. These are the general routines that appear in the main folder. And we also have the routines from the agents&#8212;routines created in a specific agent.</p><p>For example, if we see the routines of Brigado, there are a lot of routines comparing the BRL market that I&#8217;m personally using. If you go to this market cap comparison, this was the one we did last week.</p><p>Now we have the <strong>full-screen view of routines</strong>. Why is this full screen? Because I think when you&#8217;re reviewing routines, you have to be in the mood of &#8220;okay, I&#8217;m more in a dashboard mood,&#8221; where you&#8217;re just reviewing the routines. As you can see, it&#8217;s the actual output that you generate.</p><p>You can configure it from here and run it again if you want. You can schedule to run it every day or every hour. And this is really nice&#8212;you can see it says 25, 23 hours ago. If we run this one, we&#8217;ll have another observation.</p><p><strong>If you press left or right arrow, you can move through these different routines.</strong> You have keep track of all the history of these reports.</p><p><strong>Mike:</strong> So the routine is something that generates a report every interval?</p><p><strong>Fede:</strong> Exactly.</p><p><strong>Mike:</strong> How do you see the code of the routine? Is that available here or do you have to go to the file system?</p><p><strong>Fede:</strong> The code of the routine you need to go to the IDE currently. I think the agent should be able to give it to you. This is another cool thing&#8212;if you&#8217;re in the process of having an agent working on a specific routine, the data will be injected into the chat saying &#8220;the user is looking at this specific report.&#8221; So the agent will know what we&#8217;re looking at.</p><p>Let me ask: &#8220;Can you give me the code of the routine that I&#8217;m looking at?&#8221;</p><p>The user is viewing a report from routine called Solana DEX Comparison. Let me read the code...</p><p><strong>Mike:</strong> I do think having this agent have context is really important because otherwise we may need to add a &#8220;show code&#8221; button into this UI. It means we don&#8217;t need to cover every base in the UI because the agent can answer any questions the user has.</p><p><strong>Fede:</strong> Yeah, and also being able to modify the routine and see the output&#8212;this is something really cool.</p><div><hr></div><h3><strong><a href="https://youtu.be/mXhxMeWOFWM?t=2580">00:43:00</a> AI-Assisted Backtesting</strong></h3><p><strong>Fede:</strong> Let me show you&#8212;I&#8217;m looking at this backtest chart. I prefer to backtest as a routine to see the Plotly rather than the other UI. I&#8217;ll say, &#8220;I&#8217;m looking at the backtest chart for MACD BB Jito. Can we run the backtest for MET?&#8221;</p><p>He should be able to understand, okay, the guy wants to use this routine and run this backtesting routine over another pair.</p><p><strong>Mike:</strong> So it&#8217;s using the configuration we created earlier in the podcast.</p><p><strong>Fede:</strong> Yeah. It says &#8220;no Condor data available for MET USDT on PERP.&#8221;</p><p><strong>Mike:</strong> It&#8217;s probably a timing issue. The time range.</p><p><strong>Fede:</strong> Let me see. Let me try: &#8220;Can you create a new config to run the same strategy in TON USDT? Plus, I want a backtest for the last three months in one-minute resolution.&#8221;</p><p><strong>Mike:</strong> Let&#8217;s try to answer this question from Rooftop while we have it. He asks, &#8220;When should we use the Condor default agent and when should we use a Claude agent?&#8221;</p><p>So this actually is using Claude behind the scenes. But I think his question is probably more around&#8212;in agent builder mode in Telegram, it allows you to select the agent, right?</p><p><strong>Fede:</strong> You can change LLM. We just added OpenRouter. Basically there are a lot of free models, but you need an API key.</p><p><strong>Mike:</strong> So maybe the question is, when you change LLM, is that changing the LLM used by all agents? For instance, if you change to OpenRouter, will this agent here also use OpenRouter?</p><p><strong>Fede:</strong> Yeah.</p><p><strong>Mike:</strong> Okay. So changing LLM is basically changing the model you&#8217;ll be using for agent calls throughout the application.</p><p>Just to clarify for folks out there&#8212;the design of Condor is similar to Open Claw in that it uses some existing LLM you already have. Right now we&#8217;ve tried to make sure it supports Claude really well. Through the Change LLM menu, which is only available on Telegram for now, you can change to other models like OpenRouter, Gemini, Codex, et cetera. And then whichever agent you pick, it&#8217;ll use it. In the future, we&#8217;ll probably add this to settings as well.</p><div><hr></div><h3><strong><a href="https://youtu.be/mXhxMeWOFWM?t=2940">00:49:00</a> Agent Structure and Sessions</strong></h3><p><strong>Fede:</strong> Let&#8217;s go to the <strong>Agents</strong> page. I also redesigned this page to be more consolidated. If you want to see strategy or learnings, you go here&#8212;you have the strategy MD and the learnings. If you want to see the routines, you can go here and it&#8217;ll open this view that is a full view of the routines filtered by the agent.</p><p><strong>The key concept is this: why do agents have routines?</strong> The answer is that you don&#8217;t want the agent to do over and over again all the tool calling, data processing, and everything. What you want to do with the agent is help him create a routine that will give him the necessary data to take decisions.</p><p>For you, you have a routine that you can visualize what the agent is looking at. So there are two things here: <strong>you know what the agent is looking at, and you know that it will be the same structure every time.</strong> That&#8217;s the deterministic part. And once the agent writes it, he can reuse it over and over again.</p><p><strong>Mike:</strong> Yeah. The way I think about it&#8212;the executors and the routines help you put together the agents. The agent is really just something that&#8217;s going to create routines to process the data it needs to make a decision, and then once it makes a decision, what is it trying to decide? It&#8217;s trying to decide which executors to run, which ones to stop.</p><p>Hopefully through using the Trade tab and launching executors, you have a sense for what each executor is doing. Through routines, you can build standalone routines, and then you can combine them and say, &#8220;Let me create an agent that&#8217;s going to create routines and launch executors.&#8221;</p><p><strong>Fede:</strong> And then the last thing to show here&#8212;you have the <strong>P&amp;L curve</strong> over the different dates, and here you have the <strong>Sessions</strong>. If you want to analyze what the agent did, you can go to the session itself. It will load the historical candles of that session and show you where the executors were.</p><p>What I&#8217;m going to add is a bubble here on top of the chart with a brain icon that shows when the agent was reasoning or taking a decision. With that, you can see the output&#8212;the agent response&#8212;in a bubble. If you click to see more details, it drives you to this view where you can see not only the actual agent response but also the system prompt that entered at that time if you want to analyze something special.</p><div><hr></div><h3><strong><a href="https://youtu.be/mXhxMeWOFWM?t=3360">00:56:00</a> &#8220;Open Source Bloomberg for the AI Age&#8221;</strong></h3><p><strong>Mike:</strong> Yeah. This was a lot of progress since last week actually. The UI is so much better. I&#8217;m actually getting a good feel for how to describe this product now.</p><p>I used to work in finance, and in finance, every trader gets a Bloomberg terminal. A Bloomberg terminal is this thing that allows you to collect data, see all the markets, but also place trades. It&#8217;s like all the information in a box that does everything you need as a trader.</p><p><strong>To me, what this is&#8212;this is like Bloomberg for the AI age.</strong> Now that you have AI involved, you want an application that really takes advantage of LLMs, but still does the things that a trader needs. A trader wants to look at charts, visualize data, but you also want to talk to the agent to help you do things, automate tasks, get a better understanding of the data.</p><p>So to me, what I think we&#8217;re building here is <strong>open source Bloomberg for the AI era</strong>. I can see myself really using this product and saving me a lot of time and effort&#8212;just like you&#8217;re doing when we&#8217;re market making for customers.</p><p><strong>Fede:</strong> Yeah. I think it&#8217;s getting really like covering all the capabilities that you need for an AI tool that helps you do trading. And the good thing is it&#8217;s closing the gap for users that want to start doing algo trading. They don&#8217;t understand very well the basics or how everything works, but they can easily talk with an agent and do what they want. I can know nothing, but just have my agent talking with... I can just talk with the agents and get an explanation of what is happening, what I&#8217;m doing, why this is positive, why the other one is negative.</p><div><hr></div><h3><strong><a href="https://youtu.be/mXhxMeWOFWM?t=3540">00:59:00</a> How to Update Condor</strong></h3><p><strong>Mike:</strong> Last question from Rooftop. Let&#8217;s try and answer. This is a very good question: how do people get their hands on this new version of Condor?</p><p><strong>Fede:</strong> Yeah, this new version&#8212;I think I still need at least one or two hours. Give me one or two hours. I want to clean up a few more things because it&#8217;s a big PR that I&#8217;ve been working on almost half of the week&#8212;four days.</p><p>So I just need to close a few more details, and then everything will be in main. <strong>Once it&#8217;s in main, if you go to your Telegram bot and you run </strong><code>update</code><strong>, this will check for the updates and compare your local branch with the current branch. And then it will let you do the upgrade and will restart Condor automatically.</strong></p><p>So I think that&#8217;s a very good process. You just need to be in Telegram, and Telegram will handle all the complexity of updating your version.</p><p>If it says it&#8217;s updated in less than one hour, you can just say &#8220;Okay, pull the new version&#8221; and see if it works. If it doesn&#8217;t work, just go to PyCharm and run <code>git pull</code>, then stop your process and run <code>make run</code> again, and it will work.</p><p><strong>Mike:</strong> Nice. I&#8217;m really excited to see what people can do with this now&#8212;what kind of routines they create, what kind of agents they create. I think this version&#8217;s going to be a game changer.</p><div><hr></div><h3><strong><a href="https://youtu.be/mXhxMeWOFWM?t=3660">01:01:00</a> Live Grid Demo</strong></h3><p><strong>Fede:</strong> Yeah. This grid that we just created is in profit right now.</p><p><strong>Mike:</strong> Oh, nice.</p><p><strong>Fede:</strong> But this is because it&#8217;s not making profits from the buys and sells that much&#8212;it&#8217;s making profits because we started here and now the market is here. That&#8217;s basically why. In realized PNL it&#8217;s only like 50 cents. And the net PNL is $1.67.</p><p>But this is like showing you, okay, this is what it looks like to run a grid on another grid in the exact same market. These are the same markets, but the good thing is you can see the difference between running one grid and the other one.</p><p><strong>Mike:</strong> Being able to isolate the differences I think is really cool because that&#8217;s something that&#8217;s hard to do at the exchange level unless you&#8217;re doing all this manual tracking and computation. So this is going to basically allow you to do all these complex order types, see exactly how they perform, and then also create agents that&#8217;ll be launching these order types based on routines they&#8217;re creating.</p><div><hr></div><h3><strong><a href="https://youtu.be/mXhxMeWOFWM?t=3780">01:03:00</a> Wrap-up</strong></h3><p><strong>Fede:</strong> Thank you all for being here. You help us a lot. If you repost our tweets, if you tell your friends &#8220;Hey, watch this live stream,&#8221; or if you tell other people &#8220;Hey, try to use Condor&#8221;&#8212;because we&#8217;re trying to make this as big as we can for the community.</p><p><strong>Mike:</strong> Right now it&#8217;s completely free and open source. There&#8217;s really no reason not to try it. Eventually we may figure out how to monetize from this, but right now we&#8217;re just making it available open source, just like the rest of Hummingbot, because we just want your feedback on how it works.</p><p><strong>Fede:</strong> Yeah, actually it&#8217;s all free, guys, so go and use it. And if you want to give us donations, you can do it, yeah.</p><p><strong>Mike:</strong> We are trying to make sure this product works for both individual algo traders and for firms. We ourselves are using it for market making for customers. Our hope is that&#8212;this is why we added multiple servers, we added Telegram&#8212;that even if you&#8217;re a real market making firm, this is a professional-level product that you can use and rely on.</p><p><strong>Fede:</strong> That&#8217;s all from me. I&#8217;m personally very happy for this change that we&#8217;re having on Condor. Probably the worst thing that we had in Hummingbot was the user experience. With this, I think we&#8217;re closing that gap. <strong>Democratizing open source algo trading</strong>&#8212;that&#8217;s actually what we all want.</p><p><strong>Mike:</strong> Yeah. I think the structure is starting to come into place. We have the main things you can do with this application already: you can do trading, you can create bots, you can create routines, and you can create agents. Hopefully all the things will work together and it can be something you can rely on, save you time, and you can analyze anything you want to analyze, trade anything you want to trade.</p><p><strong>Fede:</strong> I think the routines feature will get a lot of adoption, mainly because you can get data sources from everywhere that you want and present it in whatever you want. Basically it&#8217;s the first thing you&#8217;re probably going to do when doing trading, right? &#8220;Okay, I want to follow these tokens and see this information.&#8221; Agent, create a routine for me.</p><p><strong>Mike:</strong> Okay, cool. Thanks guys for tuning in and asking questions. We&#8217;ll be back next Friday, same time, and hopefully we&#8217;ll have even more new stuff to demo next week.</p><p><strong>Fede:</strong> Okay.</p><p><strong>Mike:</strong> All right. Bye, everyone.</p><p><strong>Fede:</strong> Bye bye.</p>]]></content:encoded></item><item><title><![CDATA[The Bot Pod Episode 5: Creating Reports and Using Voice Commands]]></title><description><![CDATA["Condor, start a grid bot"]]></description><link>https://hummingbot.substack.com/p/the-bot-pod-episode-5-creating-reports</link><guid isPermaLink="false">https://hummingbot.substack.com/p/the-bot-pod-episode-5-creating-reports</guid><dc:creator><![CDATA[Hummingbot Foundation]]></dc:creator><pubDate>Fri, 01 May 2026 20:47:52 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/196159682/695b529e48f67dd2d68766c9ba1832bf.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>We&#8217;re back with Episode 5 of <strong>The Bot Pod</strong>! This week, Mike and Fede announce the <strong>Condor Agents Hackathon</strong>, demo the new <strong>Reports feature</strong>, and build a research routine comparing Solana DEX tokens live on stream. Plus: voice-controlled trading via Telegram that feels like magic.</p><p><strong>Watch the full episode:</strong> <a href="https://youtu.be/5OCAAGz9XWg">YouTube</a> </p><p><strong>Register for the Condor Agents Hackathon</strong>: <a href="https://hummingbot.org/hackathon">Hackathon Registration</a></p><p><strong>Give us feedback in Discord</strong>: <a href="https://discord.gg/hummingbot">Discord</a></p><div><hr></div><h2><strong>Episode Highlights</strong></h2><h3><strong><a href="https://youtu.be/5OCAAGz9XWg?t=105">1:45</a> Condor Agents Hackathon Announced</strong></h3><p>The big news: Hummingbot Foundation is launching its first-ever <strong>agentic trading hackathon</strong>, and registration is open now.</p><p>Here&#8217;s what makes it different&#8212;the winning agents aren&#8217;t just for show. They will be run in a sandboxed environment with real capital in a 48-hour live trading competition to win prizes provided by sponsors including Ripple, Gate, Orca, and Berkeley Street Capital.</p><blockquote><p>&#8220;This is the first time someone has tried to put together an agentic trading hackathon plus competition, and I think Condor is the right place to do it because with Hummingbot, it gives you a really big surface area to build upon.&#8221; &#8212; Mike</p></blockquote><p>The hackathon kicks off in three weeks with workshops on building on XRPL and working with quant hedge funds. Submissions close about a month later, and then the real competition begins.</p><h3><strong><a href="https://youtu.be/5OCAAGz9XWg?t=480">8:00</a> Condor UI Improvements</strong></h3><p>Fede walks through several quality-of-life updates in Condor:</p><ul><li><p><strong>Market tab merged into Trade tab</strong> &#8212; Everything in one place now</p></li><li><p><strong>New Editor page</strong> &#8212; Manage controllers and configs like an IDE, upload files, create from templates</p></li><li><p><strong>Improved Bots page</strong> &#8212; See realized P&amp;L, unrealized P&amp;L, volume, age, and logs at a glance</p></li><li><p><strong>OpenRouter integration</strong> &#8212; Cheaper API calls and access to more models, including free options</p></li></ul><h3><strong><a href="https://youtu.be/5OCAAGz9XWg?t=570">9:30</a> New Reports Feature</strong></h3><p>One of the most practical additions: routines can now generate <strong>HTML reports</strong> with interactive charts instead of just sending images to Telegram.</p><blockquote><p>&#8220;The thing is that I have this picture, but I cannot zoom in. I can see it, but it&#8217;s not as good as an HTML. So now if I go to reports, the HTML was generated, and I can zoom in and understand what is actually happening.&#8221; &#8212; Fede</p></blockquote><p>Reports are stored automatically (up to 30) and can be scheduled alongside your routines. When an agent runs a routine, you can see exactly what data it was looking at when making decisions.</p><h3><strong><a href="https://youtu.be/5OCAAGz9XWg?t=1680">28:00</a> Live Coding: Token Research Routine</strong></h3><p>Mike and Fede build a research routine from scratch comparing three Solana DeFi tokens: ORCA, MET, and RAY.</p><p>The goal: pull market cap data from GeckoTerminal, fee revenue from DeFi Llama, and generate comparison charts&#8212;all in about 15 minutes of conversation with Condor.</p><blockquote><p>&#8220;Before, this would be like going to a Jupyter notebook, trying to make it manually. And now it&#8217;s just talking there and receiving a picture with the output.&#8221; &#8212; Fede</p></blockquote><p>The analysis revealed something interesting: Meteora is generating more fees than ORCA but trading at a lower market cap. A potential long MET / short ORCA opportunity may be lucrative.</p><h3><strong><a href="https://youtu.be/5OCAAGz9XWg?t=3180">53:00</a> Voice Commands Demo</strong></h3><p>Fede sends a voice message to Condor via Telegram:</p><p><em>&#8220;Create a grid executor on ORCA to go long between 1.9 and 2.02 with $300 and a take profit of 0.15%&#8221;</em></p><p>Condor transcribes the audio using Whisper (auto-downloads on first use), understands the intent, and creates the grid&#8212;all in seconds.</p><blockquote><p>&#8220;I really like the experience of just talking because for me, it&#8217;s like I much rather prefer to talk rather than write. And it&#8217;s like now I can say, &#8216;Can you tell me the state of that grid?&#8217; and it will just tell me.&#8221; &#8212; Fede</p></blockquote><div><hr></div><h2><strong>Next Week: Agent Structure Deep Dive</strong></h2><p>Now that routines and reports are working, Episode 6 will dive into <strong>agent structure</strong>&#8212;how to edit and iterate on agents as they run. Mike and Fede will continue developing the ORCA/MET/RAY strategy, potentially using the LP executor for concentrated liquidity positions.</p><p>Join us live next week on <a href="https://www.youtube.com/@Hummingbot">YouTube</a>. Drop your questions in the live chat&#8212;we answer them on stream.</p><div><hr></div><h2><strong>Full Transcript</strong></h2><p></p><p><strong><a href="https://youtu.be/5OCAAGz9XWg?t=60">00:01:00</a> Introduction</strong></p><p><strong>Fede:</strong> We were having very good results with an operation we&#8217;re running with my friends. I also played a lot of padel and I won all the matches that I played last week.</p><p><strong>Mike:</strong> Unfortunately, my days of winning basketball are over. I&#8217;m just trying to stay competitive and play with the old people and the kids.</p><p>Let&#8217;s get into it. Before we get started with Fede&#8217;s part of the live stream where he&#8217;ll cover the new changes in Condor, I want to introduce the hackathon that we&#8217;ll be starting pretty soon. Let me share my screen.</p><div><hr></div><p><strong><a href="https://youtu.be/5OCAAGz9XWg?t=120">00:02:00</a> Hackathon Announcement</strong></p><p><strong>Mike:</strong> If you go to this <a href="https://www.botcamp.xyz/hackathons/condor-agents-hackathon">link</a> here&#8212;I put it in the YouTube chat already&#8212;this page describes the hackathon and the schedule. As you&#8217;ve probably seen in the previous versions of this podcast, Condor gives you the ability to create agents, which are basically strategies you describe in a strategy file that uses an LLM to help you execute trades based on what it observes in the market.</p><p>Our hope is that these agents can be actually intelligent and help you maybe run bots or manage a bot better than a deterministic, simple controller or script can. We&#8217;re still building the framework, but we think people can already start building agents using Condor.</p><p>Starting in a few weeks, we&#8217;ll be launching this hackathon for trading agents. We have some sponsors already: Ripple, Gate, ORCA, as well as a quant hedge fund called Berkeley Street Capital. We&#8217;ll be onboarding a few more sponsors as well.</p><p>The way it works is that people will be submitting agents, and then the winners of the hackathon will be run in a sandbox environment with real capital in a trading competition, so we can really evaluate how these hackathon winners actually perform in the real world.</p><p>We&#8217;ll have about a one-month period when the hackathon kicks off. Right now, registration&#8217;s already open, so you can go to the website and register. You&#8217;ll be able to see the list of other participants. We&#8217;ll be providing participants with more information to help them flesh out what they&#8217;re building and find collaborators among all the participants.</p><p>The actual kickoff will be in three weeks. You&#8217;ll be able to submit your agent, and we&#8217;ll have various workshops over that time to introduce you to building agents using some of our sponsored exchanges and protocols. We&#8217;ll have one for building on XRPL, another workshop for looking at the inner workings of working at a quant hedge fund, hosted by our sponsor Berkeley Street Capital.</p><p>We&#8217;ll have maybe one or two more workshops as we flesh out the schedule. The submission deadline for the hackathon will be about one month after it starts, in June&#8212;right now it&#8217;s June 21st. After that, we&#8217;ll judge the hackathon winners based on the demo they provide, the code, and the video.</p><p>Once we select the winners, we&#8217;ll take them and run them using Hummingbot instances with real capital, and evaluate how well they actually perform over a 48-hour period.</p><p>We&#8217;re pretty excited about this because this is the first time someone has tried to put together an agentic trading hackathon plus competition. I think Condor and Hummingbot is the right place to do it because with Hummingbot, you have a really big surface area to build upon.</p><p>You can build any type of strategy running on any type of CEX or DEX, and with the Condor agents framework, you can just use natural language to create that strategy. You don&#8217;t need to write lots of complex code anymore. We&#8217;re hoping we&#8217;ll see lots of good submissions from the hackathon. We&#8217;ll evaluate them and work with our sponsors to select the best strategies for each category, then basically pit them against each other in the trading competition.</p><p>The whole thing will wrap up in early July with the final competition winners announcement, but we&#8217;ll also have a separate hackathon winners announcement before that.</p><p>Registration is now open, so you can register, submit your email, and we&#8217;ll have a mailing list that provides more information. When the hackathon starts, you&#8217;ll be able to flesh out your agent here.</p><p>That was my part of the announcement. We&#8217;ve also started working on version 2.15, the next version of Hummingbot, which has some base-level improvements. Fede is already building some of those improvements into Condor because we want to make sure you&#8217;re able to use the latest changes we&#8217;re making.</p><p><strong>Fede:</strong> Yeah.</p><p><strong>Mike:</strong> So&#8212;</p><p><strong>Fede:</strong> There&#8217;s a question that says, &#8220;Do we need to risk some money or do you fund our strategy?&#8221;</p><p><strong>Mike:</strong> Yeah. The idea is we would provide the funding for the strategy. We would take your code&#8212;you specify which exchange you&#8217;d run this on, all the parameters that go into it&#8212;and then we&#8217;d run the strategy along with others using the same amount of capital to evaluate it.</p><p>This is actually a good question. Do we need to risk money or do we fund the strategy? Basically, we would work with our sponsors to select the best strategy that fits their categories.</p><p><strong>Fede:</strong> There will be a selection process because probably we&#8217;ll have a bunch of submissions, right? First, we&#8217;ll filter which are humans and which are agents, so we just let humans participate&#8212;that will probably be the filter with the video. Then from all the strategies submitted, we&#8217;ll have an initial filter of &#8220;these ones will advance to the next round,&#8221; and the finalists will be available for the competition. Then we&#8217;ll run the bots with the capital.</p><p>I think this is a very good initiative. I think people would like to see bots competing against each other.</p><p><strong>Mike:</strong> Yeah.</p><p><strong>Fede:</strong> Do you want to start checking the new things in Condor?</p><p><strong>Mike:</strong> Yeah, why don&#8217;t you give people a sense for what&#8217;s new.</p><div><hr></div><p><strong><a href="https://youtu.be/5OCAAGz9XWg?t=480">00:08:00</a> Condor Updates Overview</strong></p><p><strong>Fede:</strong> Basically, there were some things we were working on this week. First, the feeds for candles and open interest on Binance Perpetual were broken. I just fixed them and pushed the update&#8212;the library is released again. You&#8217;ll need to update your Hummingbot API to have this fix because the WebSocket contract changed from Binance Perpetual.</p><p>There are also some improvements on the configs on the Hummingbot API side. Plus, there was a redesign on Condor. We merged some of the pages&#8212;the market page is now merged into the trade page. We also improved the bots page to have the configs more like an IDE inside the website.</p><p>The WebSocket integrations on the frontend were improved, and the backend layer is much better now because it shares data for the Telegram bot and the web UI through one centralized place.</p><p>I also added a new feature called reports. I think you&#8217;ll like it. I&#8217;ll showcase a few now. Basically, when you run a routine, that routine can send you a Telegram message with a picture, respond to text, do all those things we already know how to use.</p><p>But we&#8217;re just one more step away from creating a report. So I said, &#8220;Let&#8217;s see how a report feature would look like.&#8221; I already made it. When you instruct a routine to generate a report at the end, it will generate an HTML with graphs and markdown&#8212;whatever you have there. You have a buffer of maximum 30 reports, and the old ones get cleaned up.</p><p>If you schedule a routine every day, instead of sending via Telegram, you can just have the report being generated and go to the website to check the status there. But let&#8217;s see them in the UI.</p><p><strong>Mike:</strong> Yeah, let&#8217;s take a look.</p><div><hr></div><p><strong><a href="https://youtu.be/5OCAAGz9XWg?t=630">00:10:30</a> Reports Feature Demo</strong></p><p><strong>Fede:</strong> Can you see my screen now?</p><p><strong>Mike:</strong> Let me add it to the scene. Yeah.</p><p><strong>Fede:</strong> We&#8217;re going to have some fun in Condor. I&#8217;ve been playing around creating a strategy. This was just 15 minutes talking with Condor, with the agent builder, saying &#8220;I want to do some research on Bollinger Bands on ORCA. Can you get the candles of one minute for the last two hours and generate&#8212;when it goes below the band, above the band&#8212;what&#8217;s the percentage of this band? When it&#8217;s increasing, the value will increase and decrease. I&#8217;d like to see the compression or expansion of this band.&#8221;</p><p>So if the band is increasing, this will be increasing. Here the market goes down, there&#8217;s a trend, this band is expanding. Here it&#8217;s getting contracted, then expanding again.</p><p>Before, this would be like going to a Jupyter notebook, trying to make it manually&#8212;I&#8217;d say two years ago. Now it&#8217;s just talking and receiving a picture with the output.</p><p><strong>Mike:</strong> Can you show how you generate this? What was the message?</p><p><strong>Fede:</strong> Yeah, we&#8217;re going to generate a new one during this session today.</p><p>I also said I&#8217;d like to evaluate the volume of the market so I can see volume spikes. Actually, I want to see buy pressure and sell pressure. Here in the first part, the buy pressure was very negative. But this is the second iteration&#8212;the first iteration was something more like this, where we spot volume spikes.</p><p>Overall, there&#8217;s a lot of potential in receiving data here. But before seeing how we can generate one of these, let&#8217;s see the new interface of Condor.</p><div><hr></div><p><strong><a href="https://youtu.be/5OCAAGz9XWg?t=780">00:13:00</a> UI Walkthrough</strong></p><p><strong>Fede:</strong> The portfolio page is the same that we had before. I&#8217;d like to keep this one simple because it&#8217;s just seeing your portfolio stuff.</p><p>There&#8217;s a question: &#8220;The indicator values&#8212;volume bands&#8212;are calculated by Condor?&#8221; Yeah, they&#8217;re created by Condor. I&#8217;m going to show you how you can see them and create your own indicator. The good thing is you can create an indicator&#8212;you can even get a Pine Script from TradingView and tell Condor, &#8220;Hey Condor, translate this Pine Script code into Python code to visualize it in the charts,&#8221; and it&#8217;ll be able to do it.</p><p>The other change I did: before, we had a market tab here. I merged that market tab into trade. Now the trade tab has the OHLCs with executors, the positions, and the config.</p><p>If you go here to &#8220;Depth,&#8221; you&#8217;ll also see the order book and the trades coming from this market. This is really nice because we shouldn&#8217;t need two pages for this. You can see the different markets being loaded and the data that&#8217;s available.</p><p>But I think this page is probably not so useful for you right now&#8212;the depth&#8212;because you&#8217;ll mostly be looking at the price and using the config to generate different configurations for the executors you&#8217;d like to deploy. But it&#8217;s nice to have.</p><p>There were some improvements on the UI for the different executors, but the biggest change on the trade page is merging markets and trade.</p><div><hr></div><p><strong><a href="https://youtu.be/5OCAAGz9XWg?t=900">00:15:00</a> Bots Page</strong></p><p><strong>Fede:</strong> In bots, we also have some changes. Let me show you how a real bots page looks. These are the bots I&#8217;m running for one of the clients.</p><p>The bots page will show you: what is the realized P&amp;L, unrealized P&amp;L, total P&amp;L, volume traded, the age that the bot is running. Now I also added here to see the controller config, and you have the logs of the bots. Here it&#8217;s failing because it doesn&#8217;t have budget. Maybe there&#8217;s an error here. You can see all logs and filter by error logs.</p><p><strong>Mike:</strong> These are actively running bots right now?</p><p><strong>Fede:</strong> Yeah, these bots are running from the&#8212;</p><p><strong>Mike:</strong> Okay, nice. So basically each one&#8217;s a separate instance? Or is it one&#8212;</p><p><strong>Fede:</strong> There are three bots because it seems like Dreamman deployed them badly&#8212;he should be deploying three bots in the same container, but for some reason he deployed three different bots. But in this case, it can be just one single bot sharing all three controllers.</p><p>We also have the editor here. We got the top three bots from the 15 bots we were running and said, &#8220;Let&#8217;s try to run this with more capital.&#8221;</p><div><hr></div><p><strong><a href="https://youtu.be/5OCAAGz9XWg?t=990">00:16:30</a> Editor Page</strong></p><p><strong>Fede:</strong> Another change is we have this editor page. Instead of having controllers and configs separate, we have this editor page where you can see the code of the controller and update it if you want. You can also see the controller configs. We have all these configs that we were running.</p><p>You can analyze a config, update it, delete it, whatever. This editor helps you switch between controllers and configs and adapt the one you need. You can also upload a file&#8212;a YAML file or a Python file&#8212;if it&#8217;s a controller.</p><p>You can also create a new one from a template, so if you have the controller, you can pick it, all the parameters will be loaded, and you can create them.</p><p><strong>Mike:</strong> To be clear, these are the same controllers that work in Hummingbot, right? If someone created a custom controller here without any changes, they could use it themselves as well?</p><p><strong>Fede:</strong> Yeah. If they create a custom controller, they can just go to this UI and upload it.</p><p><strong>Mike:</strong> Nice. I would say we&#8217;re focusing on controllers right now. In the future, we may try to support scripts, but right now we&#8217;re focused on controllers because each controller has this &#8220;total amount quote&#8221; that says how much in quote you want to give it, which allows us to calculate the P&amp;L of your bots correctly.</p><p>In the future, we may allow people to run scripts if they want to continue using something from the past. But we recommend overall that if you&#8217;re using Hummingbot right now with controllers, this is a better way to run it than what you were probably doing before with CLI.</p><p><strong>Fede:</strong> Yeah. If they have a script they were using, we could add a new tab that says &#8220;adapt script to controller&#8221;&#8212;we can spawn a Claude session that translates the script to a new controller.</p><p><strong>Mike:</strong> Usually a script is using some custom gateway controller or something custom, so I&#8217;d say the use case for scripts is more someone doing something custom.</p><p><strong>Fede:</strong> You can do the same in a controller if it&#8217;s custom&#8212;there&#8217;s no problem with that.</p><p><strong>Mike:</strong> Yeah, anyway.</p><p><strong>Fede:</strong> It&#8217;s just Python.</p><div><hr></div><p><strong><a href="https://youtu.be/5OCAAGz9XWg?t=1140">00:19:00</a> Agents Page</strong></p><p><strong>Fede:</strong> Then we have the executor stuff&#8212;same tab as before, you can see executors and all that. Then we have agents. I&#8217;m currently working on this, mainly unifying the sessions.</p><p>Before it was overview, strategy, learnings, sessions, and dry run. I removed strategy and learnings as separate tabs, and now I&#8217;m putting the strategy and learnings here. I&#8217;m trying to figure out how to improve the experience even more. Maybe I should add an editor like this one, maybe I should just let the user expand to check it.</p><p>I&#8217;m trying to figure out by testing what the best solution is. But I think you&#8217;re also not going to modify this directly too much&#8212;you&#8217;re probably going to modify these things with the agent itself.</p><p>I also made another change that&#8217;s not reflected yet because this was an older version of the learnings. I found that it was adding a lot of information that&#8217;s sometimes redundant. So I said it has to organize learnings into market data learnings and executor learnings, so it&#8217;ll probably keep the information more concise.</p><p><strong>Mike:</strong> The question is, are these things users should edit or not? By having an editor, we&#8217;re saying these are things that could be edited by the user.</p><p><strong>Fede:</strong> Could be. For example, let&#8217;s say I don&#8217;t like this insight&#8212;I can just go here and remove it, save it.</p><p>Or I&#8217;d like to add another learning to say, &#8220;Hey, please take a look at this because you&#8217;re missing when this happens.&#8221; You can manually input a learning from here, and it will be automatically incorporated. But you can either write it here or talk with the agent builder and say, &#8220;I would like to add this insight.&#8221;</p><p><strong>Mike:</strong> I think for removal, what you just did of removing an insight is something people may want to do because it&#8217;s easier than trying to tell the agent. Overall, the two ways is actually not bad. The only thing I&#8217;d add is some type of expand or download button. Maybe just expand.</p><p><strong>Fede:</strong> Yeah, they can access the file. Maybe an expand here would be nice. I&#8217;ll add it.</p><p>Then we have sessions here. You can see the trades that the agent took. This is one of the trades, this is another trade, so on top of the candles you can see where there was actually trade activity.</p><p>There&#8217;s one thing about the color&#8212;it&#8217;s not easy to spot where these trades are because it&#8217;s red and the same red. Maybe I&#8217;ll try to make it bigger or find a way to point out where these executors are.</p><p><strong>Mike:</strong> Okay.</p><p><strong>Fede:</strong> Overall, I improved the interface, putting this on the same level. Then we have the overview, take a snapshot&#8212;there&#8217;s a kind of overview for the executors.</p><p>And this view&#8212;if you go for each executor, you can see where they were and it will load the data around it.</p><div><hr></div><p><strong><a href="https://youtu.be/5OCAAGz9XWg?t=1380">00:23:00</a> Routines Demo</strong></p><p><strong>Fede:</strong> Lastly, we have the routines that you already know. These are the ways you can trigger a routine. For example, let&#8217;s say we trigger the &#8220;top movers.&#8221; This will give us the top movers on Binance Perpetual.</p><p>If I run top movers, I have this result, this output that&#8217;s probably what I&#8217;ll receive in Telegram. But here&#8217;s the change I made: what happens if this top movers routine can be run on a schedule&#8212;every minute or every five minutes? Where will I see this output? Because Telegram will be a little verbose, and sometimes I don&#8217;t want to receive everything in Telegram. That&#8217;s why I created reports.</p><p>If you go to reports, you&#8217;ll see that 34 seconds ago this one was created. This is what a report looks like. See, it generated this graph that shows the gainers and losers. You can expand the graph also. So it&#8217;s like&#8212;good.</p><p>This is nice because now we can create HTML with these reports, and it&#8217;s very simple to create. Let&#8217;s say we run the technical analysis on SALT&#8212;six hours of candle data.</p><p>Let&#8217;s run it. It&#8217;ll be here&#8212;as you can see, it&#8217;s running. When it ends, I see this output here. See, this is a picture&#8212;the same picture I receive in Telegram.</p><p>This is what I was trying to improve&#8212;this experience&#8212;because I have this picture but I cannot zoom in. I can see it, I can analyze it, but it&#8217;s not as good as HTML. Now if I go to reports, the HTML was also generated. Here I have the analysis and the HTML, so I can zoom in and understand what&#8217;s actually happening in the market.</p><p>This is a small improvement that the framework now has&#8212;including reports.</p><p><strong>Mike:</strong> Can you walk through again how you tell a routine to trigger the report? Where are you defining that?</p><p><strong>Fede:</strong> Actually, it&#8217;s very simple. You tell Condor to do it. But let&#8217;s say we look at the one we just created&#8212;top movers.</p><p>You see the run? First, I have this figure that I&#8217;m generating. What you need to do is import the report builder. At the end of the routine, you need this report builder source&#8212;this routine&#8212;to tell what routine is generating this report.</p><p>In the markdown, you add the markdown you want. If you want to add a Plotly chart, you add the figure you generated&#8212;the chart. If you want to add a table, you add a table. This step is what actually generates the report.</p><p>These reports you can find here in the charts folder. You&#8217;ll have the HTML generated by this report class. From here you can also clean them&#8212;removing the reports you generated.</p><p>I think this approach of HTML reports is quite convenient.</p><p><strong>Mike:</strong> Are you gonna include some samples with this?</p><p><strong>Fede:</strong> Yeah, I updated all the ones I have here&#8212;they&#8217;re also moved to reports.</p><p><strong>Mike:</strong> Okay, got it.</p><p><strong>Fede:</strong> In the project, I&#8217;m also providing this routine that&#8217;s loaded by the Condor agent. This has an explanation of how to add the report. I&#8217;ll provide the update on this too, so now your agent will know how to create reports.</p><p><strong>Mike:</strong> Got it. Are you gonna show people how to do it now?</p><p><strong>Fede:</strong> Yeah, I think the best way will be trying to create a report showing this. By the way, let me add this so I don&#8217;t forget.</p><p>So let&#8217;s see how we can create a report now. Any inspiration from the chat? Does anyone want to generate a report about something?</p><p><strong>Mike:</strong> Do like a token or an indicator you want us to use, or even a strategy type maybe.</p><p><strong>Fede:</strong> I don&#8217;t know what you want, guys. Just mention it in chat.</p><p>If not, we can move on.</p><p><strong>Mike:</strong> Yeah. Actually, why don&#8217;t we do something on ORCA since that&#8217;s a token that has risen a lot recently. I think a couple of Solana tokens have gone up. Maybe we can look at ORCA and figure out if there&#8217;s&#8212;actually, maybe ORCA versus Meteora, that might be a possibility.</p><p><strong>Fede:</strong> I like that.</p><p><strong>Mike:</strong> Based on&#8212;</p><p><strong>Fede:</strong> What I&#8217;d like to know is&#8212;yeah, maybe we can do analysis between ORCA, Meteora, and Radium, comparing also the market caps, maybe.</p><p><strong>Mike:</strong> Yeah, I think it&#8217;s a good idea. If you want, we can also try looking at the revenue data from DeFi Llama.</p><p><strong>Fede:</strong> That would be nice.</p><p><strong>Mike:</strong> Do you have a link? Is there an API?</p><p><strong>Fede:</strong> Data is free?</p><p><strong>Mike:</strong> It should be, yeah. Why don&#8217;t you start the agent&#8212;start the building process. I&#8217;ll do some research into the DeFi Llama data while you&#8217;re doing it.</p><div><hr></div><p><strong><a href="https://youtu.be/5OCAAGz9XWg?t=1830">00:30:30</a> Live Coding: DEX Token Comparison</strong></p><p><strong>Fede:</strong> Okay. This is how I&#8217;ll start doing research. This is really nice because you don&#8217;t need to know&#8212;you just need to ask. That&#8217;s the best thing.</p><p>I&#8217;ll tell it&#8212;let&#8217;s create this as a routine. I&#8217;ll say: &#8220;Hi Condor, I would like to create a routine to compare the market cap evolution over time of ORCA, MET, and RAY. Can you check the GeckoTerminal API and see what data we have available?&#8221;</p><p>I&#8217;ll tell it to check the GeckoTerminal API. I created this GeckoTerminal Python wrapper a long time ago for getting data from GeckoTerminal. There are some examples in the code&#8212;in the usage, I created a notebook so you can see how to get networks, DEXes by network, trending pools, top pools, new pools, and also specific tokens on a network.</p><p>With this, I think Condor should be able to get the supply. With the OHLCs we should be able to see the market cap because I don&#8217;t think it&#8217;s showing market cap directly. Let&#8217;s see what Condor tells us.</p><p>It seems like it&#8217;s searching. I thought the GeckoTerminal API should also have market cap. Let me see.</p><p><strong>Mike:</strong> Yeah, I think they have market cap and TVL if I&#8217;m not mistaken.</p><p><strong>Fede:</strong> But I don&#8217;t know if they&#8217;re doing it for OHLCs&#8212;the output of the OHLC.</p><p>No, it&#8217;s just returning this, it&#8217;s not returning market cap, so what I have is correct. But I have the data of the number of tokens available, so it should be able to figure that out.</p><p><strong>Mike:</strong> Okay. By the way, it looks like we can get fees from DeFi Llama. Let me send you the link. I&#8217;ll send it to you in Discord.</p><p><strong>Fede:</strong> Okay. He gave me this change on file. I don&#8217;t know what this is. It&#8217;s the data of the&#8212;</p><p><strong>Mike:</strong> That&#8217;s the GeckoTerminal data for these protocols.</p><p><strong>Fede:</strong> Yeah. Okay.</p><p><strong>Mike:</strong> So just to maybe more precisely define the type of strategy we&#8217;re talking about for the seven people watching and everyone watching YouTube afterwards: basically what we&#8217;re talking about is some type of portfolio allocation or stat arb strategy that&#8217;s looking at three tokens that are Solana decentralized exchanges.</p><p>All three&#8212;Meteora, ORCA, and Radium&#8212;are DEXes that Hummingbot has integrations to. We&#8217;re very familiar with how users might approach these. All three are AMM DEXes with AMM pools and concentrated liquidity pools. A lot of LP strategies you might want to use are probably using Meteora or Radium using concentrated liquidity pools.</p><p>Recently ORCA has shot up in the market. I think it went from $1 to $2&#8212;something like that. It spiked up to almost two, went down to one, recently spiked up to two again.</p><p>I think that actually puts ORCA&#8217;s market cap above Meteora and maybe even Radium.</p><p><strong>Fede:</strong> I don&#8217;t think they beat Radium yet, but we&#8217;ll see.</p><p><strong>Mike:</strong> Yeah.</p><p><strong>Fede:</strong> One thing is&#8212;I just told this and see all the work it&#8217;s doing. It was actually able to say, &#8220;Okay, I can get the token and I can use GeckoTerminal to get&#8212;&#8221; and now it&#8217;s finding the top pools to get the OHLC data from them.</p><p><strong>Mike:</strong> Cool. So the strategy&#8212;we&#8217;ll basically look at, try to look at these market caps or maybe even the fees these protocols are earning, because that&#8217;s also visible on-chain, to analyze which tokens are undervalued or overvalued given all these metrics.</p><p>It&#8217;s like a mix of using fundamental analysis to formulate a strategy to do some mean reversion perhaps or some other trading play. But overall, the first step, as Fede mentioned, is to identify the data you&#8217;re interested in.</p><p>Here we&#8217;re looking at market caps, the price obviously, historical revenues, and other factors. This is good for agents because in the past you&#8217;d have to put this in a spreadsheet and spend hours cleaning the data, putting it together, collecting it. Now you can hand all that off to your Condor agent.</p><p><strong>Fede:</strong> I would say to avoid rate limits, use the data from Binance Perpetual and use the data from GeckoTerminal for the market cap calculation. Also, I&#8217;d like to include into the routine the fee revenue data. Here&#8217;s an explanation of how to get it.</p><p>Okay, let&#8217;s see. Oh sorry, it seems like it went to messages.</p><p><strong>Mike:</strong> It should be okay. If it&#8217;s Claude behind the scenes, it should handle that pretty well.</p><p>But interestingly, as this is working, some folks on Discord have already reported trying out Condor with other open source models. Because actually&#8212;I&#8217;m not sure if you&#8217;re gonna show this later&#8212;but now you&#8217;ve added more support to the models menu, right? Beyond the defaults?</p><p><strong>Fede:</strong> There&#8217;s more support for other models. David told me today that he finally integrated Open Router. Now with Open Router, first you can get cheaper requests, then you can get other models to use. There are also some free models you can use from the API there, and he told me they were able to do tool calls, so it&#8217;s actually nice to see.</p><p>Let me see what&#8217;s the state. With these two things I probably messed it up, but maybe this is working. I&#8217;ll need to create a new session. This might happen because remember it&#8217;s in trial, but&#8212;it was actually responding.</p><p>I&#8217;ll start a new session. Now it&#8217;ll analyze the routine we were creating for the market cap comparison and fee revenue.</p><p><strong>Mike:</strong> Evaluate this later on, by the way, because I think your screen&#8217;s not coming in very clearly. I&#8217;m not sure if it&#8217;s just on my end or it&#8217;s on the actual stream itself.</p><p>Yeah, if in the audience you&#8217;re seeing blurry screens, please let us know because we&#8217;re experimenting with different ways to stream. Maybe we&#8217;ll end up using different software if you can&#8217;t see what we&#8217;re presenting.</p><p><strong>Fede:</strong> Let&#8217;s make it continue from here. I don&#8217;t know if it&#8217;s&#8212;I&#8217;m seeing the screen on Restream well, but I don&#8217;t know why we&#8217;re still having that type of problem.</p><p><strong>Mike:</strong> For me, my Restream is blurry, but I&#8217;m not sure if the actual output on YouTube is blurry as well. It&#8217;s hard to tell. We&#8217;ll see in the final output. I&#8217;ll try to clean it up.</p><p>Let me know if the quality is fluctuating. That&#8217;s one unfortunate thing about livestreaming. Maybe we&#8217;ll experiment with doing a pre-recorded one in the future.</p><p><strong>Fede:</strong> Okay. Here it&#8217;s trying to update with the fees data, so we&#8217;ll see if it&#8217;s able to come up with the report. Now the final stage will be&#8212;run the routine and we should see the HTML report on the website.</p><p>That would be the goal: can we create in less than 15 minutes or 10 minutes a report that compares the market caps, the fee revenues of these three protocols, and just have a visualization?</p><p>We have five minutes left, so let&#8217;s see if we can make it.</p><p><strong>Mike:</strong> Let&#8217;s see.</p><p><strong>Fede:</strong> Can you run it? Let me see. It&#8217;s on Binance Spot&#8212;Meteora.</p><p><strong>Mike:</strong> Yeah, Meteora is definitely on Binance Spot.</p><p><strong>Fede:</strong> And ORCA is also&#8212;yeah. Okay. Can you run it?</p><p>Let&#8217;s see what we find.</p><p>Managed routines, this... Remember, the good thing about this is that it&#8217;s like code mode. I&#8217;m experimenting with code mode right now. I think I mentioned this the other day, but there are some people&#8212;mostly the guys from Cloudflare, some from Pydantic&#8212;pushing for this code mode thing.</p><p>Basically, instead of letting the agent use MCP tools directly, they have the tools, but they&#8217;re not calling the tools directly. Instead, they&#8217;re creating code with those tools, executing all that, and then just getting the output. That reduces token usage a lot.</p><p>Seems like the report was generated. Let me see what the final result is. If we go to Condor&#8212;okay, there&#8217;s something here from one minute ago.</p><p><strong>Mike:</strong> Okay.</p><p><strong>Fede:</strong> We don&#8217;t have the market cap evolution. Okay. I&#8217;ll tell it that the market cap evolution isn&#8217;t there. But we have the daily protocol fees.</p><p><strong>Mike:</strong> Nice.</p><p><strong>Fede:</strong> Actually, MET is outperforming all of them.</p><p><strong>Mike:</strong> Yeah. That would be my intuition as well, because I think MET is actually making more fees than ORCA or Radium. That&#8217;s actually why I hold quite a bit more MET. But I do hold all three because all three are partners of ours.</p><p>But I&#8217;m a little bit overweight MET because I think the revenue is&#8212;I&#8217;m glad your chart is validating my intuition. Anytime you confirm your buys, it always feels good.</p><p><strong>Fede:</strong> Yeah. I also have most of my portfolio in MET&#8212;probably mostly these values.</p><p><strong>Mike:</strong> Nice.</p><p><strong>Fede:</strong> I also told it the legends aren&#8217;t correct. But see, now in the state we&#8217;re in, you can just chat in Telegram and generate a report that compares the fees, that gives you a chart for market cap&#8212;it&#8217;s like&#8212;</p><p><strong>Mike:</strong> And price as well, because you can also look at the candles and incorporate.</p><p><strong>Fede:</strong> Yeah. I&#8217;m making it fix that issue.</p><p><strong>Mike:</strong> Okay.</p><p><strong>Fede:</strong> So in this chart, we should be able to see the market cap evolution. But the interesting thing here is that in FDV, ORCA is still lower than the other two.</p><p><strong>Mike:</strong> That makes sense.</p><p><strong>Fede:</strong> But check the fees in 30 days&#8212;</p><p><strong>Mike:</strong> Yeah.</p><p><strong>Fede:</strong> And this interesting &#8220;market cap over analyzed fees&#8221;&#8212;this is a nice proxy to see that Meteora&#8217;s value should probably be higher.</p><p>So yeah. I see the fix was switching from this&#8212;okay, let&#8217;s see. The new report is here, so now we can see it.</p><p><strong>Mike:</strong> Does that update automatically or do you have to run it again?</p><p><strong>Fede:</strong> No, he ran it again for me.</p><p><strong>Mike:</strong> Okay.</p><p><strong>Fede:</strong> What&#8217;s strange is that market cap evolution&#8212;this value doesn&#8217;t make sense to me compared to this value.</p><p><strong>Mike:</strong> Yeah, the market cap evolution chart seems a bit off.</p><p><strong>Fede:</strong> Indexed at... Ah, this is indexed to 100&#8212;this is the evolution, meaning the changes in market cap.</p><p><strong>Mike:</strong> Yep.</p><p><strong>Fede:</strong> I would tell it I&#8217;d like to see market cap as an absolute value.</p><p><strong>Mike:</strong> Okay, got it. It&#8217;s probably using price as a proxy for market cap here. To get actual market cap, it either needs historical supply or historical market cap.</p><p><strong>Fede:</strong> Yeah, but I have the FDV, so I have the total number of tokens. I can use price times that value. That&#8217;s what it&#8217;s doing, actually, for me.</p><p>But here the trade would be: short ORCA, long Meteora, based on all these things. If you want to have a kind of delta neutral strategy where you long one and short the other, I think it would be short ORCA and long MET based on the values we&#8217;re seeing here.</p><p>That might be a good idea. But what I want to show is: here&#8217;s how you can create these routines. Also, if I go back, it should be the new version. How fast we can iterate this is incredible&#8212;I&#8217;m already on a new version.</p><p><strong>Mike:</strong> Nice.</p><p><strong>Fede:</strong> This is crazy. These are real values.</p><p><strong>Mike:</strong> Radium has always been higher than the other two despite the&#8212;</p><p><strong>Fede:</strong> Yeah. But ORCA did come back because ORCA was lower than MET. Now ORCA is passing MET, so I think MET will come up.</p><p><strong>Mike:</strong> Yeah.</p><p><strong>Fede:</strong> But yeah.</p><p><strong>Mike:</strong> We probably won&#8217;t cover this today, but let&#8217;s say you wanted to actually turn this into a trading agent. What would be the next step?</p><p><strong>Fede:</strong> The next step would be talking with agent builder and saying, &#8220;I want to create a trading agent that uses this routine to analyze the data.&#8221;</p><p>Then I would be asked: when does it take trades, how does the strategy work, will it keep positions around the three pairs with changes? It would be a conversational flow with the agent builder. Then the agent will be able to run this routine on demand and create executors on demand.</p><p>That&#8217;s how it works.</p><p><strong>Mike:</strong> So the agent would also run this routine which generates a report? So it&#8217;s kind of like you&#8217;d get the report that the agent is submitting?</p><p><strong>Fede:</strong> Yeah. For example, if I go here and say&#8212;I have an agent called BB trader. Can you check the routine it has to calculate the indicators?</p><p>Yesterday I was creating an agent. This is one of the agents I&#8217;m currently trying to work on. This agent has a routine.</p><p>So the routine it has&#8212;it&#8217;s explaining to me here how the agent works and how it&#8217;s generating decisions. But I&#8217;d like to say: I want to focus on the routine. Can you add report generation to it so I can see the output in reports?</p><p>What happens here is: if I add the report, the training agent will be able to execute local routines and general routines. If the routine the agent is calling has the implementation of this report, when the routine finishes, I&#8217;ll find in reports the output of that specific routine.</p><p>So I can see what the agent was looking at when it was doing something. I&#8217;ll also probably add one at session level so I can keep track of which ones ran at that session.</p><p>Basically it&#8217;s doing the refactor right now. As you can see, the generate chart was returning the buffer of the PNG&#8212;because I was sending through Telegram that information. But now it&#8217;ll return a figure and have two paths: one that sends the PNG via Telegram and another that saves the data.</p><p>But the important thing is this is the data your agent will see. It&#8217;s good for you to understand what your agent will be seeing when trading.</p><p><strong>Mike:</strong> Okay.</p><p><strong>Fede:</strong> So it&#8217;s updating the routine. Let&#8217;s wait one more second so we can see the output. I think it&#8217;s getting really nice.</p><p><strong>Mike:</strong> Yeah, it&#8217;s cool that because it has access to Hummingbot and also the internet, it can access pretty much any data source out there and help you visualize this.</p><p><strong>Fede:</strong> Yeah. You can run this on a server, connect it to Condor, and have your Telegram wherever you are&#8212;you&#8217;re able to use this feature.</p><p><strong>Mike:</strong> Yeah.</p><p><strong>Fede:</strong> Yeah.</p><p><strong>Mike:</strong> We should actually check how well the web dashboard works on mobile. We should make sure it&#8217;s usable on mobile, that you can navigate to these different tabs.</p><p><strong>Fede:</strong> Yeah, that would be interesting. I&#8217;m always in favor of mobile usage, but I understand people want&#8212;</p><p>Yesterday I had a great experience just sending voice messages to Condor.</p><p>Condor can transcribe the messages and then send it to Claude. I recommend checking that too. At first it&#8217;ll take a little bit if your Condor session doesn&#8217;t have Whisper downloaded&#8212;it&#8217;ll download Whisper and then be able to do the transcription.</p><p><strong>Mike:</strong> Can you demo that? Are you saying users would have to&#8212;the LLM will download Whisper or do they have to do it themselves?</p><p><strong>Fede:</strong> That would be an automatic process. But the first time it&#8217;s doing the process, it will be downloading, so it&#8217;ll take a little bit of time.</p><p>See here&#8212;it ran the routine. You see this routine, and also it generated this report. This is a report the agent is receiving. This is to analyze the candles. If we want to analyze the candles, this is a report generated by that specific routine.</p><div><hr></div><p><strong><a href="https://youtu.be/5OCAAGz9XWg?t=3240">00:54:00</a> Voice Trading Demo</strong></p><p><strong>Fede:</strong> Let me demo what it would look like to send a voice message to Condor. I want to&#8212;</p><p><strong>Mike:</strong> Do something like &#8220;how&#8217;s it going&#8221; or &#8220;how&#8217;s it feeling today.&#8221;</p><p><strong>Fede:</strong> Hey Condor, how is it going? So you see that here appears &#8220;audio transcribing voice,&#8221; and here it transcribed, and now it&#8217;s sent to Condor again.</p><p><strong>Mike:</strong> Nice.</p><p><strong>Fede:</strong> &#8220;All good, ready to trade. What do you need?&#8221; I&#8217;ll tell it: can you tell me the price of ORCA USDT on Binance Perpetual? Let&#8217;s see if it&#8217;s able to get it.</p><p>Transcribe voice... Get market data. ORCA $1.96, perfect.</p><p>Now I&#8217;ll tell it: I would like to create a grid executor on ORCA to go long between the prices of 1.9 up to 2.02, and I would like to invest $300 with a take profit of 0.15%. Let&#8217;s see if it&#8217;s able to do it.</p><p><strong>Mike:</strong> Okay. Let&#8217;s see.</p><p><strong>Fede:</strong> It&#8217;s getting the executor schema.</p><p>Let me go ahead and create it. I&#8217;ll tell it... yes, create it.</p><p><strong>Mike:</strong> So just hitting the talk button and holding it down, talking, and then releasing it&#8212;is that how you&#8217;re doing it?</p><p><strong>Fede:</strong> No, I&#8217;m with the phone.</p><p><strong>Mike:</strong> Voice message, right? Yeah. Sorry, I&#8217;m a Gen X American, so I never use voice messages. I&#8217;m asking as a complete voice message noob.</p><p>But honestly, that&#8217;s a really good experience, especially if you&#8217;re on the go trying to place a trade. I&#8217;m gonna start trying that.</p><p><strong>Fede:</strong> We are already doing some trades.</p><p><strong>Mike:</strong> Nice. You already put a grid on. Okay. So you basically put a long grid between 1.9 and 2.02. Where&#8217;s it trading now? ORCA 1.996? Okay, 1.94.</p><p><strong>Fede:</strong> Yeah.</p><p>So yeah, we finally created some&#8212;</p><p><strong>Mike:</strong> Yeah. So basically this long grid&#8212;you&#8217;ll be buying ORCA between a little bit below the current price up to 2.02. If it hits 2.02, the grid will stop, right? And then you&#8217;ll&#8212;</p><p><strong>Fede:</strong> Yeah, I&#8217;ll take profit at that value.</p><p><strong>Mike:</strong> And then if it hits 1.89, that&#8217;s a stop loss and you&#8217;re gonna get out as well.</p><p><strong>Fede:</strong> Yeah, stop loss. But &#8220;keep position&#8221; is set to true&#8212;yeah, I&#8217;ll be holding the long position. But I don&#8217;t think that&#8217;ll be a good idea for ORCA right now because it&#8217;s very volatile. But yeah, this is a great&#8212;</p><p><strong>Mike:</strong> I think there&#8217;s a good chance it&#8217;s gonna hit 2.02. Yeah. But maybe we&#8217;ll let everyone know what actually happened to this grid.</p><p><strong>Fede:</strong> Also, I really like the experience of just talking, because for me it&#8217;s like&#8212;I much rather prefer to talk rather than write.</p><p>Now I can say, &#8220;Can you tell me the state of that grid?&#8221; and it will just tell me. If not, I&#8217;d need to write that, and I&#8217;d probably be two times slower writing it.</p><p><strong>Mike:</strong> Yeah. I see what you mean, especially for individual trading. The Telegram voice interface is actually really amazing.</p><p><strong>Fede:</strong> Yeah. &#8220;Your grid is cooking.&#8221;</p><p><strong>Mike:</strong> Nice.</p><p><strong>Fede:</strong> But overall, this is what it is. I think we have room to improve, but always&#8212;week after week it&#8217;s getting better.</p><p><strong>Mike:</strong> Yeah. To try it out, the link is condor.hummingbot.org.</p><p>Like I said, we&#8217;re trying to improve it week after week. It&#8217;s open source, it&#8217;s free, and it&#8217;s maintained by Hummingbot Foundation, which is the same folks behind the Hummingbot open source framework that&#8217;s been widely used by professional market makers since 2019.</p><p>We&#8217;re also working with exchanges in our day job to integrate into Hummingbot, and some of those will likely be sponsors in the hackathon.</p><p>As one final note, as I mentioned, the hackathon is now open for registration. I think the link is in the very top of the chat on YouTube. We&#8217;ll also make sure it&#8217;s in the episode description when we share it.</p><p>You can already start registering for the hackathon. You can fill out your profile and then find collaborators among other participants. We&#8217;ll actually kick off the hackathon in about three weeks.</p><div><hr></div><p><strong><a href="https://youtu.be/5OCAAGz9XWg?t=3570">00:59:30</a> Wrap-up</strong></p><p><strong>Mike:</strong> Maybe next time, we&#8217;ll actually get into more of the agent structure. Now that we&#8217;re able to create agents, I think the next step is to really try some agents out and see how we can edit them and iterate on them as they run.</p><p>But I think routines are a really important part of this because the first thing you want to do is formulate what your strategy is. You may have a hypothesis like we did right now about MET versus ORCA versus Radium, but actually analyzing and figuring out how you want your agent to behave given the data you have is the next part.</p><p>Maybe we&#8217;ll actually continue this next week and try to figure out: is there some type of trading strategy we can employ? If so, how should we do it? Should we use grids or should we use the LP executor that we now have in Hummingbot that will be supported in Condor too?</p><p>There&#8217;s a few ways we can approach it. But overall, we&#8217;d love for you guys to just try it out, register for the hackathon, and see what kind of agents you can build. Hopefully we&#8217;ll find some cool agents, give them some real money, and see how they actually perform in a 48-hour trading competition. That will end the first trading agents&#8212;or Condor agents&#8212;hackathon. That&#8217;s what we&#8217;re calling it now.</p><p><strong>Fede:</strong> Yeah. All right.</p><p><strong>Mike:</strong> Okay.</p><p><strong>Fede:</strong> I think that&#8217;s all. I&#8217;ll see you next week.</p><p><strong>Mike:</strong> Yep. See you guys. Bye everyone.</p><p><strong>Fede:</strong> Bye.</p>]]></content:encoded></item><item><title><![CDATA[The Bot Pod Episode 4: Backtesting in Condor]]></title><description><![CDATA[We show how to backtest HFT market making strategies in Hummingbot and Condor]]></description><link>https://hummingbot.substack.com/p/the-bot-pod-episode-4-backtesting</link><guid isPermaLink="false">https://hummingbot.substack.com/p/the-bot-pod-episode-4-backtesting</guid><dc:creator><![CDATA[Hummingbot Foundation]]></dc:creator><pubDate>Sat, 25 Apr 2026 04:38:50 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/195405142/6f308be703248290514f724e97cb7a29.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>We&#8217;re back with Episode 4 of <strong>The Bot Pod</strong>! This week, Mike and Fede tackle one of the most requested features in Hummingbot: <strong>backtesting</strong>. They explain why backtesting should be used as a parameter research tool rather than a prediction engine, demo the new backtesting capabilities in Hummingbot 2.14, and show how PMM Mister&#8217;s position hold feature prevents selling at a loss.</p><p>The episode also includes a candid discussion about this week&#8217;s DeFi hacks (Drift, KelpDAO) and how to keep your DeFi assets safe. Sometimes the best trade is no trade.</p><p><strong>Watch the full episode:</strong> <a href="https://www.youtube.com/watch?v=xWJ8-s6njXY">YouTube</a></p><p><strong>Get started with Condor:</strong> <a href="https://condor.hummingbot.org/">Condor</a></p><div><hr></div><h2><strong>Episode Highlights</strong></h2><h3><strong><a href="https://youtu.be/xWJ8-s6njXY?t=1020">17:00</a> Backtesting Philosophy</strong></h3><p>Fede doesn&#8217;t hold back on this one:</p><blockquote><p>&#8220;You will never be able to have a backtest that works exactly as real life.&#8221;</p></blockquote><p>Why? A few reasons. First, there&#8217;s queue priority&#8212;you never know where your order sits relative to everyone else&#8217;s. Second, there&#8217;s path dependency: if just one fill happens differently in real trading versus your backtest, everything after that diverges completely. And exchanges don&#8217;t tell you who placed orders when, so you&#8217;re always guessing.</p><h3><strong><a href="https://youtu.be/xWJ8-s6njXY?t=1440s">24:00</a> PMM Mister Deep Dive</strong></h3><p>Mike and Fede walk through the PMM Mister strategy parameters, and there are a lot of them. The key insight is how they all work together.</p><p>Mike works through the math live to make sure he understands:</p><blockquote><p>&#8220;So if I&#8217;m placing 1% buy orders and max executors is 20, the most I&#8217;ll ever have on the book is 20%?&#8221;</p></blockquote><p>Fede confirms: &#8220;Good student!&#8221;</p><h3><strong><a href="https://youtu.be/xWJ8-s6njXY?t=2100s">35:00</a> Running the Backtest</strong></h3><p>The actual demo is quick&#8212;half a day of backtesting runs in about 34 seconds. But there&#8217;s a crucial detail: you need one-second candles for market making strategies. Fede explains that he often gets 30+ fills in a single minute, so one-minute candles would completely miss that activity.</p><h3><strong><a href="https://youtu.be/xWJ8-s6njXY?t=3240s">54:00</a> 2% vs 10% Portfolio Allocation</strong></h3><p>To show why backtesting matters, Fede changes just one parameter: portfolio allocation from 2% to 10%. The difference is dramatic.</p><p>With 10% allocation, position builds way faster&#8212;the bot hits $300 in inventory almost immediately instead of gradually. But then something interesting happens: trading stops completely. The bot hit its max position while underwater, and because profit protection is on, it won&#8217;t sell at a loss. So it just... waits.</p><blockquote><p>&#8220;If the market never recovers from this point,&#8221; Fede says, &#8220;this bot will be stopped forever.&#8221;</p></blockquote><h3><strong><a href="https://youtu.be/xWJ8-s6njXY?t=4560s">76:00</a> Trading Bots vs Trading Agents</strong></h3><p>A viewer asks about AI latency, which leads to an important clarification. In Condor, trading bots and trading agents are different things.</p><p>Bots are deterministic&#8212;pure code, no LLM involved. They run on one-second ticks or faster, and backtesting works perfectly for them. Agents, on the other hand, use LLMs to make decisions. They&#8217;re slower by design, running every minute or so.</p><blockquote><p>&#8220;When you&#8217;re doing HFT, you probably don&#8217;t want the LLM involved in every single tick. That&#8217;ll slow things down.&#8221;</p></blockquote><p></p><div><hr></div><h2><strong>Full Transcript</strong></h2><h3><strong>Intro &amp; Market Discussion</strong></h3><p><strong>Mike:</strong> Welcome everyone to another episode of The Bot Pod, a weekly podcast where Fede and I demo the latest features in the Hummingbot open source framework. We are the maintainers of Hummingbot, and our goal is really just to democratize the world of algo trading and market making by providing free technology that&#8217;s available to anyone in the world.</p><p>I&#8217;m coming at you from Sunnyvale, California, and Fede is in Mar del Plata, Argentina. Feel free to leave your questions in the comments and we&#8217;ll try to surface the best ones.</p><p>Today&#8217;s a special episode because we&#8217;re excited to present backtesting in the new framework that we have. We just launched this new agentic harness called Condor that allows you to use AI in your crypto trading.</p><p>Backtesting is an area that we&#8217;ve always wanted to support. Having Hummingbot integrate directly to the exchanges, you can fetch data from exchanges, use it for backtesting, and have a good understanding of what it&#8217;s like to run your strategy before you actually deploy live. However, because there&#8217;s a lot of complexity with backtesting&#8212;you have to have a framework that&#8217;s fast, that can do a good job of simulating reality, but you also have to fit it into the type of strategy that you want to simulate&#8212;for that reason it&#8217;s taken us a long time to actually create a backtesting framework that&#8217;s really usable and flexible enough where people can use it for all of those strategies.</p><p>But I think we&#8217;re pretty close to having that, and I&#8217;m excited for Fede to show off what he&#8217;s built. But before we get into it, it&#8217;s been a rough week in crypto markets. I think there&#8217;s been a couple hacks recently with Drift and with KelpDAO. Fede, how are you feeling about what&#8217;s going on in crypto markets this week?</p><p><strong>Fede:</strong> Yeah, hacks usually happen every few months, so it is very sad that it happens, but it is part of the game. Personally, I usually do mostly LP, so it&#8217;s more difficult to hack. I also do some lending&#8212;that&#8217;s probably the most risky part. But I think that is not good because you want to have trust on the protocol. I can give you some yield, but...</p><p><strong>Mike:</strong> Yeah, the lending thing&#8217;s hard because I think a lot of people just aren&#8217;t really aware of all the different risks that exist in all these protocols and in the underlying assets. Because I think in this case, it wasn&#8217;t really Aave&#8217;s issue&#8212;it was like this staking token that people could lend into Aave and borrow other assets.</p><p>Because this staking token was hacked due to some bridge hack&#8212;this is KelpDAO&#8212;the people in Aave were stuck with bad debt, basically. So I would say yeah, the good thing is none of our assets or the foundation assets were hit. But I should tell you, I did actually move all of the foundation positions back into the wallet. So now we&#8217;re just holding USDC in wallet.</p><p><strong>Fede:</strong> Doing nothing instead of earning interest on the lending protocol.</p><p><strong>Mike:</strong> Yeah, doing nothing instead of earning interest. I think that specifically, I usually never like those risk-taking coins because I think those mechanisms... you can get, by the way, you stake ETH, but then you go to rsETH and then you can lend that for ETH again into Aave and do the cycle again. So it&#8217;s obvious that those types of mechanisms&#8212;at the end, someone has to pay.</p><p>In this case, I feel bad for the folks who were just lending USDC or USDT, but they weren&#8217;t aware that because of the way these Aave pools work&#8212;there&#8217;s like 20 assets in the pool, so anyone can lend or borrow any asset&#8212;I think rsETH was one of the assets of the pool that could be lent, but it&#8217;s probably not really the one that most people are borrowing or lending, which is USDC or USDT. But what happens in these pools is you basically bear the risk of the worst asset that&#8217;s in the pool.</p><p><strong>Fede:</strong> Yeah.</p><p><strong>Mike:</strong> That&#8217;s why actually I pulled our money away from lending protocols because I was looking at the list and I&#8217;m like, I don&#8217;t even know what some of these tokens are. I don&#8217;t want to be exposed to some random USDX stablecoin out there.</p><p>In the old days when the yields were higher&#8212;when I first got into DeFi, the lending protocol yields were like 10% or 15% per year.</p><p><strong>Fede:</strong> In Anchor. Anchor was&#8212;</p><p><strong>Mike:</strong> Oh yeah, Anchor had 20% back then.</p><p><strong>Fede:</strong> At that moment I was lending most of my USD there, and when the market went to $0.96, I withdrew and sold everything.</p><p><strong>Mike:</strong> Really? Okay, that&#8217;s good.</p><p><strong>Fede:</strong> Yeah, because it was at that price for a little bit of time and I was like, okay, this is a stablecoin and people are getting afraid of this. If one gets afraid and starts selling, there&#8217;ll be an escape event. So I just said, okay, I will take the loss and I will go out.</p><p><strong>Mike:</strong> Yeah, that&#8217;s also why I pulled our money out&#8212;because other people are pulling money out, you don&#8217;t know if that can cascade into something else in the future. So better safe than sorry. Happy to earn 0% yield right now for the time being.</p><p>Anyway, let&#8217;s get into it. I see some questions from the audience about backtesting. I think a lot of people are interested in backtesting.</p><div><hr></div><h3><strong>What is Backtesting?</strong></h3><p><strong>Mike:</strong> Maybe why don&#8217;t I just give a brief overview of what backtesting is, why it&#8217;s important, and how we enable that in Hummingbot.</p><p>You guys probably know that Hummingbot integrates to many exchanges, and one of the main reasons people use Hummingbot is to standardize trade execution across lots of exchanges. For example, you can run an HFT market making strategy on Binance or OKX or HyperLiquid. But many people probably didn&#8217;t know that you can also use Hummingbot to fetch real-time and historical data from the same exchanges using the same exchange connectors.</p><p>Starting a few years ago, we incorporated the concept of candles where you can now fetch historical data from the exchange. And now you can also use Hummingbot to take the data and apply a backtesting algorithm&#8212;basically a simulation against that historical data&#8212;so that you can know how your strategy works.</p><p>It takes some configuration in the framework because ideally you want to run the same code that you&#8217;ve developed for your strategy using the backtest and using it for testing against production data. So you want to use historical data, but you also want to be able to take that same code without any modification and run it on live data as well.</p><p>That&#8217;s why there&#8217;s been many different options. We have tried to build a user interface for it, but you can also do this using the command line, using the API directly, which gives you the full power of all the different configuration parameters.</p><p>So that&#8217;s just a preface to give you a brief overview of how backtesting works. Basically, we are using the exchange integration directly to fetch historical data from the exchange, have an engine that will calculate performance of a strategy given that historical timeframe, and then a UI to help you visualize and understand that backtesting performance.</p><p>What Fede will show today is basically the full end-to-end process of taking an HFT market making strategy, backtesting it, but then also deploying it live and comparing the live results to the backtesting results.</p><p><strong>Fede:</strong> Yeah. One thing that I would like to add&#8212;you got me thinking with the lending stuff&#8212;I think that the first one that demonstrates their mechanism is not safe for someone to deploy, because if they pull, there are tokens that are unsafe. I think there should be one lending protocol that comes up with a more institutional or solid process. And that will probably take time&#8212;hopefully Kamino gets better.</p><p><strong>Mike:</strong> There have been attempts at this over the years. There are other protocols like Morpho that I think is more customized and more institutional. But I would say it&#8217;s not so much that Aave isn&#8217;t safe&#8212;it&#8217;s more just like the structure of these lending protocols are such that as a borrower, you have to pick and choose your pools very carefully because you&#8217;re exposed to every single asset in the pool.</p><p>Funny enough, this should be my area of expertise because when I was working in finance 20 years ago, I was creating credit derivatives like CDOs, and these CDOs work the exact same way. Basically you&#8217;re exposed to the entire portfolio of risks, and so the worst risk in the portfolio is the one you&#8217;re exposed to. But I&#8217;m glad I&#8217;m not doing that anymore because there&#8217;s a lot of risk there. I&#8217;m glad I&#8217;m doing HFT now with you because HFT is honestly more fun. When you&#8217;re making money, when you&#8217;re losing money, you&#8217;re not as exposed to these kinds of black swan events that might happen.</p><div><hr></div><h3><strong>Spot-Perpetual Arbitrage Analysis</strong></h3><p><strong>Fede:</strong> Yeah, actually a funny thing about HFT&#8212;I was doing some research. Can I share my screen now?</p><p><strong>Mike:</strong> Yeah, go ahead.</p><p><strong>Fede:</strong> I was doing some analysis and I think that there might be an interesting strategy that we can create between spot and perps. This, for example, is the token CUT. So what I did was&#8212;first of all, I was looking at this token here and it was like, okay, it went up a lot. That&#8217;s why it has a lot of volatility. But if you check the one-second candles, for example, in this one second, each candle is one second. So this is the movement of one second&#8212;it&#8217;s like moving 0.14% per second. It&#8217;s quite huge, the movement that it has.</p><p>But it also carries a lot of risk because you&#8217;re holding this... I don&#8217;t know what they do actually. &#8220;Delivering deep liquidity and native yield.&#8221; But this Katana is not the one for Polygon.</p><p><strong>Mike:</strong> No, I&#8217;ve never heard of this network before.</p><p><strong>Fede:</strong> I don&#8217;t know if Polygon got divided into Katana. I don&#8217;t remember. But then it&#8217;s also like this perpetual, right? And this also moving 0.16% per second. So I was wondering, okay, is there an arbitrage that can be produced here?</p><p>So I spot my pair&#8212;and here I can see the perpetual and the spot. We can see that mostly the perpetual price will be lower than the spot one because if not, you can just short perps and buy spot, right?</p><p>If it&#8217;s the other way around, it&#8217;s simpler to make money because you can just short. But the thing here is what type of strategy can we come up with that can do market making in one while hedging exposure? What I did is&#8212;the spread is very high. So if the price stays in a certain horizon of time and you can hedge the exposure of the price while you&#8217;re doing market making...</p><p>I&#8217;m thinking more like a strategy where you can say, okay, I will allocate in spot a maximum of, let&#8217;s say, one thousand dollars, and in perps I will hedge up to $600. So you can start doing market making and hedging a portion of the assets that you are acquiring. But some of the assets that you&#8217;re going to acquire are going to be reversed. So all that yield should compensate the difference between the spot and the perps, plus the funding rate.</p><p>This was like very last night. I couldn&#8217;t almost sleep thinking how I can improve this graph to incorporate the funding rate plus this thing. But it is nice to see&#8212;for example, you can be quoting selling here and buying here or the opposite to reduce the spread.</p><p><strong>Mike:</strong> So in this chart, is it the top line that&#8217;s the spot?</p><p><strong>Fede:</strong> The spot is this one&#8212;the top one, the one that is higher.</p><p><strong>Mike:</strong> Okay.</p><p><strong>Fede:</strong> Actually I should also add a legend here. The thing is sometimes they are together. But having a legend would be good. Usually spot has less volume than perps.</p><p><strong>Mike:</strong> Yep.</p><p><strong>Fede:</strong> But the thing is that they&#8217;re moving very together. So this is like probably a real HFT thing that we can do.</p><p><strong>Mike:</strong> Yeah, there&#8217;s probably some strategy you can do. If the spot is higher by a certain amount and funding rate is positive&#8212;because you want to probably go long spot and short perp. Usually, yeah.</p><p><strong>Fede:</strong> But that&#8217;s a scenario where spot is higher. In this case, like short pays long. So you&#8217;re rewarded by going long. The thing is that you can&#8217;t really short in spots&#8212;that&#8217;s the problem. You need to have certain assets.</p><p><strong>Mike:</strong> Yeah. You probably have to have it be something like PMM where you want to acquire some position, and that position allows you to short.</p><p><strong>Fede:</strong> Yeah. When you go down. But yeah, there probably is something here.</p><div><hr></div><h3><strong>Condor Update Command</strong></h3><p><strong>Fede:</strong> But that&#8217;s one thing. The other thing that I want to show about Condor&#8212;first of all, if you&#8217;re not updating for a long time, just update via <code>git pull</code>. But if not, I added a new command that is <code>update</code>. And if you run the update right now, it&#8217;ll say you are up to date with the main branch. But if there is a new change on the main branch of Condor, you can just use this command <code>update</code> and you will update your whole Condor system.</p><p>So that&#8217;s really cool because right now you don&#8217;t need to worry about terminating the terminal, all that stuff. You can just run <code>/update</code> in Condor.</p><p><strong>Mike:</strong> Yeah, that&#8217;s good. We&#8217;re making changes to Condor pretty much every few days, so it&#8217;ll be useful for you guys who are using Condor just to run the update command to help you update to the latest version.</p><div><hr></div><h3><strong>Backtesting Philosophy</strong></h3><p><strong>Fede:</strong> Now I want to talk a little bit about backtesting.</p><p><strong>Mike:</strong> Okay, go ahead.</p><p><strong>Fede:</strong> So for backtesting, I&#8217;m very skeptical about people that say, &#8220;Oh no, this backtest is the best backtester that you can have and it will be perfect.&#8221; That&#8217;s all bullshit for me because you will never be able to have a backtesting that in real life works exactly as the backtest. You will never be able to match the same behavior unless you&#8217;re more like a taker strategy. You will never be able to simulate that.</p><p>Why? Because first of all, the order book is FIFO&#8212;First In, First Out. So if I put an order and you put an order behind me, my order has priority. There is a kind of priority here. It&#8217;s impossible to know. Let&#8217;s say that you put $100 in five orders, then I put two orders, and then another guy puts three orders, and then the book was removed $50. You never know if the $50 that were removed are behind me or before me. It&#8217;s impossible to really know where you are in the queue because the exchange will never tell you the order or who is the participant doing this change.</p><p>So that&#8217;s the first thing that is impossible to replicate the real world&#8212;the queue position.</p><p>And secondly, let me show you one market that we trade&#8212;this one, USDT/BRL, for example. See that in the first level, we have $600K and $28K of orders here. Doing a backtesting here&#8212;it&#8217;s like no sense because how can I, and see what is the volume that is actually being traded? If you run a backtest here, this will never be true because there will be a lot of people before you and your order gets filled.</p><p>So that&#8217;s the first point that I want to transmit about backtesting. <strong>It&#8217;s impossible to simulate a backtesting that is like the real thing.</strong> That&#8217;s why I&#8217;m very pro of using the backtesting as a proxy. How? <strong>The backtesting should help you understand the sensitivity that each of your configuration parameters has.</strong></p><p>Let me give an example. I have this parameter that tells me how much portfolio allocation I will put around the mid price from the portfolio that the bot has. Okay, I want to understand what happens if I move it to 10%, to 5%, to 2%, and that will explain me how my bot will behave if I move this parameter.</p><p>So for me, with backtesting, <strong>you&#8217;re not trying to say, &#8220;Okay, this is perfect.&#8221; You&#8217;re just trying to say, &#8220;Okay, what would happen if I use this parameter? What would happen if I use this other parameter?&#8221;</strong> And the flow is more like: use the backtesting as a research tool, then deploy a bot with that, and understand what is the difference between what you backtested and what is the actual result.</p><p><strong>Mike:</strong> Okay, got it. So let me just paraphrase what I think I heard you say: don&#8217;t treat backtesting as a prediction for exactly what will happen when you deploy it live. Instead, because these strategies typically have 10 or 20 different things you can change&#8212;different parameters&#8212;you should use backtesting to gauge the sensitivity of one parameter versus another. It&#8217;s assessing it on a relative basis instead of on an absolute basis.</p><p><strong>Fede:</strong> Exactly. It is more like on a relative basis and also to discover how your strategy works, how it behaves, all that stuff. And also making sure that your strategy is doing what you&#8217;re expecting. That&#8217;s the other thing.</p><p>And another thing&#8212;for example, backtesting market making strategies is, for me, impossible to have a real simulation. Let&#8217;s say that your strategy puts orders around mid price, right? And when one order gets filled, usually you have a few options. You can have a time that will block the replacement, you have a distance that will block the replacement. You can have different mechanisms to block a replacement.</p><p>But actually, the market maker will always place orders around the mid price with a different shift or with a different spread based on volatility. But the shift will be based on the inventory that you have, or the shift will be based on the prediction you have for the market, and the spread can be modified by the volatility.</p><p>So basically you&#8217;re going to place two orders, and based on the fill, you will say, okay, this order will be able to be replaced when this condition is met. Perfect. <strong>If the real bot and the backtesting at some point have one fill that is different&#8212;one order fill that is different between the backtesting and the real&#8212;the following path is completely random</strong> because one will wait and the other one will continue replacing.</p><p>So at that point, the coincidence is broken. The backtesting to simulate reality is as fragile as one order mismatch. Because after there is another fill, the path is completely different.</p><p><strong>Mike:</strong> Path dependency is what you&#8217;re trying to say.</p><p><strong>Fede:</strong> Path dependency here. So that&#8217;s why what I mentioned&#8212;thinking about having the same result of a backtesting in a real bot is absurd. <strong>My recommendation is treat it 100% as parameter research.</strong></p><p><strong>Mike:</strong> Yeah, I think Raj also agrees. He said in a comment, &#8220;Yeah, he likes backtesting to see how the model will behave, how it skews mid price, how wide is the spreads.&#8221; But yeah, he doesn&#8217;t trust backtest P&amp;L. Raj, I think that&#8217;s actually also the approach we recommend as well. So it&#8217;s good to see that you&#8217;re already taking that approach.</p><div><hr></div><h3><strong>Backtesting Engine Demo</strong></h3><p><strong>Fede:</strong> So well, now let me show you what the backtest looks like. For that, I will start in Hummingbot. The good thing is that yesterday I backtested 11 days. But the good thing is that the way the backtesting works is that we use the same controller code that you run in production. So the backtesting actually loops and executes the method that the controller has to take the decisions.</p><p>And the abstraction that we have is that the controllers of these strategies create executors. So these executors are like standardized execute actions in exchange. So it&#8217;s very easy for us to simulate that specific executor&#8217;s behavior. So that brings us like extensibility in terms of how we can test or backtest different types of strategies. We can backtest directional strategies, we can backtest market making strategies.</p><p>And the addition of this last month was the usage of the position hold. Because before we didn&#8217;t have position hold. Now we have, and in order to backtest it, we had to update the backtesting engine for that.</p><p>Let me revert because I was doing this... let me use the one that is in main. I added a script here that is <code>backtest_pmm_mister</code>. It is just a CLI. And basically...</p><p><strong>Mike:</strong> Yeah, I should mention, these backend improvements were done in the latest release, 2.14. So that was just released a couple days ago, on Tuesday. And if you look at the scripts folder in 2.14, you&#8217;ll see these three demo backtesting scripts in the scripts folder. And so this will help you get a feel for how to backtest using the API.</p><p><strong>Fede:</strong> This is using Hummingbot.</p><p><strong>Mike:</strong> Oh, sorry. Yeah, using Hummingbot. And then it&#8217;s also improved the backtesting endpoints of the API, so that now we can also use it in Condor. So overall, 2.14 actually adds a lot of key backtesting improvements, which is why we&#8217;re discussing it today.</p><div><hr></div><h3><strong>PMM Mister Strategy Parameters</strong></h3><p><strong>Fede:</strong> Yeah. To not enter into too much details about the strategy because it&#8217;s complex&#8212;this PMM strategy has a lot of parameters. Basically we have this method that we can build a config. That is called at first. And then we have initializing the backtesting engine, run the backtesting with a trade cost&#8212;while here it&#8217;s hardcoded, it should be using the trade cost. We are not passing the trade cost, but while it&#8217;s hardcoded here, you can change it or you can add it here.</p><p>And then we have this backtesting result that gets the backtesting figure. Then it writes in an HTML figure&#8212;this is a Plotly figure&#8212;and then we are going to render it in the browser.</p><p><strong>Mike:</strong> Yeah, I was just noticing how short that file is. Does that mean the backtesting engine is kind of generic across all strategies and doesn&#8217;t really need to know much about how this particular strategy is designed?</p><p><strong>Fede:</strong> Exactly. It&#8217;s completely generic because remember that the only output of a controller is an execute action. So you can just abstract that for all the different strategies that you want to backtest.</p><p><strong>Mike:</strong> Got it.</p><p><strong>Fede:</strong> So, here this is a dictionary that we&#8217;re using. As you can see, we&#8217;re using PMM Mister. The controller type is generic. The connector name is the connector that we pick. The trade pair, the total amount quotes. Then the leverage. This <code>portfolio_allocation</code> is basically how much&#8212;let&#8217;s say that we have here $1,000. The 2% would be, okay, you can put the 2% of the $1,000 around the mid price at a time.</p><p><strong>Mike:</strong> Okay.</p><p><strong>Fede:</strong> So this will put $20 around the mid price.</p><p>Then we have what is the target portfolio&#8212;50% in base asset. So it will try to acquire a target of 50%. The <code>min_base_percentage</code> is how minimum I will keep the level of the base asset in inventory. So as it&#8217;s 30%, and this starts with zero position, it will try to acquire the base asset at minimum 30%.</p><p>What that means is that it will not sell&#8212;it will not place sell executors until it reaches 30% of position. So at the beginning, it will be like an onloading phase where the executor is going to be buying, buying.</p><p><strong>Mike:</strong> Are you assuming that you&#8217;re starting with zero base? You&#8217;re starting with quote?</p><p><strong>Fede:</strong> Yeah. It is assuming starting with zero. You can also put initial balances here, but I recommend assuming it starts with zero.</p><p><strong>Mike:</strong> And just to clarify&#8212;so the portfolio allocation is 0.02, so does that mean you&#8217;ll be setting 2% of your overall total amount quotes in orders?</p><p><strong>Fede:</strong> Yeah, around the mid price.</p><p><strong>Mike:</strong> Is that typical? Because 2% seems pretty low as a percentage. Is that typical?</p><p><strong>Fede:</strong> Yeah. But see this value that is <code>max_active_executors_by_level</code>. This means, let&#8217;s say that I have&#8212;let&#8217;s keep it simple&#8212;I have two levels. Only one sell and one buy. This will have 2% around mid price. Let&#8217;s say that the buy level gets filled. It will place a take profit, right? But if the price continues going down, it will be waiting until it hits the take profit up to this <code>activization_time</code>&#8212;you told me this word does not exist in English, but I will need to change it&#8212;but it will wait 1,660 seconds until it considers that part of the inventory.</p><p>Why? Because we are giving it the chance to hit the take profit. So if it didn&#8217;t hit the take profit, it will wait up to 1,660 seconds. But we want to still place more orders. We don&#8217;t want to wait all the time because if not, the bot will be stuck.</p><p>So this <code>max_active_executors_by_level</code> tells you that you&#8217;ll have at maximum 20 times the first level to replace.</p><p><strong>Mike:</strong> Okay.</p><p><strong>Fede:</strong> So it will place the 2% again, 2% again, 2% again, in another buy executor. But what happens here is&#8212;in order to place another executor for the same level, it has to pass the <code>cooldown_time</code> that is 30 seconds.</p><p>So we need to wait 30 seconds to replace another one. And also it will need to pass the <code>price_distance_tolerance</code>. That is, I will not be able to place another one if there is a minimum distance of 0.02% or 0.002%.</p><p><strong>Mike:</strong> Okay.</p><p><strong>Fede:</strong> So with this and this, we are able to restrict the amount of replacements that will happen while I am trading with a reactive level. This gives you a lot of flexibility in terms of how aggressive you want to be.</p><p><strong>Mike:</strong> Okay, got it. Let me put in some numbers so I make sure I understand how this works. So is it like, let&#8217;s say you start with a thousand dollars and you have 0.02 portfolio allocation. So it means that you&#8217;re basically putting like 1% above the mid price per side, right?</p><p><strong>Fede:</strong> Per side, yeah.</p><p><strong>Mike:</strong> So let&#8217;s say basically it&#8217;s like a $10 buy order, a $10 sell order.</p><p><strong>Fede:</strong> At first, no. At first, no. Because if it&#8217;s zero inventory, it will not be able to place sell.</p><p><strong>Mike:</strong> Okay, fair enough.</p><p><strong>Fede:</strong> It will try to only place buy orders because it is trying to get up to the minimum base percentage.</p><p><strong>Mike:</strong> And then, the way this works is that because the max executors, max active executors by level is like how many times can I replace my buy order, for example. If it gets filled, I place another buy order. I don&#8217;t want to do that forever. So I can do that a maximum of 20 times, assuming the market&#8217;s continuing going down. Is that right?</p><p><strong>Fede:</strong> Perfect what you said.</p><p><strong>Mike:</strong> Okay, gotcha. That means if I&#8217;m placing a 1% buy order, the max I&#8217;ll ever have on the book is 20%, on the buy side.</p><p><strong>Fede:</strong> Yeah. Go student.</p><p><strong>Mike:</strong> Okay, okay. Nowadays&#8212;don&#8217;t worry, I&#8217;m going to pass all this into AI afterwards and have it write down a real transcript because yeah, it&#8217;s... but I know what you mean. I actually understand now why backtesting is so important because you have all these different interlocking kind of parameters that work together.</p><p>So it gives you a lot of flexibility into how to design your market making strategy, how much inventory risk you want to take, how quickly you move up to your inventory percentage, how much deviance you have. But all these things can be changeable. So how do you know what the right configuration is?</p><p><strong>Fede:</strong> Yeah. That&#8217;s a really important thing that I think we should be doing. For me, this is a place where you do, okay, let&#8217;s try this parameter in 5, 10, or let&#8217;s say 5, 15, and 30. Let&#8217;s try having a grid search with very big values to understand what is the P&amp;L, what is the volume generated, what is the number of position holds, all that stuff.</p><p>Do some analysis and then I will continue doing search. My goal would be to see if we can do an auto research with Claude.</p><p><strong>Mike:</strong> Right?</p><p><strong>Fede:</strong> If we can summarize how is the output of the backtesting into something that Claude can understand and he can be searching parameters. That would be cool.</p><p><strong>Mike:</strong> That should be doable actually. I think all you really need for auto research is some type of definable objective and things you can change. And we have that already. And I think there&#8217;s also&#8212;I would bet it changes a lot depending on the token that you&#8217;re trading.</p><p><strong>Fede:</strong> That changes a lot.</p><p><strong>Mike:</strong> Yeah. So there&#8217;s many different variables here that you can play with.</p><div><hr></div><h3><strong>Running the Backtest</strong></h3><p><strong>Fede:</strong> Yeah, that&#8217;s true. But now what I want to show is what it looks like in backtesting, and I want to show what happens if I do a change on one parameter so we can visualize what is the position hold or how the position hold is actually working, right?</p><p>So let&#8217;s say that we keep this one like 2% portfolio allocation. The way to run it is <code>backtest pmm_mister &lt;number of days&gt;</code>. Let&#8217;s put just like 0.5 days.</p><p>It&#8217;s important for doing backtesting on PMM Mister, for example, or a PMM controller&#8212;it doesn&#8217;t make sense at all to do it in one-minute candles. Because personally, when I run market making bots, I have multiple fills in the same minute&#8212;like sometimes more than 30 fills.</p><p><strong>Mike:</strong> Yeah.</p><p><strong>Fede:</strong> So if not, the backtesting will only be able to take one fill in that minute. So <strong>one-second candles is crucial.</strong></p><p>The only exchange that we support here that provides candles in one second is Binance Spot. So you probably need to buy a server in a region where Binance is allowed because the data is public, and you can either run the backtesting on the server or you can use the Hummingbot API.</p><p>But another thing that you can do is to use Tailscale. That lets you connect up to 100 devices for free in your private network. So what you can do with Tailscale is you can use it&#8212;let&#8217;s say you have a server in Tokyo&#8212;you can use it to forward your request through Tokyo. So that&#8217;s when it comes useful.</p><p><strong>Mike:</strong> Okay. Can you just explain quickly why do you think it doesn&#8217;t make sense to do backtesting if you have one-minute candles?</p><p><strong>Fede:</strong> Yeah, because that will depend a lot on the type of strategy. If you are doing, for example, a directional strategy that is taker&#8212;yeah, it would be okay to do it in one-minute candles. It&#8217;s just to evaluate the signal if the resolution is in that order. But if it is a market making strategy where you have multiple fills in the same minute, the backtesting will not be able to see in the same candle where it goes up and down.</p><p>So it&#8217;s impossible to know how many fills you have. The only way that you have to evaluate if there were multiple fills is if you are using the one-second candles, because you have each candle to evaluate that move.</p><p>Also, this engine is also&#8212;I would say it is also possible to backtest directly with trades, which I think will be the next step if you want to go deeper&#8212;to backtest directly with trades. For now, I will just recommend one-second candles because there is&#8212;here&#8217;s the point of flexibility&#8212;lower than one-second resolution for me would be considered overfitting. You would not be able to get a higher result or a better result in a lower resolution than that.</p><p>That for me is not enough. Comparing one second with trades would be mostly not enough. And I can tell you this by looking at the market. Let&#8217;s say for example that we go here to BTC/USDT, let&#8217;s see in one second&#8212;this is probably the biggest market on Binance. Let&#8217;s see. No, today was USDC/USDT, but the second biggest market that has 1 billion of trading volume is BTC/USDT.</p><p>And this is the one-second candles, guys. So this movement in the second was 0.001%. So the last minute the move was 0.07%. So going to a lower value than this is&#8212;I don&#8217;t think that makes sense. I think that would be more considered like overfitting. And the effect that I mentioned about the order book priority just breaks everything. So for me, as I mentioned, <strong>use it as a proxy, not as ground truth.</strong></p><div><hr></div><h3><strong>Understanding the Backtest Results</strong></h3><p><strong>Fede:</strong> So well, let&#8217;s run backtesting with this. It says the time that took to process half a day was 34 seconds. I want to do some benchmarks&#8212;like what happens if I increase the time to, let&#8217;s say, one day, two days. Maybe there is an exponential decrease and maybe it will be better to partition and chunk the backtesting. That&#8217;s more to understand the behavior. But overall it is quite good. 34 seconds, 35 seconds for the candles&#8212;that is the result that we have.</p><p>And here it also created this chart. Let me see if I can zoom in. That&#8217;s not good. It also created these charts that is the Plotly chart that it generates.</p><p>There are three panes. <strong>The first pane shows the candles and the executors that it created. The second pane shows the P&amp;L and the volume traded.</strong> The volume is this one from here that has this axis here. And also has different P&amp;Ls. We have the executors realized P&amp;L, the position realized P&amp;L, the position unrealized, and obviously the difference of those two and the total P&amp;L.</p><p>So <strong>the yellow line is the total P&amp;L. The purple is position P&amp;L.</strong> See that the P&amp;L... and here the last pane is the position. See that as soon as we are adding more position, the P&amp;L that is the purple one starts moving a lot.</p><p>Here, for example, we could take some actions to, okay, let&#8217;s reduce the position because we get some profits. So those are the things that you can probably improve. But see that we accumulated almost $300 in position. We generated... the interesting thing is to say, okay, the difference between the yellow line and the purple line&#8212;</p><p><strong>Mike:</strong> The yellow line is&#8212;so the purple line is the unrealized?</p><p><strong>Fede:</strong> The yellow is total P&amp;L, and the purple is the position unrealized P&amp;L. So the difference between the two of them is the position realized plus the executor&#8217;s P&amp;L. Here you can see how much this distance&#8212;if the executors are taking profit, it will be increasing.</p><p><strong>Mike:</strong> Got it. Okay. Got it. Because the executors are basically what you&#8217;ve already realized and the position is unrealized if you&#8217;re accumulating it.</p><p><strong>Fede:</strong> Yeah.</p><p><strong>Mike:</strong> And then I also see a position realized P&amp;L.</p><p><strong>Fede:</strong> Yeah. That&#8217;s when you are selling and moving that sell executor to position hold&#8212;so you&#8217;re actually reducing the position. See for example, here, see in this case that we have $370 in position, here we have $340, so basically $30 were reduced from the position.</p><p><strong>Mike:</strong> Got it.</p><p><strong>Fede:</strong> There is a parameter that I added that is called profit protection. That will only let you create sell executors if your position hold is positive. So for holding a position on the sell side, you can only be in profit. That&#8217;s a good one to protect the P&amp;L.</p><p><strong>Mike:</strong> Okay. And this Plotly chart&#8212;when you ran the script, this appeared in a browser, right?</p><p><strong>Fede:</strong> Yeah.</p><div><hr></div><h3><strong>Understanding Position Hold</strong></h3><p><strong>Mike:</strong> And now let me show you these&#8212;it is interesting that this is where we can see the actual backtesting mechanics. See that here, for example, these that are white are executors that we placed and were refreshed by the early stop.</p><p><strong>Fede:</strong> Basically the orders we placed that were not filled. Is that correct?</p><p><strong>Mike:</strong> Yeah. Orders that we placed that were not filled.</p><p><strong>Fede:</strong> So see that it placed the order here. The market never reached out to this point. So it never considered it filled.</p><p><strong>The ones that are green are the ones that we placed and at some point the take profit was hit.</strong></p><p><strong>The ones that are blue&#8212;usually this happens in a downtrend&#8212;are the ones that we filled, but the market went down, so I never recovered to hit the take profit.</strong> So we started accumulating position. So this moves to the position hold.</p><p>See that at this point we are&#8212;here we are saying, okay, this will go to the position hold. And here the position hold moves from 69 to 79. We said that we are going to put 2% of the inventory, so that&#8217;s normal&#8212;that&#8217;s $10.</p><p><strong>Mike:</strong> Yeah, I see.</p><p><strong>Fede:</strong> And I think we had a minimum base percentage at 0.3, so it&#8217;s trying to get up to $300 of position.</p><p><strong>Mike:</strong> That&#8217;s another interesting thing because as you see here, there are never sell orders like these white things. Let&#8217;s say that we are analyzing these white that are not refreshed. All these white orders are below the price.</p><p><strong>Fede:</strong> You see this, right?</p><p><strong>Mike:</strong> What that means is that we are not placing sell orders. Why? And the answer is that we are still below the 30%.</p><p>But let&#8217;s see a place where we are above. So here we started being above... let&#8217;s cut from here to here.</p><p><strong>Fede:</strong> See that here&#8212;up to this point, we were not placing sell orders. And here we turned to above 300. So here we should be starting to place orders. Let&#8217;s see if that happens. Let&#8217;s zoom into this part.</p><p>See that here we have the first white thing. It should be&#8212;it should start here, actually. So let&#8217;s see if there is something here. These are greens&#8212;green executors or green lines that go from up to down. It&#8217;s because those are sells that are taking profit.</p><p>So here we have the first&#8212;and here. Okay, here we also have&#8212;let me see more here. Let&#8217;s say it should&#8212;we should see it starting here. Okay, perfect. It&#8217;s perfect. See this? Here we have 298 position. And here we move to 300. <strong>See that when we moved to 300, we have the first sell executor, which is this one.</strong></p><p><strong>Mike:</strong> So it&#8217;s... and here we have the first sell that was not filled. So that is how the position is actually accumulated.</p><div><hr></div><h3><strong>Q&amp;A: Take Profit vs Hanging Orders</strong></h3><p><strong>Mike:</strong> Let&#8217;s try to answer a question from the comments while we&#8217;re doing this. Raj asks, &#8220;Why do you use take profit and stop loss for market making strategies?&#8221; So what he does is he matches the buys and sells to try to figure out the spread.</p><p><strong>Fede:</strong> Yeah, actually the approach that I think he&#8217;s taking is similar to the hanging orders approach that was in the original Hummingbot.</p><p><strong>Mike:</strong> Yeah.</p><p><strong>Fede:</strong> No, actually it is the same thing as well. It&#8217;s not the same thing that you are doing&#8212;it&#8217;s very similar to what you&#8217;re doing. I am not using stop loss. I&#8217;m only using take profit.</p><p>And you can think&#8212;imagine that you&#8217;re placing two orders to capture the spread. If one order gets filled and you are going to leave the other order in the market&#8212;right, so that&#8217;s your approach.</p><p>My approach is: I have these two orders, and if this one gets filled, I can place the take profit here or I can place the take profit above. So my approach is more flexible because once my order is filled, I can decide what is the spread that I want to capture.</p><p>Like almost&#8212;no, at no time do you get&#8212;let&#8217;s say you put a spread of 0.02%&#8212;almost never will the two orders be executed at the same time. And the thing is that once one gets executed, then at certain seconds the other one is executed.</p><p>So my approach is: instead of taking the other pair of the order&#8212;the take profit of this one or to make the spread&#8212;I have a configurable spread that I want to capture that might be lower than that spread or might be higher, depending on the situation that I am.</p><p>Plus if you think about it, let&#8217;s say that you want to build inventory, but you also want to take profit from the spread. You can also only put buy orders, and when they are filled, then you can create a take profit to be the other layer. But if you put the two of them and you wanted to buy and your sell order was filled, then you&#8217;re in a worse scenario than where you started.</p><p>So with this scenario, you can enforce, okay, I will enforce the buy order first before the sell order, because I want to build inventory. So with this approach, you can also position from one side to the other. Those are the reasons why I like this approach more&#8212;of placing the orders.</p><p><strong>Mike:</strong> Yeah. The way I would try to explain this is I think we made an improvement to this overall market making strategy when we went from the V1 strategies to the V2 strategies. And one thing that gives you is you can handle take profit and stop loss at the individual order level.</p><p>So you can replace an order level, configure exactly how you want to take profit and stop loss on that filled order. But you can also control things at the portfolio level. This is when it&#8217;s like you&#8217;re only placing 1% of your order in orders, how often do you replace that level? How often do you build inventory overall?</p><p>So there&#8217;s an individual order level in terms of how you handle fills, and then there&#8217;s a portfolio level in terms of how do you handle your overall inventory you&#8217;re building and reducing. So if you think about it at these two levels, I think the new approach gives you more flexibility now to handle different things.</p><p>And I think actually that&#8217;s why backtesting is important&#8212;because how you handle orders at an individual level does affect as well how you treat things at the portfolio level. So being able to tune parameters that affect both&#8212;for example, some of the parameters in PMM Mister are affecting individual orders and how you handle them. Other ones are affecting how much inventory you want to build, how often you cool down before you replace executor levels, those kinds of things. So again, you can just try lots of different things and see what the effect is from a backtesting approach.</p><div><hr></div><h3><strong>Flexibility of Position Management</strong></h3><p><strong>Fede:</strong> Yeah, and also I would like to add&#8212;let&#8217;s say let&#8217;s follow this example. Let&#8217;s say that here we build inventory that we want to have between 30% to 40% of the inventory. So let&#8217;s say that here we reach up to 300 and 70&#8212;no, it is... let&#8217;s say that we want to have between 300 and 200.</p><p>So here we are allowed to place buy and sell orders, but then we ended up having $300 of inventory. Now my bot should not acquire more inventory, right?</p><p><strong>Mike:</strong> Okay.</p><p><strong>Fede:</strong> So in that case, but I don&#8217;t want to stop the execution and I have positive P&amp;L on the bot. So in that case, I can still place sell executors that when they get filled, I place a buy order.</p><p>So if the market goes down again, I am just making profits. But if it&#8217;s going up, I&#8217;m selling and helping the position&#8212;so I&#8217;m reducing the overall position and taking profit of the position generally. So this approach gives you flexibility of, okay, I want to generate yield from the mark outs, plus I can manage the position by holding at the end.</p><div><hr></div><h3><strong>Comparing Portfolio Allocation Settings</strong></h3><p><strong>Mike:</strong> Can you maybe run the backtest again, but maybe we change like min base percentage at 10%? Maybe just so it&#8217;s 10% to 30%&#8212;you can see.</p><p><strong>Fede:</strong> No, I would like to put portfolio allocation into 10%. But before that, let me show you another thing that is important here that I didn&#8217;t mention. But see that there is a shadow here that shows how many active executors at a time.</p><p>So you see that we put 20 and we are never using 20. We are using a maximum seven executors at a time. So this is another thing that you can see&#8212;if this parameter is actually used or not. This was max active executors by level. We put 20 and it was never filled.</p><p>Let me show you what happens if I put, for the same strategy, 10% of portfolio allocation. Keep this in mind.</p><p><strong>Mike:</strong> Okay.</p><p><strong>Fede:</strong> For the comment&#8212;yeah, for the unmatched orders, the take profit is like the other leg. Imagine that instead of placing the two orders and being random which one you fill first, you can place the order that you want of the two of them, or you can place the two of them, but each can have a specific take profit that you can configure at the level that you want.</p><p>At the same time, you can also&#8212;there is another strategy, another market making one that just has orders. So you can do without take profit, just with order executors. But yeah, see this example.</p><p>What we have here&#8212;I put the portfolio allocation at 10%. So when there is position hold, see, position on hold is increasing much more faster than before. Before, around here we got up to 30%... let me see if I can put them side to side.</p><p><strong>Mike:</strong> And the difference is now you&#8217;re placing 10% of your total inventory in orders. So it&#8217;s 5% on each side per level. Is that...</p><p><strong>Fede:</strong> Yeah, exactly.</p><p><strong>Mike:</strong> See that? This one was the first one. We build inventory progressively. And this one is the new one&#8212;see that we are building inventory very fast. We are at $300 here already.</p><p><strong>Mike:</strong> All right. What happens here? Can you tell me, Mike, what happens in this part?</p><p><strong>Fede:</strong> We are not trading.</p><p><strong>Mike:</strong> Yeah, you&#8217;re not trading because&#8212;so I think I know why actually. So I think it&#8217;s because before you were buying because you were still within the minimum base percentage and max base percentage. At that point there, you hit the max base percentage, so you&#8217;re not&#8212;</p><p><strong>Fede:</strong> Yeah, the 0.7.</p><p><strong>Mike:</strong> Yeah. But you&#8217;re also not selling, I think, because you have that profit protection.</p><p><strong>Fede:</strong> True.</p><p><strong>Mike:</strong> So you don&#8217;t want to sell what you accumulated for lower than you bought it for.</p><p><strong>Fede:</strong> Exactly. That&#8217;s exactly the reason why it stopped trading here. Because as we exposed a lot of money, the market went down. <strong>So if the market never recovers from this point, this bot will be stopped forever.</strong></p><p>So here you can understand how the portfolio allocation will affect the trading activity&#8212;the continuity of your trading activity. See that here, it stopped trading because the unrealized of the position is negative and we have the cap of the position. So it&#8217;s not able to start selling.</p><p>See that here&#8212;what happens is that once the position becomes profitable&#8212;that here. Okay, I need to use this one. Sorry. <strong>See that here the position becomes profitable.</strong></p><p>See here it&#8217;s negative. Here it&#8217;s profitable. So here when it&#8217;s profitable, see that it starts placing sell executors again.</p><p>And the ones that are purple are the executors that ended up in position hold. So you see that here we start having a lot of these purple ones. They are reducing the position now. So they&#8217;re using the position that we created.</p><p><strong>Mike:</strong> It&#8217;s selling those at a profit then, because...</p><p><strong>Fede:</strong> It&#8217;s selling the profits. See that here it says position realized P&amp;L $1.80. So it actually made a profit from the position itself. And the position that we still hold has $2 profit, $3 profit.</p><p><strong>Mike:</strong> Okay. Nice. Nice.</p><p><strong>Fede:</strong> Here we are selling more and see that now the position realized is $3.40. But unfortunately here we are buying a lot again. You see, all these blues are going to cost very much money.</p><p><strong>Mike:</strong> Yeah.</p><p><strong>Fede:</strong> But yeah, here you can see how&#8212;and this is normal for a market maker, right? When the market goes down, you accumulate position. When the market goes up, you free up that position.</p><p>So well here, there is a lot of party&#8212;see, this movement is a complete party.</p><div><hr></div><h3><strong>Executor Abstraction and Generic Backtesting</strong></h3><p><strong>Mike:</strong> Yeah. And I think actually this kind of illustrates some of the reasons why I think users should want to use this more advanced version of the PMM strategy instead of the V1 version. Because the V1 version just places orders. And so it doesn&#8217;t really factor in the breakeven price or the cost of how much you incurred to accumulate that inventory.</p><p>Whereas here, because you&#8217;re tracking the position, you can basically say, okay, you know what the breakeven price was. And so you can have a parameter that says, don&#8217;t sell at a loss. And you can prevent&#8212;I think one of the biggest risks of the original strategies was you are always buying high and selling low and not taking into account the breakeven price of your positions.</p><p><strong>Fede:</strong> Yeah, that&#8217;s exactly what the profit protection does. And if you think about it, it&#8217;s very similar to Grid because if the market goes down, you&#8217;re going to accumulate exposure. But it will only sell in profits. That&#8217;s similar.</p><p><strong>Mike:</strong> Yeah.</p><p><strong>Mike:</strong> Actually, I have one question. I was thinking this earlier. I think other people in the audience may have the same question. You mentioned earlier that this works because we&#8217;re using this concept of an executor to standardize what happens when you trade. Does this backtesting work on every strategy or every executor, or are there limitations?</p><p><strong>Fede:</strong> There are limitations. <strong>You can only backtest the strategies that are using position executor, DCA executor, or grid executor.</strong> The rest of the executors are not covered. Some for obvious reasons&#8212;like the arbitrage executor and the cross-exchange market making executor will never be backtestable with this framework because for that you need order book data. So it&#8217;s not possible.</p><p><strong>Mike:</strong> Okay, yeah. In the future, we probably will add the order executor.</p><p><strong>Fede:</strong> Yeah.</p><p><strong>Mike:</strong> But maybe within that executor mix, so let&#8217;s say I have a strategy that uses order executors&#8212;does that, like, can it be any strategy, like a generic controller can also now do backtesting?</p><p><strong>Fede:</strong> Yeah.</p><p><strong>Mike:</strong> Or do I have to use a certain framework? Oh, wow. Okay. Great. Okay, that&#8217;s a change from before, right?</p><p><strong>Fede:</strong> Yeah, that&#8217;s a change from before. There is still some knowledge that has to be added to the design of the controller because the update process data&#8212;we only run once at the beginning. This is to optimize the metrics calculation.</p><p>Now I will show you, like for example, the Bollinger one. Let me see Bollinger&#8212;that is to optimize the parameter calculation. And then the method that we&#8217;ll run time over time will be the method of <code>determine_execute_actions</code>.</p><p>So you have to keep in mind that the logic of the indicators or the data that you are going to use should be in the <code>update_process_data</code>. And the method will be executed only once. And all the logic that computes, okay, my executor is this, my data is this&#8212;all that stuff, that should be in the <code>determine_execute_actions</code>. Like calculations probably&#8212;I need to add an explanation better of that.</p><p>But see that here, I&#8217;ve backtested a Bollinger controller. Unfortunately it lost money&#8212;that was $6. But it&#8217;s just a random Bollinger trade. See there?</p><p><strong>Mike:</strong> Can you share the Plotly for that as well?</p><p><strong>Fede:</strong> Sorry, I&#8217;m showing it but on the other screen. See that this controller does not have position hold because the Bollinger&#8212;the directional trading&#8212;these versions didn&#8217;t include position hold. But probably we can add a version of directional trading with position hold.</p><div><hr></div><h3><strong>Condor UI for Backtesting</strong></h3><p><strong>Fede:</strong> And this is the other visualization that you can run inside Hummingbot. I&#8217;m trying to move this, but right now I feel more confident with Plotly for the charts. But there is already an implementation of this in Condor.</p><p>And see that here, this is a new thing&#8212;the bot trade interface. Let&#8217;s say that now I put USDT/USDT. The trading interface now shows the latest executors that you deployed and the position hold. If you have position hold, that is nice because it takes the real position that you are holding. You can also change the timeframes here, all that stuff.</p><p>We also have this bots page that has the controllers where you can see the controller code if you want, and you can also create a new config for this controller. Here&#8217;s the PMM Mister&#8212;the one that we&#8217;ve been talking about is here.</p><p>Then we also have the configs that we have loaded. So see that here I have this config. I can copy and clone into a new one if you want to create a variation of it. Like this.</p><p>The archives is not yet there. I&#8217;ll work on it probably next week to visualize the previous bot executions, but I still need to improve it. Here we have all the executors, but I need to improve the visualization.</p><p>And here we have the backtest&#8212;also here. As you can see, this is a backtesting of Bollinger V1. Here you can see the config that was backtested. Here you can see the actual candles.</p><p><strong>Mike:</strong> Is this backtesting the same backtesting that we just did in Hummingbot?</p><p><strong>Fede:</strong> Yeah. The engine is the same. The chart is not, but I&#8217;m trying to improve it to have a very similar experience.</p><p><strong>Mike:</strong> Yeah, I have a tip actually. So you may want to check out a library called Apex Charts. Because you&#8217;re using JavaScript for Condor, right?</p><p><strong>Fede:</strong> Yeah.</p><p><strong>Mike:</strong> So yeah, because when I created the reporting dashboard last night for using the old Datadog data, I just asked Claude to find a lightweight chart library that allows you to zoom and pan. And so it recommended Apex Charts.</p><p><strong>Fede:</strong> Okay, I would check it out.</p><p><strong>Mike:</strong> For that one.</p><p><strong>Fede:</strong> I would check it out. But for now, I have this. And for&#8212;I think that if there is one like PMM Mister&#8212;because sometimes it takes a little bit too long to load. I need to improve loading a lot of stuff.</p><p>This is PMM Mister. See, it is much more buggy.</p><p><strong>Mike:</strong> Yeah, I can check out the front end actually. It is probably something&#8212;it probably has to do with some type of Ajax JavaScript thing that you&#8217;re doing. Because I think you&#8217;re trying to load it dynamically each tab, right? When you click on it.</p><p><strong>Fede:</strong> No. Yeah, yeah. That&#8217;s because the number of data that comes is a lot because you&#8217;re receiving a lot of executors, so you cannot load everything in memory. Imagine that you have 100 backtestings run&#8212;it will explode directly. So you need to do it dynamically. But as it&#8217;s a lot of data, see that it is slow.</p><p>But this backtest is for&#8212;</p><p><strong>Mike:</strong> Yep.</p><p><strong>Fede:</strong> But it&#8217;s almost the same data that I show in Plotly. That here we have. But this backtest, as I mentioned, is in one minute. That&#8217;s what I think is&#8212;it&#8217;s not true. They are not. I will not be confident on this. But yeah.</p><p><strong>Mike:</strong> Yeah, basically.</p><div><hr></div><h3><strong>Multi-Server Deployment</strong></h3><p><strong>Mike:</strong> Let me answer a couple questions from the audience while we&#8217;re doing this. So just, I would say, in summary&#8212;this is a new interface in Condor, this backtest page. But yeah, I recommend if you&#8217;re interested in checking out&#8212;try out this backtesting interface, but also as we showed earlier, try the backtest scripts directly that are using Hummingbot because that way you can get a low-level understanding of how the backtesting works.</p><p>In addition to just running it in the UI, Tiger Trade asks, &#8220;Can I run executors on different locations like Binance Tokyo?&#8221; And yeah. Fede, do you want to take this one?</p><p><strong>Fede:</strong> Yeah. In that case you will need to have a Hummingbot API server in Tokyo, and you will need to have a Hummingbot API server in Singapore, and each API can run executors. So that would be the way that you can do it.</p><p>But from a single&#8212;but from a bot running from a bot, it will not be possible because a bot just runs on one machine.</p><p><strong>Mike:</strong> Yeah. Also, I think it&#8217;s important&#8212;the concept of executors is a software-level abstraction. So it&#8217;s basically the way to standardize the trading activity that happens on spot and perpetual exchanges. So you can basically apply an order executor on different types of exchanges and have it deliver the same result back to you.</p><p>That&#8217;s why we can backtest using candles, because we&#8217;re taking advantage of this abstraction. However, these executors are being run by a certain server, right? The server is the Hummingbot API that you&#8217;re deploying on AWS Tokyo or in AWS Singapore to run it.</p><p>So that&#8217;s why I would say the way that I recommend starting off is just load Condor locally. So you have an understanding of having API running locally, have Condor running locally. And then once you&#8217;re comfortable with that, then you can deploy the API on a server and still connect. You can still use your Condor locally, for example, to control that server that&#8217;s running in Tokyo.</p><div><hr></div><h3><strong>Co-location and Latency</strong></h3><p><strong>Mike:</strong> Another question&#8212;let&#8217;s see. Yeah, so Tiger as a follow-up asks, &#8220;Is it possible to run an abstraction in the bot and send RPC commands to Bybit for execution?&#8221;</p><p>I think that&#8217;s actually what&#8217;s happening. Maybe I&#8217;m not understanding what your question is, but I think that&#8217;s actually what&#8217;s happening because the API is talking directly to Bybit or Binance. That&#8217;s why people run Hummingbot because it&#8217;s an open source framework that integrates directly to the exchange with no intermediary in the middle.</p><p>So when you run an executor, you&#8217;re basically telling the server to connect to the Binance API via WebSocket and place orders and cancel orders and do everything directly with the exchange.</p><p>So you&#8217;re anchored to that machine because Binance is going to track rate limits from a certain IP address. So you know that one server is going to be communicating with Binance and you may have two different bots on two different servers that are both talking to Binance consuming rate limits separately.</p><p>So there is some kind of&#8212;there is always, you&#8217;re always anchored to one machine from a Binance perspective, because you&#8217;re sending direct instructions to that server. But there&#8217;s nothing that prevents you from using one version of Condor and controlling five different servers, each of which are running different bots.</p><p><strong>Fede:</strong> Yeah.</p><p><strong>Mike:</strong> But yeah, but I would say if you need co-location, you need to run the servers in Singapore, Tokyo&#8212;</p><p><strong>Fede:</strong> That&#8217;s the definition. Yeah. You&#8217;ll need to deploy a Hummingbot API on each of these servers and then run the bots that you want, basically.</p><p><strong>Mike:</strong> Yeah. But actually that is exactly what market makers are doing. What we know of market makers that are running Hummingbot co-located on servers close to the exchange or even in some cases on the exchange infrastructure itself. And that&#8217;s why we designed Hummingbot API&#8212;it&#8217;s basically a piece of software that you deploy on a server. And so you should always run it as close to the exchange as possible.</p><div><hr></div><h3><strong>AI Model Latency Discussion</strong></h3><p><strong>Mike:</strong> Okay, all right. So yeah. And one follow-up&#8212;the decision-making latency. I think what he is referring to is some type of speed measurement&#8212;how fast Hummingbot is actually communicating with the exchange. I think that&#8217;s what they&#8217;re referring to.</p><p>So yeah, I would say&#8212;</p><p><strong>Fede:</strong> That, I think for that is everything is possible. You need to just use the framework that we have to implement it. We have a layer of MQTT that will be able to communicate the different bots. So off the shelf you will not have that feature, so you need to build it.</p><p>But what you can have is one Hummingbot instance in Singapore, one Hummingbot instance in Tokyo, and all of them can be communicating the messages through MQTT. So each one can be measuring the latency. You can have a central report and then have another one that distributes the orders. But you need to build it. You need to build that connection. It&#8217;s part of your development.</p><p><strong>Mike:</strong> That&#8217;s right. And actually, I&#8217;ll try to find an article because remember Victoria, one of our community members, did use Hummingbot to analyze speed between AWS Tokyo and Singapore. She did a lot of measurements in terms of how fast Hummingbot is. And so yeah, I&#8217;ll try to post that in a comment.</p><p>As Fede is showing the rest of the backtesting in terms of what that looks like&#8212;but overall, I would say, I think she found Hummingbot API is pretty fast. But there are some interesting differences between, let&#8217;s say, Osaka and Tokyo or Singapore in terms of where you deploy the server.</p><p><strong>Fede:</strong> Yeah. Yeah.</p><p><strong>Mike:</strong> The last thing that I want to show is this routine page new that we have that basically&#8212;we will be able here to run the routines from this page. As you can see, I just ran this one. I will write again, but basically I&#8217;m trading for a guy&#8212;a Brazilian guy that trades on these markets.</p><p>So I just said, okay, I want to know if there is&#8212;because right now we have zero fees on BTC, so I just wanted to know, okay, what is the market of BTC regarding comparing USDT and BRL. So it&#8217;s 1% of the market.</p><p>And the other thing that I wanted to know is if I quote the BRL in USD, what is the actual price discrepancy? If there are crosses&#8212;is there natural arbitrage opportunities to rebalance my BTC and BRL. And also counting that I have negative fees.</p><p>So well, this is the power of the routines&#8212;simple entities that you can receive data. That&#8217;s cool.</p><p><strong>Mike:</strong> Yeah.</p><p><strong>Fede:</strong> And also we have the top movers. These are private, so you are not going to see this, but as you can see, I can get the text, I can get the table. And with that, I think that is all for today.</p><p><strong>Mike:</strong> Okay.</p><div><hr></div><h3><strong>Distinguishing Trading Bots vs Trading Agents</strong></h3><p><strong>Mike:</strong> Yeah, I do want to cover one more question from Tiger. I think this is actually an important point to bring out. Yeah, they ask regarding decision-making latency&#8212;he is really referring to the AI model latency, how long it takes to get information to the agent or to the LLM, get it back, and how routines and tools speed this up.</p><p>So I think this is something that I think we should cover maybe next week or the following week. Because one thing to clarify is there&#8217;s two different things you can do with Condor. You can do trading&#8212;you can run trading bots, and you can run trading agents.</p><p><strong>Currently the way we&#8217;ve designed it, only the agents are injecting the LLM in the middle and using it to make decisions or anything else. When you&#8217;re doing trading and you&#8217;re doing trading bots, you&#8217;re actually just doing things the traditional way&#8212;you&#8217;re creating more like HFT deterministic algorithms and everything.</strong> So backtesting, everything else&#8212;that stuff is not using the LLM in the middle.</p><p>And it&#8217;s designed on purpose actually, because our view is that when you&#8217;re doing HFT, you probably don&#8217;t want the LLM involved in every single tick. That&#8217;ll slow things down. Instead, you probably want the agent at a higher level, like deciding which bots to start or stop and all that kind of stuff.</p><p>So that&#8217;s why for now, the backtesting&#8212;we encourage you to just do things the old-fashioned way. Create it, backtest it, run it in Condor. And that is not using the LLM.</p><p>However, once you build a routine and then you go to the agents tab and you build an agent, that&#8217;s when you&#8217;ll be using the LLM to help you make decisions. And you&#8217;ll notice that&#8217;s actually why it&#8217;s slower&#8212;every tick might take 60 seconds, because you want to give the LLM time to process and make a decision.</p><p>But when you&#8217;re doing HFT, your tick is probably one second or lower because you&#8217;re constantly sending orders to the exchange.</p><p><strong>Fede:</strong> Yeah. Perfect. I think that was a really good session today.</p><p><strong>Mike:</strong> Yeah, it was.</p><p><strong>Fede:</strong> The agent can oversee&#8212;the agent can oversee the bot and modify, but it will not be in real time. You are going to execute the tick of the agent every X amount of time.</p><p><strong>Mike:</strong> Right.</p><p><strong>Fede:</strong> Probably in the future we are going to create some real-time agents. But for now, the current agent that we are offering is more like ones that you can execute every minute or X amount of minutes. So that will probably be the current state.</p><p>We&#8217;re going to go step by step for the real-time agents. We probably want to code probably with open source models. Maybe we can release a Hummingbot model or Condor model on Hugging Face.</p><p><strong>Mike:</strong> Yeah. Yeah.</p><p><strong>Fede:</strong> Fine-tuning models.</p><p><strong>Mike:</strong> I&#8217;m currently watching a series on Hugging Face. The other day they were showing the new thing that will come is the RL for Agents.</p><p><strong>Fede:</strong> Oh, wow.</p><p><strong>Mike:</strong> Instead of doing DPO or RLHF&#8212;I don&#8217;t know the exact name&#8212;but it&#8217;s like how you do fine-tuning with LoRA, QLoRA, all that stuff. It is fine-tuning the agent. It&#8217;s not fine-tuning the model&#8212;it&#8217;s fine-tuning the agent.</p><p>So I think that there&#8217;s a lot of power there. I will be probably playing around with that. But I think that for our case, it&#8217;s perfect. That is probably what we want to do for our case.</p><p><strong>Fede:</strong> Yeah, I agree actually. And I think for us, we&#8217;re just going to keep on building. Every week we&#8217;ll just come out here and demo the new things that we&#8217;ve launched every week. So I think that as we continue doing this, in a few months, I do think we&#8217;re going to have some pretty intelligent agents that are doing auto research and backtesting and forward testing at the same time. And at that point it&#8217;s going to get pretty crazy.</p><p><strong>Mike:</strong> Yeah.</p><div><hr></div><h3><strong>Wrap-up</strong></h3><p><strong>Fede:</strong> Alright everybody, thanks again for joining. I&#8217;ll put on some more closing music. Do you know how many people we have today?</p><p><strong>Mike:</strong> 18 people watching right now on Discord&#8212;or on YouTube. So yeah, I think we&#8217;re starting to get a bit more participation every week in the live streams. But yeah, I&#8217;m hoping that we can get up to even more once the hackathon kicks off and we&#8217;re doing workshops and showing people what&#8212;</p><p><strong>Fede:</strong> Yeah.</p><p><strong>Mike:</strong> So yeah, anyway, we&#8217;ll see you guys next week. Same time, same place. And yeah, we&#8217;ll try to get this posted on our Substack in the next few hours.</p><p><strong>Fede:</strong> Yeah.</p><p><strong>Mike:</strong> Alright guys.</p><p><strong>Fede:</strong> Okay.</p><p><strong>Mike:</strong> See you later. And we will talk to you later.</p><p><strong>Fede:</strong> I like that music. Okay, bye. Bye.</p><p></p>]]></content:encoded></item><item><title><![CDATA[Hummingbot Newsletter - April 2026]]></title><description><![CDATA[&#129302; New Condor AI Agent Harness | &#128640; Shipped Hummingbot v2.14 | &#129309; New Architect, Evedex, Decibel, and GRVT connectors]]></description><link>https://hummingbot.substack.com/p/hummingbot-newsletter-april-2026</link><guid isPermaLink="false">https://hummingbot.substack.com/p/hummingbot-newsletter-april-2026</guid><dc:creator><![CDATA[Hummingbot Foundation]]></dc:creator><pubDate>Tue, 21 Apr 2026 21:21:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!XiCF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faff2da20-b4a8-4da9-9ebb-faaa9559d5ab_1920x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XiCF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faff2da20-b4a8-4da9-9ebb-faaa9559d5ab_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XiCF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faff2da20-b4a8-4da9-9ebb-faaa9559d5ab_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!XiCF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faff2da20-b4a8-4da9-9ebb-faaa9559d5ab_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!XiCF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faff2da20-b4a8-4da9-9ebb-faaa9559d5ab_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!XiCF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faff2da20-b4a8-4da9-9ebb-faaa9559d5ab_1920x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XiCF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faff2da20-b4a8-4da9-9ebb-faaa9559d5ab_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aff2da20-b4a8-4da9-9ebb-faaa9559d5ab_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:69328,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hummingbot.substack.com/i/194946166?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faff2da20-b4a8-4da9-9ebb-faaa9559d5ab_1920x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XiCF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faff2da20-b4a8-4da9-9ebb-faaa9559d5ab_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!XiCF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faff2da20-b4a8-4da9-9ebb-faaa9559d5ab_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!XiCF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faff2da20-b4a8-4da9-9ebb-faaa9559d5ab_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!XiCF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faff2da20-b4a8-4da9-9ebb-faaa9559d5ab_1920x1080.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Dear Hummingbot community,</p><p>When we launched Hummingbot in 2019, we gave individual traders access to the same market making strategies and exchange streaming connectivity that Wall Street quant trading firms use. But as traders scaled up &#8212; more exchanges, more bots, more capital &#8212; they hit a ceiling imposed by Hummingbot&#8217;s original command-line based interface. Monitoring multiple trading strategies, adjusting parameters on the fly, responding to market conditions: these tasks don&#8217;t scale easily, which is why most trading firms employ significant operations and engineering teams.</p><p>Today, we&#8217;re excited to formally launch <a href="https://condor.hummingbot.org/">Condor</a>, the next-generation Hummingbot user interface that removes that ceiling. Similar in design to OpenClaw, Condor is an open source agent harness that helps you create AI agents that automate trading tasks. Condor connects your chosen LLM to the Hummingbot trading infrastructure, letting you use natural language to execute trades, run trading bots, and deploy autonomous trading agents across 50+ exchanges and blockchains. Now, a single person can run a large-scale trading operation!</p><p>Read the <a href="https://hummingbot.org/blog/introducing-condor-the-open-source-harness-for-trading-agents/">announcement post</a> to learn more about why we built Condor and how it works.</p><p>Next month, we will launch our first <a href="https://www.botcamp.xyz/hackathons/condor-agents-hackathon">Condor Agents Hackathon</a> with $15,000+ in sponsored prizes to showcase agentic strategies built in Condor.</p><p>We can&#8217;t wait to see what you build.</p><p>Michael Feng<br>Co-founder, Hummingbot</p><p></p><div><hr></div><h2><strong>&#128250;  The Bot Pod</strong></h2><p>Check out our new weekly podcast in which Hummingbot CTO Federico and I explore the intersection of AI and crypto trading. In the first few episodes, we demonstrate how to use Condor.</p><div id="youtube2-OGaQJmrjWqA" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;OGaQJmrjWqA&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/OGaQJmrjWqA?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>This weekly podcast replaces our Hummingbot livestreams and monthly community calls. In addition to demonstrating new capabilities in Condor, we will provide community updates after each release and invite guests from the Hummingbot community.</p><p>Subscribe on <a href="https://youtube.com/hummingbot">YouTube</a> or find weekly episode highlights and transcripts at <a href="https://hummingbot.substack.com/">hummingbot.substack.com</a>.</p><p></p><div><hr></div><h2><strong>&#128640; What&#8217;s in the Hummingbot v2.14 Release</strong></h2><p>This release adds support for four new perpetual exchanges:</p><ul><li><p><a href="https://architect.exchange/">Architect Exchange</a></p></li><li><p><a href="https://app.decibel.trade/trade">Decibel</a></p></li><li><p><a href="https://evedex.com/">Evedex</a></p></li><li><p><a href="https://grvt.io/">GRVT</a></p></li></ul><p>Now, Hummingbot users have more venues where they can run algorithmic trading strategies, exploit funding rate differences, capture arbitrage opportunities, and earn platform incentives!</p><p>The release also includes:</p><ul><li><p><strong>Gateway DEX Connector Refactor</strong> &#8212; Refactored Gateway connectors to use network (i.e. solana-mainnet-beta) as the connector identifier instead of DEX name.</p></li><li><p><strong>Backtesting Improvements</strong> &#8212; Grid executor simulation, position holds, and Plotly visualization</p></li><li><p><strong>Rate Oracle Refactor</strong> &#8212; Oracle-centric fee and PnL calculations for perpetuals</p></li><li><p><strong>Binance Update</strong> &#8212; Updates the <strong>Binance Futures</strong> perpetuals connector to use the new WebSocket endpoint format, ensuring compatibility with <a href="https://developers.binance.com/docs/derivatives/change-log">Binance's upcoming migration</a></p></li><li><p><strong>XRPL Improvements</strong> &#8212; Support for all markeBBRL and EUROP markets, order precision fixes</p><p></p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://hummingbot.org/release-notes/2.14.0/&quot;,&quot;text&quot;:&quot;v2.14 Release Notes&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://hummingbot.org/release-notes/2.14.0/"><span>v2.14 Release Notes</span></a></p><p></p></li></ul><div><hr></div><h2><strong>Security Notice</strong></h2><p>Beware of scammers impersonating the Hummingbot Foundation:</p><ul><li><p>We <strong>NEVER</strong> DM you first</p></li><li><p>We <strong>NEVER</strong> sell or airdrop HBOT tokens</p></li><li><p>HBOT is only earned through completing bounties</p></li><li><p>Report suspicious activity in our Discord #scam-reports channel</p></li></ul><div><hr></div><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://hummingbot.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Hummingbot Newsletter! Subscribe for free to get notified of each monthly release.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The Bot Pod Episode 3: Creating Routines in Condor]]></title><description><![CDATA[Watch now | Watch Condor build us a routine to scrape the CoinTelegraph website to find trade ideas!]]></description><link>https://hummingbot.substack.com/p/the-bot-pod-episode-3-creating-routines</link><guid isPermaLink="false">https://hummingbot.substack.com/p/the-bot-pod-episode-3-creating-routines</guid><dc:creator><![CDATA[Hummingbot Foundation]]></dc:creator><pubDate>Fri, 17 Apr 2026 20:04:41 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/194552978/1faa4b2b233817de490fb0084d6e9089.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!K-pV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6deeabf-e4c5-4138-831f-c27c9d22ef0c_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!K-pV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6deeabf-e4c5-4138-831f-c27c9d22ef0c_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!K-pV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6deeabf-e4c5-4138-831f-c27c9d22ef0c_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!K-pV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6deeabf-e4c5-4138-831f-c27c9d22ef0c_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!K-pV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6deeabf-e4c5-4138-831f-c27c9d22ef0c_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!K-pV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6deeabf-e4c5-4138-831f-c27c9d22ef0c_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d6deeabf-e4c5-4138-831f-c27c9d22ef0c_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2026890,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hummingbot.substack.com/i/194552978?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6deeabf-e4c5-4138-831f-c27c9d22ef0c_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!K-pV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6deeabf-e4c5-4138-831f-c27c9d22ef0c_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!K-pV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6deeabf-e4c5-4138-831f-c27c9d22ef0c_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!K-pV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6deeabf-e4c5-4138-831f-c27c9d22ef0c_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!K-pV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6deeabf-e4c5-4138-831f-c27c9d22ef0c_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We&#8217;re back with Episode 3 of <strong>The Bot Pod</strong>! This week, Mike and Fede introduce one of Condor&#8217;s most powerful features: <strong>routines</strong>. These lightweight Python files let you automate tasks, fetch external data, and run scheduled reports&#8212;all without burning tokens on LLM reasoning.</p><p>Also, we&#8217;re excited to announce that <strong>Botcamp Cohort 13 starts next week</strong>! Use the discount code INFOSESH from the episode for 25% off. After the cohort, we&#8217;ll host our first <strong>Condor Agents Hackathon</strong> with prizes from crypto funds and exchanges. Sign up at <strong><a href="https://www.botcamp.xyz/">botcamp.xyz</a></strong>.</p><p><strong>Watch the full episode:</strong> <a href="https://www.youtube.com/watch?v=OGaQJmrjWqA">YouTube</a></p><div><hr></div><h2><strong>Episode Highlights</strong></h2><h3><strong><a href="https://www.youtube.com/watch?v=OGaQJmrjWqA&amp;t=360s">6:00</a> What Are Routines?</strong></h3><p>Fede breaks down the three key concepts in Condor&#8217;s architecture:</p><ul><li><p><strong>MCP Tools</strong>: Standardized way to present tools for agents</p></li><li><p><strong>Skills</strong>: Markdown folders with instructions that load into context when needed</p></li><li><p><strong>Routines</strong>: Lightweight Python files that execute deterministically without loading into memory</p></li></ul><p>The key insight: routines are simple, reliable, and don&#8217;t waste tokens. They&#8217;re just Python code with a config class and an async <code>run()</code> method.</p><h3><strong><a href="https://www.youtube.com/watch?v=OGaQJmrjWqA&amp;t=660s">11:00</a> Types of Routines</strong></h3><p>Two types of routines exist in Condor:</p><ul><li><p><strong>One-shot</strong>: Execute once or on a schedule (every 30 seconds, hourly, daily)</p></li><li><p><strong>Continuous</strong>: Run forever with a while loop until manually stopped</p></li></ul><h3><strong><a href="https://www.youtube.com/watch?v=OGaQJmrjWqA&amp;t=840s">14:00</a> New Condor Features Demo</strong></h3><p>Before diving into routines, Fede shows off recent improvements:</p><ul><li><p><strong>Self-update feature</strong>: Update Condor directly from the interface</p></li><li><p><strong>New trade page</strong>: Deploy any executor type from the web UI</p><ul><li><p>Order executor (simple buy/sell)</p></li><li><p>Position executor (with take profit/stop loss)</p></li><li><p>Grid executor</p></li><li><p>DCA executor</p></li></ul></li></ul><h3><strong><a href="https://www.youtube.com/watch?v=OGaQJmrjWqA&amp;t=1620s">27:00</a> Hello World Routine</strong></h3><p>The simplest routine demonstration:</p><ul><li><p>Configure parameters in the config class</p></li><li><p>Run it once, run it in background, or schedule it</p></li><li><p>Output appears directly in Telegram</p></li></ul><h3><strong><a href="https://www.youtube.com/watch?v=OGaQJmrjWqA&amp;t=1920s">32:00</a> Top Movers Routine</strong></h3><p>A practical routine that scans Binance for volatile markets:</p><ul><li><p>Fetches ticker data directly from exchange API</p></li><li><p>Returns top gainers, losers, and high-volume movers</p></li><li><p>Written entirely by Condor&#8212;zero manual coding required</p></li></ul><h3><strong><a href="https://www.youtube.com/watch?v=OGaQJmrjWqA&amp;t=2100s">35:00</a> Technical Analysis Routine</strong></h3><p>A more sophisticated routine that:</p><ul><li><p>Fetches candles via Hummingbot API</p></li><li><p>Calculates trend, volatility, support/resistance</p></li><li><p>Sends charts as images to Telegram</p></li><li><p>Suggests grid parameters based on analysis</p></li></ul><h3><strong><a href="https://www.youtube.com/watch?v=OGaQJmrjWqA&amp;t=2400s">40:00</a> Live: Building a News Sentiment Routine</strong></h3><p>Mike and Fede build a CoinTelegraph scraper live on stream:</p><ol><li><p>Tell Condor: &#8220;Create a routine to parse news from CoinTelegraph&#8221;</p></li><li><p>Condor writes the Beautiful Soup scraping code</p></li><li><p>Debug and fix dependency issues in real-time</p></li><li><p>Run the routine to fetch 15 latest crypto news articles</p></li></ol><h3><strong><a href="https://www.youtube.com/watch?v=OGaQJmrjWqA&amp;t=2820s">47:00</a> News-Driven Trading Demo</strong></h3><p>The complete workflow from news to trade:</p><ol><li><p>Run the news routine to fetch articles</p></li><li><p>Ask Condor to identify tradeable tokens from the news</p></li><li><p>Condor identifies NEO based on treasury restructuring news</p></li><li><p>Run technical analysis routine on NEO</p></li><li><p>Deploy a long grid based on the analysis</p></li></ol><h3><strong><a href="https://www.youtube.com/watch?v=OGaQJmrjWqA&amp;t=3180s">53:00</a> Preview: Routines Inside Agents</strong></h3><p>Next week&#8217;s episode will cover:</p><ul><li><p><strong>Global routines</strong>: Available to all agents</p></li><li><p><strong>Agent-level routines</strong>: Scoped to specific trading agents</p></li><li><p>How agents can call routines every tick for data processing</p></li></ul><div><hr></div><h2><strong>Next Week: Routines Inside Agents</strong></h2><p>Now that you know how to create and run routines standalone, Episode 4 will show how to put them to work inside your trading agents. We&#8217;ll cover the difference between <strong>global routines</strong> (available to all agents) and <strong>agent-level routines</strong> (scoped to specific trading strategies), and demonstrate how an agent can call routines every tick to process market data without burning tokens.</p><p>Join us live next Friday at <strong>9am PT / 12pm ET</strong> on <a href="https://www.youtube.com/@Hummingbot">YouTube</a>, <a href="https://www.twitch.tv/hummingbotpod">Twitch</a>, or <a href="https://x.com/_hummingbot">X</a>. Drop your questions in the live chat&#8212;we answer them on stream.</p><div><hr></div><h2><strong>Full Transcript</strong></h2><h3><strong>Intro &amp; Market Discussion</strong></h3><p><strong>Mike:</strong> Welcome everyone to the third episode of the Bot Pod. I&#8217;m Mike, this is Fede. We&#8217;re the maintainers of the open source Hummingbot framework. Every week we come on here and demo what&#8217;s possible with Hummingbot and our new agentic harness, Condor.</p><p>This week we&#8217;re going to go over something called routines&#8212;a component you can build in Condor to help automate tasks either for yourself or your agent. I&#8217;m really excited about today because routines are critical to making your agents more token efficient and more reliable. You can also use them for yourself to get daily reports, scan for arbitrage opportunities, things like that.</p><p>But before we get started, let&#8217;s talk about what&#8217;s going on in the markets. We&#8217;re traders at heart, and we know lots of you are too. It seems like the market bounced a little bit this week, Fede?</p><p><strong>Fede:</strong> Yeah, it seems like we&#8217;re getting back a little bit. It was a long time coming. Some tokens are at the lowest price of the last two years. But I&#8217;m very bullish overall about the ecosystem. This past year is the first time I&#8217;ve seen common people talking about crypto without being afraid.</p><p>Here&#8217;s an example: I live in Argentina, and you can&#8217;t buy an iPhone directly here&#8212;there&#8217;s no Apple store. The resellers told me they&#8217;re now doing settlements via crypto because before they had to go in a car with cash. They&#8217;re also using crypto for cross-border payments to Miami. When those kinds of people are adopting the technology, that&#8217;s real adoption.</p><p><strong>Mike:</strong> Yeah, crypto as a technology for cross-border payments&#8212;that&#8217;s the core use case. Everyone wants to save money. No one wants to pay 3% to a credit card processor or 5% when changing money at the airport. The purpose of crypto is to make those transfers almost free using crypto rails.</p><p>Before we dive in, there&#8217;s a QR code in the upper right corner that goes to the Hummingbot newsletter where we publish weekly episodes with notes and transcripts. We also publish monthly posts for new releases of Hummingbot and Condor.</p><p>The other thing Fede and I do is run Botcamp, an education platform that teaches people how to build algo trading strategies. The next cohort starts next week&#8212;there&#8217;s a 25% discount code in the description. After this cohort, we&#8217;ll be running an agents hackathon where people can build agents with Condor and win prizes from crypto funds and exchanges.</p><div><hr></div><h3><strong>Understanding Routines</strong></h3><p><strong>Mike:</strong> Alright, let&#8217;s get into routines. Fede, what do you want to start with?</p><p><strong>Fede:</strong> I want to talk about the concept of what a routine is. Right now there&#8217;s a lot of content about AI&#8212;skills, MCP tools, all these different things. We introduced this concept of routines that works in Condor.</p><p><strong>Mike:</strong> Actually, Claude just introduced routines the other day too, and they&#8217;re conceptually similar. I&#8217;m not sure they copied us&#8212;probably not&#8212;but we did start it first.</p><p><strong>Fede:</strong> Okay, so let&#8217;s break this down. There&#8217;s MCP, which is a standardized way to present tools for agents. It has prompts, resources, and tools, but really only tools are used.</p><p>Then Claude came up with skills. A skill is basically a folder in your file system that contains a markdown file explaining the skill, plus scripts for how to do something. It&#8217;s a package that lets your agent perform certain actions repeatedly. When you tell the agent &#8220;I want to do this,&#8221; if it detects that a skill applies, it loads that skill into the system prompt. The benefit is you don&#8217;t load everything at once&#8212;just what you need.</p><p>Now, routines are different. Instead of exposing a markdown file with lots of context that guides the agent, a routine is just a Python file with a configuration. It has a config class and an async run method. The difference is: <strong>routines are very lightweight and simple. You never load anything into memory. You just execute it and get the response.</strong></p><p>Skills are like a recipe with a folder, description, and instructions. Routines are deterministic code that runs reliably every time.</p><p><strong>Mike:</strong> So to clarify: a routine is a Python file that does something you want done, and because it&#8217;s code, it acts deterministically and reliably every time. A skill is more like teaching an agent a general capability&#8212;the agent has to interpret instructions and then do something. They serve different purposes.</p><p><strong>Fede:</strong> Exactly. The routine is lightweight. If you want to do something specific, just use this routine.</p><p><strong>Mike:</strong> When would you want to use routines?</p><p><strong>Fede:</strong> It&#8217;s very open&#8212;you can do whatever you want since it&#8217;s just a Python file. In Condor, you&#8217;d typically use the Hummingbot API. We have a skill that contains instructions on how to create routines, so Condor knows the patterns. You can create anything you want, but within the scope of Hummingbot is where you get the most value.</p><p>Today we&#8217;re going to try something crazy&#8212;we&#8217;ll see if we can parse a news website like CoinTelegraph, process the data, and have the agent run technical analysis on tokens mentioned in the news.</p><div><hr></div><h3><strong>New Condor Features Demo</strong></h3><p><strong>Mike:</strong> Before we get into routines, can you show off some of the new features you&#8217;ve been building into Condor? Every week we try to make improvements to Hummingbot and Condor, and this week Fede has made some big improvements to the interface.</p><p><strong>Fede:</strong> Sure. First, I&#8217;m working on a self-update feature. When there&#8217;s a new update of Condor, you&#8217;ll be able to compare your branch with the main branch and update directly from the interface.</p><p>We&#8217;ve also improved the Hummingbot API in terms of executor reliability. Here&#8217;s the web dashboard with portfolio evolution over time and a layered view of different assets.</p><p>I added this new trade page where you can create any executor:</p><ul><li><p><strong>Order Executor</strong>: Simple buy or sell&#8212;could be a market order or limit order</p></li><li><p><strong>Position Executor</strong>: One order with take profit, stop loss, trailing stop, and time limit attached. This is based on the Triple Barrier Method used in machine learning for finance, invented by Marco L&#243;pez de Prado</p></li><li><p><strong>Grid Executor</strong>: A more advanced version&#8212;you place a set of orders in a grid, each with take profit</p></li><li><p><strong>DCA Executor</strong>: Helps you dollar-cost average into a position</p></li></ul><p><strong>Mike:</strong> What&#8217;s important about all these executors is that they all start and finish, and they report their ending values&#8212;amount purchased or sold, P&amp;L, and any positions left over&#8212;back to the agent. This means if you&#8217;re running an agent with the ability to execute different types, it gets the same information structure every time. This allows your agent to trade on multiple market types while having the same view at the top level.</p><p>The reason we added this trade menu is to teach users exactly what your agent will be doing once you program it. Place individual executors, see how they operate, understand the information structure.</p><p><strong>Fede:</strong> Here&#8217;s a cool thing about the DCA executor. You can see how the breakeven price changes based on your levels. If I set level one at $100 and level two at $200, you can see the breakeven price moving closer to the second level as the amount increases. This visualization helps you understand the impact of your configuration.</p><div><hr></div><h3><strong>Q&amp;A: Long-Term Memory in Condor</strong></h3><p><strong>Mike:</strong> We have a question from the audience: &#8220;How does Condor scale long-term memory via RAG versus session journals?&#8221;</p><p><strong>Fede:</strong> We&#8217;re actively testing this. I&#8217;m working on reducing system prompt context by about 15%. What enters memory is the agent prompt and learnings shared across all sessions. We&#8217;re very restricted about what to keep.</p><p>Then we have journals and snapshots. Snapshots are one per session for each tick the agent runs&#8212;these aren&#8217;t included entirely in the system prompt. Only the journal and learnings grow. We&#8217;re not doing RAG on the journal&#8212;RAG is only from snapshots when the agent needs it.</p><p>For journals, we need to evaluate whether to compress the data. Maybe we don&#8217;t need all of it available. We&#8217;re also testing with Gemma 26 billion to see if we can include open source models and avoid paying for expensive LLM providers.</p><p><strong>Mike:</strong> With trading, a lot of data is numerical, so storing text isn&#8217;t always useful unless it&#8217;s actual insights learned. We&#8217;re trying to have snapshots contain structured data of each tick, and agents only write down insights or observations they can use later&#8212;instead of processing raw text every time.</p><p>As we add open source models and discover what works, we&#8217;ll keep refining the framework. This is actually a good segue into routines, because one role of routines is to reduce the tokens the LLM spends figuring something out&#8212;it writes a Python program that processes data instead.</p><p><strong>Fede:</strong> One interesting idea: a Botcamp student showed me a framework called Mem0 for memory search. They have this concept of &#8220;K language&#8221;&#8212;compressed English without filler words. Like &#8220;candle red trade&#8221; instead of full sentences. For trading journals, we might develop an internal compressed language to reduce context size.</p><div><hr></div><h3><strong>Hello World Routine</strong></h3><p><strong>Mike:</strong> Alright, enough intro. Let&#8217;s get into routines. Show us the simplest possible routine.</p><p><strong>Fede:</strong> This is the Hello World routine. If you clone the GitHub repository at github.com/hummingbot/condor, you&#8217;ll see a routines folder with sample routines.</p><p>We have two types of routines:</p><ul><li><p><strong>One-shot</strong>: Execute once, or schedule to execute at a frequency</p></li><li><p><strong>Continuous</strong>: Have a while loop and run forever until you stop them</p></li></ul><p>The Hello World routine is a simple one-shot. All routines have a config class where you define arguments, and a main async function that&#8217;s the entry point. In this case, it just says &#8220;Hello.&#8221;</p><p>Let&#8217;s run it in Condor. Go to routines, you&#8217;ll see the list of routines in that folder. Here&#8217;s Hello World&#8212;run it, and there&#8217;s the result.</p><p>You can also run it in the background and the output gets sent to chat. Or schedule it&#8212;say, every 30 seconds. See? Run number one. In 30 seconds, we&#8217;ll see run number two. Once you create your routine, you can schedule it however you want and receive information in Telegram very quickly.</p><p>To stop it, go to routines, see the running ones, and hit stop.</p><div><hr></div><h3><strong>Top Movers Routine</strong></h3><p><strong>Mike:</strong> Can you show something more practical, like the Top Movers routine?</p><p><strong>Fede:</strong> This one isn&#8217;t in the codebase yet, but I created it to show top movers on Binance. It pings the API directly and gives me a report: top gainers, top losers, top movers on perpetuals.</p><p><strong>Mike:</strong> Can you show the code?</p><p><strong>Fede:</strong> This code was written by the agent. It&#8217;s simple: a config where you set the top N, whether to include volume, losers, and whether to send to Telegram. The run method creates a session, processes the data, and that&#8217;s it.</p><p><strong>Mike:</strong> This is a good example because this top movers data isn&#8217;t in our API. Every exchange has many different data APIs we can&#8217;t all incorporate into Hummingbot. But if you want to access this data and have your agent use it, the best approach is to write a routine that incorporates that external data feed. Now every tick, your agent can run this routine, get the data, and act on it.</p><p>The routine is simple code. Your agent can help you build it, and once built, you can use it everywhere. In the future, we&#8217;ll probably create a directory where you can share routines and find what others have created.</p><div><hr></div><h3><strong>Technical Analysis Routine</strong></h3><p><strong>Fede:</strong> Here&#8217;s one that sends pictures. This technical analysis routine analyzes trend, volatility, support and resistance. It uses the Hummingbot API to get candles, processes the data, and suggests grid parameters.</p><p>See the output&#8212;it&#8217;s detecting values and sending me charts. I was testing different methods of support and resistance analysis. There&#8217;s one that shows a comparison of all methods: Classic, Pivot, SciPy, Volume Profile. All this was created by Condor for me. Zero coding&#8212;just prompting and receiving feedback via pictures.</p><p>This is the power of routines. The agent isn&#8217;t using MCP tools and wasting tokens. It&#8217;s just modifying code that runs and gives you output.</p><div><hr></div><h3><strong>Live Build: CoinTelegraph News Scraper</strong></h3><p><strong>Mike:</strong> Let&#8217;s try something we haven&#8217;t tested beforehand. I&#8217;ve always wanted to experiment with ingesting news and having an agent interpret it for trading implications. This is sentiment analysis&#8212;hedge funds have done this for years, but it was hard because understanding news implications is complex.</p><p>Today with LLMs, interpreting textual data has gotten much better. If you give the LLM articles, it should be able to interpret the effect. Imagine some news happens&#8212;the US lifts a blockade, for example&#8212;that has immediate market impact. If an agent can pick up that information, interpret it, and adjust your bot, it&#8217;s monitoring news for you.</p><p>Getting news, interpreting correctly, and taking automatic actions isn&#8217;t trivial. Let&#8217;s see if a routine can help.</p><p><strong>Fede:</strong> I&#8217;ll tell Condor: &#8220;I want to build a routine to analyze the news content provided by CoinTelegraph. Do some web search, parse the HTML, and structure the information.&#8221;</p><p><em>[Condor starts working]</em></p><p><strong>Mike:</strong> If you have questions about routines, drop them in the chat. We&#8217;ll answer them live.</p><p><strong>Fede:</strong> It created the routine. There&#8217;s an issue importing Beautiful Soup&#8212;let me tell it there&#8217;s a dependency issue.</p><p><em>[Debugging]</em></p><p><strong>Mike:</strong> I promise we didn&#8217;t test this beforehand. We want to respect the sanctity of the live stream&#8212;whatever happens, we deal with it.</p><p><strong>Fede:</strong> It&#8217;s working now. Let me run it... CoinTelegraph latest news, fetched five articles. <strong>It wrote the routine without us writing any lines of code.</strong></p><p>Now I&#8217;ll say: &#8220;Run the routine getting 15 news articles and detect if there&#8217;s information about an interesting token to trade.&#8221;</p><p><strong>Mike:</strong> Just say Bitcoin since it&#8217;s likely to be mentioned most.</p><p><strong>Fede:</strong> Here&#8217;s the analysis... NEO comes up. &#8220;CEX volumes down 39% in Q1, macro crypto winter narrative. NEO&#8212;clear catalyst, treasury restructuring. Fundamental change. Treasury overhaul is material, likely to drive short-term volatility.&#8221;</p><p><strong>Mike:</strong> NEO! I haven&#8217;t heard that mentioned in five years. For the old school crypto people, NEO was an Ethereum competitor back in 2017&#8212;a Chinese smart contract platform. Ethereum won that market, but it&#8217;s interesting they&#8217;re still around.</p><div><hr></div><h3><strong>From News to Trade</strong></h3><p><strong>Fede:</strong> Let me run technical analysis on NEO. The TA shows NEO is in tight consolidation with low volatility. The news catalyst hasn&#8217;t hit the price yet&#8212;it&#8217;s either cooling for a breakout or the market doesn&#8217;t care yet. The range is very tight, tricky for directional trades but could work for a grid.</p><p>Let me get a longer timeframe&#8212;one month with 1-hour candles.</p><p><em>[Routine updates to support different timeframes]</em></p><p>See that? You can be on the beach with your phone talking to Condor, making it write Python files for you that use Hummingbot. Schedule reports every hour, whatever you want.</p><p><strong>Mike:</strong> A question from chat: &#8220;Can routines use cheaper local LLMs for execution while the orchestrator stays on frontier?&#8221;</p><p><strong>Fede:</strong> That&#8217;s exactly what routines do. The execution is not LLM-based&#8212;it&#8217;s just Python code. The frontier model creates the Python code and triggers execution. That&#8217;s the point: saving costs because that part is just code running. All the scraping of CoinTelegraph was done by the frontier model once. Now it just calls the routine&#8212;Python code that&#8217;s not loaded into context, just executed in runtime.</p><p><strong>Mike:</strong> We&#8217;re experimenting with adding open source models to Condor. The end state: you use frontier models to build your agents and write routines, but when running the agents, you use a local model for runtime to avoid expensive tokens every time.</p><p><strong>Fede:</strong> Here&#8217;s NEO&#8212;it&#8217;s proposing a long grid from $2.84 to $3.46. I want a wider range, up to $3.70. Total amount: $500. Max orders per batch: one. Take profit: 0.1%. Keep position: true. Coerce TP to step.</p><p>Deploy.</p><p><strong>Mike:</strong> Nice. The NEO long grid is live. How many open orders?</p><p><strong>Fede:</strong> Five. Here&#8217;s the position. It&#8217;s a 44% range, so it&#8217;ll be more of a mid-frequency grid. But look what we did: we made a routine that gets news from CoinTelegraph, ran a routine to analyze the assets technically, and deployed a grid. These are things you can do as a trader manually. Next week, we&#8217;ll do the same but with an agent automating it.</p><div><hr></div><h3><strong>Wrap-up &amp; Episode 4 Preview</strong></h3><p><strong>Mike:</strong> Let me summarize what we did today.</p><p>First, we went over new improvements in the Condor UI&#8212;specifically the trade tab where you can place individual executors. These are the same things you&#8217;ll program your agents to do.</p><p>Second, we covered the concept of a routine: deterministic Python code you can run and schedule in Telegram, and have your agents use. Today we focused on using routines standalone for daily monitoring reports, market updates, and things you want to schedule regularly.</p><p>Next week, we&#8217;ll show how to use Agent Builder to have your agent write a routine that fetches data every tick and uses that data for decision-making.</p><p>Routines are powerful because unlike skills, they&#8217;re simple deterministic programs your agent can write for you and use in a variety of ways. Over time, we&#8217;ll probably have a way for people to share routines and import them from others.</p><p>That wraps up this week&#8217;s episode. We&#8217;ll be back next Friday at 9am Pacific. Scan the QR code for updates on Bot Pod episodes and monthly releases of Hummingbot and Condor.</p><p><strong>Fede:</strong> Thank you!</p><p><strong>Mike:</strong> Thanks everyone for joining. See you next week.</p><p><strong>Fede:</strong> Bye bye!</p>]]></content:encoded></item><item><title><![CDATA[The Bot Pod Episode 2: Building a Grid Scalping Agent]]></title><description><![CDATA[Our first agent made $25 &#8212; watch us build a second agent that scalps oil perps!]]></description><link>https://hummingbot.substack.com/p/the-bot-pod-episode-2-building-a</link><guid isPermaLink="false">https://hummingbot.substack.com/p/the-bot-pod-episode-2-building-a</guid><dc:creator><![CDATA[Hummingbot Foundation]]></dc:creator><pubDate>Sat, 11 Apr 2026 15:38:44 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/193893278/1b4c9107111d5828b89e758b8a5315f6.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<h1><strong>The Bot Pod Episode 2: Building a Grid Scalping Agent</strong></h1><p>We&#8217;re back with Episode 2 of <strong>The Bot Pod</strong>! This week, Mike and Fede take a deep dive into Condor&#8217;s session management, review the results of the agent they built live on Episode 1, and demonstrate the full workflow from manual grid trading to autonomous agent deployment.</p><p>Also, we&#8217;re excited to incorporate AI agentic trading into Botcamp, our online bootcamp for algo traders and market makers. Cohort 13 of Botcamp starts on April 21, and we&#8217;re hosting open cohort preview and welcome session. We welcome cohort participants, Botcamp alumni, and anyone interested in learning algo trading or market making to join: <strong><a href="https://luma.com/yrw1a7tj">Botcamp Cohort 13 Info Session</a></strong></p><p><strong>Watch the full episode:</strong> <a href="https://www.youtube.com/watch?v=IolYm0zomJM">YouTube</a> <strong>View the new Condor documentation:</strong> <a href="https://condor.hummingbot.org/">Condor</a></p><div><hr></div><h2><strong>Episode Highlights</strong></h2><h3><strong><a href="https://www.youtube.com/watch?v=IolYm0zomJM&amp;t=300s">5:00</a> Episode 1 Agent Results: $25 Profit</strong></h3><p>Fede reveals the results: the scalping agent from Episode 1 made $25 profit with $9K in volume across 91 trades. They walk through:</p><ul><li><p><strong>Session snapshots</strong>: Full inspection of every tick, system prompt, and agent reasoning</p></li><li><p><strong>New chart visualization</strong>: 30-minute windows around each executor for analysis</p></li><li><p><strong>Trailing stop improvement</strong>: When no upper resistance exists, use trailing stop instead</p></li></ul><h3><strong><a href="https://www.youtube.com/watch?v=IolYm0zomJM&amp;t=600s">10:00</a> Agent Learning in Action</strong></h3><p>The agent has been evolving through its learnings file. Example learning: &#8220;Price below EMA 7 and EMA 25 while EMA 7 is higher than EMA 25 indicates weakness&#8212;avoid entries into declining moves.&#8221; These learnings persist across sessions, creating a self-improving system.</p><h3><strong><a href="https://www.youtube.com/watch?v=IolYm0zomJM&amp;t=660s">11:00</a> What is Condor?</strong></h3><p>Mike explains for newcomers: Condor is the next-generation interface for Hummingbot. It&#8217;s open source (MIT licensed), similar in architecture to OpenClaw, but focused on trading tasks. It runs on top of your LLM and connects directly to exchange infrastructure.</p><h3><strong><a href="https://www.youtube.com/watch?v=IolYm0zomJM&amp;t=960s">16:00</a> Live Grid Trading on Binance</strong></h3><p>A live demonstration of deploying a $500 long grid on a volatile market:</p><ul><li><p>Orders placing and filling so fast Binance UI can&#8217;t keep up</p></li><li><p>Real-time P&amp;L tracking in Condor</p></li><li><p>All orders as post-only (maker orders) for better fees</p></li></ul><h3><strong><a href="https://www.youtube.com/watch?v=IolYm0zomJM&amp;t=1380s">23:00</a> Hyperliquid RWA Markets</strong></h3><p>Mike explores Hyperliquid&#8217;s new HIP-3 markets&#8212;real-world assets like WTI crude oil trading 24/7 as perpetuals. These are now the third most active markets on Hyperliquid behind BTC and ETH. Important gotcha: the ticker format requires the issuer prefix (e.g., <code>XYZ:CL-USD</code>).</p><h3><strong><a href="https://www.youtube.com/watch?v=IolYm0zomJM&amp;t=2040s">34:00</a> Grid Executor Deep Dive</strong></h3><p>Fede walks through every grid parameter in the web UI:</p><ul><li><p><strong>Start/End Price</strong>: The grid boundaries</p></li><li><p><strong>Limit Price</strong>: Stop-loss level for the grid</p></li><li><p><strong>Keep Position</strong>: True = hold inventory after grid ends; False = liquidate and start fresh</p></li><li><p><strong>Leverage</strong>: Configure directly in advanced settings</p></li><li><p><strong>Coerce TP to Step</strong>: Automatically adjust take profit to match grid step size</p></li></ul><h3><strong><a href="https://www.youtube.com/watch?v=IolYm0zomJM&amp;t=2940s">49:00</a> Building a Grid Scalper Agent</strong></h3><p>Mike creates a new agent from scratch using Agent Builder:</p><ol><li><p>Strategy: Grid trading, both long and short</p></li><li><p>Risk tolerance: High (scalping)</p></li><li><p>Budget: $300 with 10x leverage</p></li><li><p>Tick frequency: 60 seconds</p></li></ol><h3><strong><a href="https://www.youtube.com/watch?v=IolYm0zomJM&amp;t=3720s">1:02:00</a> Live Trading Session</strong></h3><p>The new grid scalper agent goes live on Hyperliquid&#8217;s oil market. They watch it:</p><ul><li><p>Analyze spreads and market conditions</p></li><li><p>Deploy a long grid when conditions align</p></li><li><p>Monitor through the web dashboard&#8217;s real-time snapshots</p></li></ul><div><hr></div><h2><strong>Resources</strong></h2><ul><li><p><strong>Condor Repository</strong>: <a href="https://github.com/hummingbot/condor">github.com/hummingbot/condor</a></p></li><li><p><strong>Condor Documentation</strong>: <a href="https://condor.hummingbot.org/">condor.hummingbot.org</a></p></li><li><p><strong>Hummingbot Discord</strong>: <a href="https://discord.gg/hummingbot">discord.gg/hummingbot</a></p></li></ul><div><hr></div><h2><strong>Watch Live Every Friday</strong></h2><p>The Bot Pod streams live every Friday at:</p><ul><li><p>9:00 AM Pacific / 12:00 PM Eastern</p></li><li><p>Late afternoon in South America</p></li><li><p>Late evening in Europe and Asia</p></li></ul><p>Catch us on <strong><a href="https://www.youtube.com/@Hummingbot">YouTube</a></strong>, <strong><a href="https://www.twitch.tv/hummingbotpod">Twitch</a></strong>, and <strong><a href="https://x.com/_hummingbot">X (Twitter)</a></strong>.</p><div><hr></div><h2><strong>Full Transcript</strong></h2><h3><strong>Episode Start</strong></h3><p><strong>Mike:</strong> All right everyone, now we&#8217;re actually finally streaming with Fede. Let me bring him over and we&#8217;ll start the proper stream for episode two.</p><p>This is the Bot Pod podcast and we are the maintainers of Hummingbot, the open source framework for crypto trading and algo trading. We&#8217;re a bit discombobulated because we&#8217;ve actually been streaming just to ourselves for the past hour&#8212;I never hit the Go Live button on the stream.</p><p>I was actually wondering why no one was chatting. I thought we were just doing a bad job of making the thing interesting. But anyway, now we are streaming. I&#8217;m not sure how many people are actually watching now, but we&#8217;ll stream and get this recorded and edited for later consumption.</p><p>What we want to do today is go over the results of the scalping agent that Fede started in the first session. But before I go on, let me explain what this is and why we&#8217;re doing this.</p><p>The Bot Pod podcast is a weekly deep dive into the intersection of AI and crypto trading. We&#8217;re engineers at heart&#8212;we&#8217;re not marketers as you can see&#8212;but every week we&#8217;re building new stuff. And the new stuff we&#8217;re building is usually open source because we maintain this open source framework.</p><p>Lately we&#8217;ve been making changes to Hummingbot to make it more AI-friendly. I think now&#8217;s a good time to start demoing what these AI features are because it&#8217;s ready for prime time. In the past you had to be basically a Python developer in order to code up sophisticated strategies using Hummingbot.</p><p>But now with AI, anyone can do that. And because of how fast AI models are improving, we think the sky&#8217;s the limit in terms of what AI can actually do. However, you have to apply it in a structured way because it&#8217;s easy to create a demo&#8212;it&#8217;s much harder to manage and deploy a fleet of trading agents that are all acting in isolation, doing the things you want them to do and not other things, and keeping the whole setup secure and isolated.</p><p>Fede, how you doing?</p><p><strong>Fede:</strong> Very good. Is the first time that we&#8217;re doing episode two? No, it was really fun.</p><p><strong>Mike:</strong> We actually rehearsed what we&#8217;re going to present for this, so I think it should go smoother now that we had a dress rehearsal for the past hour.</p><p>So today what we want to cover is first go over the results of Fede&#8217;s agent from last time. We&#8217;ll also look at the structure of the agent again, and look at how the new UI presents the sessions, the snapshots, and the journal of the agent. You can also start analyzing what the agent&#8217;s doing. After that, I think it&#8217;d be a good time for me to show Condor from the perspective of a first time user and demo how you can do simple trades with Condor as well as more complex executors.</p><p>Before we dive in, I should mention there&#8217;s a QR code in the upper right hand corner that points to an info session we&#8217;re doing for our next cohort of Botcamp, Cohort 13. That info session is next Tuesday, so make sure to scan it and join for free.</p><p>What we&#8217;re going to cover is basically what we teach in Botcamp. Our view is that you have to learn the theory first of how to do various types of trading strategies like market making, arbitrage, and even more complex ones like cross-exchange and funding rate arbitrage and incorporating DeFi.</p><p>But once you understand the theory, you can start applying it into a framework like Hummingbot and using Condor to build more sophisticated trading bots. That&#8217;s why we offer this four week online bootcamp. If you&#8217;re interested, please scan the QR code or go to the <a href="http://botcamp.xyz">botcamp.xyz</a> website to find out more.</p><p>Fede, why don&#8217;t we start by demoing what happened with the agent you started last time and what you learned from it.</p><h3><strong>Reviewing Episode 1&#8217;s Agent Results</strong></h3><p><strong>Fede:</strong> Let me share a screen. Can you see it?</p><p><strong>Mike:</strong> Yep, I can see it now.</p><p><strong>Fede:</strong> As you can see, I&#8217;m using Condor and with the command <code>/web</code> we get a link that I can put here. We can see this view. I did some improvements to the speed&#8212;I improved the caching with executors and all that stuff. I also isolated the positions that we&#8217;re going to talk a lot about in a second, but I wanted to show this agent that I&#8217;ve been working on.</p><p>This is the one we created last time. We have different sessions that I&#8217;ll explain. Basically we have this agent where we defined a strategy together, and we defined the routine that the agent will use. This is to avoid having the agent writing code on demand and taking a lot of time for that.</p><p>What we have is a process with the Agent Builder where we define what data is needed, and with that, we created this routine&#8212;a Python file that will process the data for us. In this case, this routine gives us the support and resistance levels.</p><p>Then it takes a decision, and this is what we defined with the Agent Builder last time. When we start a trading session, basically what we&#8217;re doing is getting that strategy, adding trading context (which in this case is not used), and then the session starts. It generated a few learnings.</p><p>Session three&#8212;that we started together&#8212;made $25. I have larger ones, but this one made $25, which was good. It also traded $9K in volume across 91 trades.</p><p>Let&#8217;s inspect the session. This was session three. I added this chart where you can see it filters 30 minutes before and 30 minutes after the last executor.</p><p>If we zoom, we&#8217;ll see the executors coming here. You have the IDs, what was the P&amp;L of them, so you can analyze all the executors that the agent created. We can also analyze activity and the snapshots. In the snapshot, as you can see: system prompt. This is what I showed last time&#8212;everything that entered the agent response. It ran for 852 ticks until I stopped it.</p><p>I also separated the dry run from here. I think last week it was all together, so now it&#8217;s separated. An interesting thing about these sessions is you can see different sessions and the executors on top here, but also if you want to inspect the executors, you can click on this position executor.</p><p>As you can see here, it will show only the candles around that executor. You can see the final situation. One thing I added was&#8212;because I was receiving messages from the bot saying &#8220;My signal is telling me long, but I don&#8217;t have any resistance on top to define the take profit.&#8221;</p><p>So I told the Agent Builder, &#8220;If there&#8217;s no take profit, use trailing stop,&#8221; and we finally have very good outputs here with session three.</p><p>These were trailing stops. There was no upper bound before, so it finally captured this long trend.</p><p>Also another interesting thing is we can see the learnings. This is the learnings that the session was generating. For example, here there is one: &#8220;Price below EMA 7 and EMA 25 while the EMA 7 is higher than the EMA 25&#8212;lagging bullish indicates weakness momentum. Adding this price extra feature avoids entries into declining moves.&#8221;</p><p>All these learnings are appended to the same prompt. So the agent is self-evolving with these learnings that it has. As you can see here, it persists across sessions.</p><p><strong>Mike:</strong> When does the agent write to the learnings?</p><p><strong>Fede:</strong> It can write on any tick, but it will only do it if it&#8217;s new information or something that it thinks is valuable. So it would be information that the agent thinks is important and it&#8217;s not repeated.</p><p><strong>Mike:</strong> Actually a question on the chat&#8212;maybe I can answer. &#8220;Hey guys, long time no see. I didn&#8217;t see the first episode. Could you repeat what is Condor exactly? Did you develop it or is it an external tool?&#8221;</p><p>Great question. Yeah we should probably have led with that. But yeah, for those of you who don&#8217;t know, Condor is basically the next generation interface for Hummingbot. So it&#8217;s open source. It&#8217;s by us. And just like everything else we do at Hummingbot it is open source and free.</p><p>I think Condor is actually under MIT license. But what that means is you can just go to github.com/hummingbot/condor, and you can just install it and it runs. It will run basically on top of your LLM and use exchange infrastructure directly to help you do trades.</p><p>So you can think&#8212;in terms of design, Condor has a very similar architecture to OpenClaw in that it&#8217;s an open source harness for helping your AI agent accomplish tasks for you. In this case these tasks are trading focused and we&#8217;ve also developed this web-based dashboard view to help you observe and inspect all of the things your agents are doing.</p><p>Yeah. So yeah. As you can see, we&#8217;ve also developed it for traders because we&#8217;re traders. We use Telegram bots all the time because it is Telegram native. We&#8217;ve also added like a trading interface. You can just do trades and do the basic things that you would want from a Telegram trading bot.</p><p><strong>Fede:</strong> Yeah. You can also deploy grids from here directly. It is complete in that sense. You can say, &#8220;Okay, I want to place the grid from here and start here.&#8221;</p><p>And it will create a grid executor. And the beautiful thing is it works on all the platforms that is supported by Hummingbot.</p><p>You can run a long grid on Binance and a short grid on Hyperliquid perpetual. And it will work. So yeah. This is about agents. And I remember for the first session that was interrupted, you asked me, Mike, what are the potential improvements that I will do to this?</p><p><strong>Mike:</strong> Yeah.</p><p><strong>Fede:</strong> I started creating this one. My point was, okay, this was really nice. I like a lot the fact that it made some money. Two things here. I&#8217;ll work on probably the understanding, okay, how many tokens is consuming, to see if it&#8217;s taking a lot of data or not. And then I&#8217;m doing some tests to try to replace it by local models.</p><p>I already was testing QWen 3.5, the smaller version, and it returned like some Chinese, so it was&#8212;this one was correct. But I need to verify that it is working well. That&#8217;s one thing, like trying to make it work with local models or a fine-tuned model that then Hummingbot users can get.</p><p>And the second thing is that I was trying to say, okay, where am I trading here? I am trading on volatile markets that in that day AIOT had a lot of volatility, but I want to scalp or trade on markets that are really moving, right?</p><p>So for that they need like a screener or something to check all the markets how they&#8217;re moving or where they are. Like where is the volatility. So for that, I gave Condor an endpoint to get all the tickers and the movement of the last hours of the markets.</p><p>So my point was like, okay, I should encapsulate that into a routine and just run it to see which are those markets. So I don&#8217;t need to do analysis by myself. So now if I tell Condor, &#8220;Run the top movers routine,&#8221; it would help me doing this exploration of markets in a more automated way and also in an AI way. So then I can just tell the AI to do the next step.</p><p>So as you can see, it&#8217;s telling me, okay, these are the markets that have this volume and all stuff. So now I can say, okay, &#8220;Can you run the market analysis on ARIA USDT?&#8221;</p><p>This is another routine that I created that analyzes data for a specific market. So what&#8217;s my point here? The routines are Python files that you can create with Condor that will use any external source, or will use the Hummingbot API directly to encapsulate some analysis that you want to do that can be generated with AI using Hummingbot API or any external source, and it&#8217;s going to be useful for you.</p><p>Then you can, for example, now that I have the top movers and I have also this chart that is telling me where is the grid that I want to generate&#8212;I can just deploy a grid from here.</p><p>So it&#8217;s recommending a long grid. That can be risky in this scenario. But I would say, yeah, propose a grid long grid from the support to the top. I want it to be in a range of 10% max. And put, I don&#8217;t know, let&#8217;s say 500 USD on it.</p><p>So the point is okay, now that I&#8217;m trying to get more familiar with the process, I want to see how it&#8217;s&#8212;let me see the range. Okay.</p><p>Use take profit of 7.2%, let&#8217;s say, and keep position equal to false. And then if I go here to Binance and I say to deploy, yes.</p><p>What market was ARIA?</p><p><strong>Mike:</strong> ARIA.</p><p><strong>Fede:</strong> It failed. Maybe it&#8217;s because I don&#8217;t have enough balance. Let me see.</p><p>So if it fails, you can see what happened. So see, these markets are probably the ones that I want to trade. We agreed. There it is. It&#8217;s moving 1%. It&#8217;s 7.3% per second is moving&#8212;this type of markets, right? They&#8217;re really risky, but they&#8217;re also like intermediate via take profit.</p><p>I think that it&#8217;s using all the information. I would say start certain point. Move N to zero points 57.</p><p>It was suggesting a price that was below. Yes. Okay. Now it seems like it&#8217;s actually trading. Let me submit this.</p><p>I think that I need to&#8212;it&#8217;s moving that so fast that we can&#8217;t even see the orders. The orders placed.</p><p><strong>Mike:</strong> So your order history here should show all your&#8212;okay, I see. I see your open orders. So it&#8217;s basically placing and canceling the orders around the price.</p><p><strong>Fede:</strong> These arrows are fills, so these are filling orders already. But yeah, it&#8217;s trading.</p><p><strong>Mike:</strong> So what you&#8217;re trading here&#8212;it&#8217;s a grid between what prices? Are your&#8212;it is a buy grid, right? So&#8212;</p><p><strong>Fede:</strong> If I go here to executors, I will see this buy grid that is between these two prices, between the 57 and 40.</p><p><strong>Mike:</strong> And 0.9?</p><p><strong>Fede:</strong> 0.9, 0.9. If it reaches this value, I will be taking profit.</p><p><strong>Mike:</strong> Okay.</p><p><strong>Fede:</strong> But yeah, for now it is between those levels.</p><p>And yeah, see that it is nice that this value is also updated in real time. It traded already like $300. So I almost see like a turnover of the assets. But yeah, this interesting thing about this&#8212;the more the market is moving is also another issue is that I put 0.2 of take profit.</p><p>I could also put 0.4% because see how big the market is moving. So my point here would be like, how can I start setting better and better values for the limits of the take profit, of the stop loss, all that stuff.</p><p>Also another interesting thing is that all these&#8212;let me see all history. That all of them are post only orders. So all like limit orders. It is important for the fees.</p><p>And see that the UI is moving so fast that it cannot keep track. Binance can&#8217;t keep track of the orders that I am placing that are much more than these ones.</p><p><strong>Mike:</strong> Can you go to the&#8212;can you go again to the view of this in Condor to see what information Condor has? So does this also show you the volume and the fees? Yeah. Can you show what information is shown there?</p><p><strong>Fede:</strong> Yeah. Here it&#8217;s showing the net P&amp;L, the core net P&amp;L, the volume. Okay. The fees that I paid already, the end price, the start price of the grid, some custom info. But maybe you will just see this, like at this view: buy, the P&amp;L, the P&amp;L percentage, the volume traded and the fees.</p><p>Okay. This is probably what you will see right now. But yeah, it seems like it&#8217;s moving very fast. Like this asset, this market&#8212;actually I think that it should be more volume than 600 dollars. I&#8217;ll ask Condor what&#8217;s the state of the grid?</p><p><strong>Mike:</strong> I see.</p><p><strong>Fede:</strong> Yeah, I see. Yeah, because some of the positions are like position hold.</p><p><strong>Mike:</strong> Yeah. So it seems&#8212;yeah I think one easy place to start with Condor is just starting to use it for simple manually placed grids using either the Telegram interface or using the web interface.</p><p><strong>Fede:</strong> Yeah. I think that placing grids directly from Condor is like a good starting point because you can do it on spot, on perps at the same time. You can do it very fast and generate volume or trade and generate profits depending on where the market goes. And yeah, I think that is a good starting point. Because it&#8217;s easier to understand&#8212;for anyone that wants to run a grid, it would be very simple.</p><p><strong>Mike:</strong> Okay. Maybe another time to segue into the next part of what we can do. So let me answer one question from the chat. I think Joshua said he has a couple questions about where to learn. And if we train a local model what would be better.</p><p>Yeah, let me show my screen. I can go into what that looks like. Let me share the screen here.</p><h3><strong>Hyperliquid RWA Markets Demo</strong></h3><p><strong>Mike:</strong> Share my screen. Okay. So here yeah, I want to share the perspective of a user of just like a new user&#8212;especially because I&#8217;m quite interested in trying to see if I can run an agent on this market here on Hyperliquid.</p><p>This is the oil futures market on Hyperliquid. Recently people have been trading these HIP-3 markets quite a lot. So now you can see this market, this WTI oil, is actually the third most active market on Hyperliquid just behind BTC and ETH. And the reason is because these markets are more liquid now. They trade 24/7.</p><p>So I think for a lot of the TradFi folks out there who were used to trade these on the CME, now they&#8217;re trading on Hyperliquid and other crypto venues.</p><p>So these are perpetual markets and now they&#8217;re all supported in Hummingbot. As of a couple releases ago, HIP-3 markets are now supported. There are some tweaks with the ticker because this market has an issuer. The issuer is TradeXYZ, but there might be other issuers that are trading other kinds of real world assets&#8212;there might be other issuers like Cashier as well.</p><p>So when you represent the ticker for this market in Hummingbot, you have to use the issuer colon, and then the trading pair to fetch it. That&#8217;s a bit of a gotcha. But we should be able to improve either the MCP layer or the API layer to better handle this in the future.</p><p>All right. So the first thing I&#8217;m gonna try to do is go into Condor here. And actually I had created one earlier during the dress rehearsal livestream.</p><p>So back then I created an order executor. So that&#8217;s the position you see right here.</p><p>And if I go into my Condor, my web interface, let me do that.</p><p>Here I can also see the executor&#8212;the position that the executor has created right here. Yeah, because I just started a new instance of Condor. The executor has stopped, but it moved that position here into positions because I still have the position active. And it&#8217;s one that I&#8217;ve kept around as inventory that this process has maintained.</p><p>So this position feature you&#8217;ll see us use&#8212;it&#8217;s what allows each agent to isolate its impact on your portfolio from other agents. And so you can think of the positions for every agent&#8212;I think we&#8217;re also gonna rename this &#8220;inventory&#8221;&#8212;but to track the virtual portfolio that each agent has acquired and the agent can make decisions about what to do.</p><p>For example, as a market maker, maybe after you&#8217;ve acquired&#8212;</p><p><strong>Fede:</strong> Mike. Mike can you zoom in that page? Are you sharing from your Mac or from your external monitor?</p><p><strong>Mike:</strong> I&#8217;m sharing from my external monitor.</p><p><strong>Fede:</strong> It is better to share probably from the Mac because of the resolution.</p><p><strong>Mike:</strong> Oh, okay. Got it. I see what you mean.</p><p><strong>Fede:</strong> In the meanwhile, I&#8217;ll reply. Yeah, deploying a bot from the trained agent will be something that we can do soon. Right now you can deploy bots from Condor. Right now, I&#8217;m currently doing that with my friends. We are running bots for customers. We are managing all the bots through Condor.</p><p>With all the bots, we deploy all the controllers. We have Condor analyze the controller performance. We can edit the controller configs through Condor and then redeploy. So that&#8217;s a question for that.</p><p>And regarding back testing, I am adding back testing. I am going to add&#8212;I&#8217;m currently doing that&#8212;back testing for grids. And I also added the position hold to the back testing. So yeah, that will be an improvement that will probably be available next week.</p><p><strong>Mike:</strong> Do&#8212;yeah. But yeah. So this position concept I think is actually an important one. Actually, if you want to learn more you can go to the new Condor website, which was just published yesterday.</p><p>The website is condor.hummingbot.org. I&#8217;ll put it in Restream chat right here.</p><p>But basically this website&#8212;it&#8217;s AI generated. It is based on the current branch, Hummingbot API and Condor. So it should be relatively up to date. But our team will be polishing and checking it over the next four weeks. But it should give you an introduction into what Condor is, getting started with installing both Hummingbot API and Condor, integrating your LLM.</p><p>So right now we recommend using it with Claude. But we&#8217;ve tested it with Gemini and Codex as well. And we&#8217;re also playing around with some other local models.</p><p><strong>Fede:</strong> But&#8212;</p><p><strong>Mike:</strong> It should work well with Claude. Now, one reason is because Condor actually just uses Claude Code under the hood. So it&#8217;s basically a meta harness, and so you can actually start the same session from Claude that you have with Condor.</p><p>I can show that later. But basically if you&#8217;re logged in to Claude Code and then you start Condor, it should automatically work because you&#8217;ve already connected to Claude Code. But let us know in the chat or in GitHub if you have any issues.</p><p>But after that, you probably want to add your credentials either spot or perpetual keys with the keys command. And then after you&#8217;ve added credentials, you should be able to see your portfolio using either the portfolio command or in the web view.</p><p>So once you&#8217;ve done that, you can explore the other functionalities. For example, you can do trading, you may want to manage Gateway and do operational indexes like LPing. And you can run bots.</p><p>So bots are basically the traditional kind of Hummingbot strategies where you define deterministically what the logic is. And it runs deterministically.</p><p>You can run bots already, I believe, through the Condor web interface here in the bot menu. But we haven&#8217;t fully tested all this out yet. This is like&#8212;we actually used to have a dashboard in Hummingbot that allowed you to deploy bots. And this bots page in the new Condor web interface is basically a replacement for that dashboard.</p><p>However, I think the more interesting thing that we want to explore is what you can do with agents like the one that Fede built last time. So yeah, just as a recap&#8212;I wanted to do more with this WTI market on Hyperliquid.</p><p>So first, the first thing I&#8217;m gonna try to do&#8212;actually, I think we&#8217;ll just place a grid on this market.</p><p>Yeah, the ticker is CL USD, but I think in Condor I need to call it different, right? I have to give it a different name to get&#8212;let&#8217;s see actually, let me get my portfolio first. Make sure I have access to my portfolio.</p><p>Let&#8217;s see. I think it&#8217;s a bit slow because it has to check my Ethereum balances. Yeah, it&#8217;s getting the quote from Ethereum tokens right now. That&#8217;s why it&#8217;s a bit slower. If I had just connected centralized exchanges and Hyperliquid, it would probably be a lot faster. But it&#8217;s fetching the quote right now.</p><p>It&#8217;s still fetching the web quote. So now it has a quote. So now it has prices for all assets in my portfolio, and you can see now I can see the balances and the current values of all my assets.</p><p>So I think the unique feature about Hummingbot is that we integrate to pretty much every single exchange and blockchain out there.</p><p>So that&#8217;s why I can see my balances on both Hyperliquid&#8212;there&#8217;s other centralized exchanges like Binance that I could connect&#8212;but I can also see my assets on Solana and Ethereum networks as well.</p><p>So yeah, let me go into the web view and actually&#8212;yeah, before I actually, before I do that, let me go into agent mode. And then so I can talk to my agent. Actually do I need to go agent mode, Fede, or I can just say hi?</p><p><strong>Fede:</strong> You can just say hi. The agent mode&#8212;you need to go if you want to restart the conversation or switch to the Agent Builder.</p><p><strong>Mike:</strong> Okay. Okay.</p><p><strong>Fede:</strong> Actually I think that if you send a dash&#8212;enter that should also reset the session.</p><p><strong>Mike:</strong> Cool, cool. Okay. So let me just&#8212;I&#8217;ll do what I would think I would do. So I&#8217;ll say: get me info on this WTI oil&#8212;</p><p><strong>Fede:</strong> No, but WTI will not work because it&#8217;s not the right thing.</p><p><strong>Mike:</strong> I know, right? I&#8217;m trying to demo this. Yeah, I know it&#8217;ll fail. I&#8217;m trying to demo what would happen if you actually did what you think you should do, which is just type in what&#8217;s on Hyperliquid into the chat.</p><p>Yeah, I want to demo this because there are unfortunately few gotchas with Hyperliquid and also the integration with Hummingbot. But yeah, this is something that&#8212;yeah, once you figure it out, it&#8217;ll be much, much clearer.</p><p>So right now it&#8217;s trying to find this ticker and what it&#8217;s actually doing under the hood. It&#8217;s looking at the trading rules for Hyperliquid, which has a list of all the tickers, and it&#8217;s just trying to match this ticker to find.</p><p>Yeah, so CL was not able to find the market. So there&#8217;s a couple of things here that we have to go&#8212;actually this is&#8212;I was actually using this skill that I had called &#8220;connections available.&#8221;</p><p>But actually let me give it some more hints. I think the CL USD market on&#8212;yeah, because the ticker is actually CL for those of you&#8212;oh, actually, so now I actually did find more markets. Okay. Because this actually&#8212;the value of Condor&#8212;because it can do some analysis on what it finds.</p><p>And it did find the markets in the right convention. So in Hummingbot, because of the issuer, the convention is issuer colon, and then the trading pair. So actually let me&#8212;did you, yeah did you remove yourself or was it&#8212;</p><p><strong>Fede:</strong> No. It was a very small interruption that the system went down for 30 seconds, but I never came back.</p><p><strong>Mike:</strong> Okay. Now you&#8217;re back.</p><p>Okay. So yeah, I&#8217;m still the stream host, so yeah, I want to explain that. Yeah. So actually, look, it actually did find some tickers in the right format.</p><p>Yeah. I think I actually want to use XYZ:CL-USD&#8212;check prices. So yeah, so the right format is actually XYZ:CL-USD. This will basically allow Hummingbot to find the right ticker, fetch the right balance, and then be able to execute trades in that market.</p><p>Okay. So now it has a market. And so now I could place a grid executor like this or I could use the web interface, Fede, to do it.</p><p><strong>Fede:</strong> Yeah.</p><p><strong>Mike:</strong> Let me actually use the web interface because I think you did it the other way before.</p><h3><strong>Grid Executor Parameters Deep Dive</strong></h3><p><strong>Mike:</strong> So now I go to the web interface here. I can go to executors and then do a new grid executor to place a grid executor in a market.</p><p>And here is the market on Hyperliquid. So now I can already see the market on Hyperliquid. This is basically the same information that I would see if I went to the Hyperliquid market. Except again, this is a little more streamlined, slimmed down. But this is coming from the same information as in the markets tab.</p><p>Okay. So now if I wanted to place a grid&#8212;so here, which should I click on?</p><p><strong>Fede:</strong> I think that you can start with auto field right here, right?</p><p><strong>Mike:</strong> Yeah.</p><p><strong>Fede:</strong> With auto field will let you suggest some values. Probably I would recommend to lower down&#8212;click on the target icon of end price and click on the peak of that. It&#8217;s next to the chart a little bit left?</p><p>No, that one. No the one that is lower than that one. That one. Yeah. But you&#8217;re clicking in the edge. Please click again to the target. Click in the target. And click at the left. More left. More left. More left. Yeah. There.</p><p><strong>Mike:</strong> Okay.</p><p><strong>Fede:</strong> And then the grid amount. This is something that we were discussing.</p><p>Usually when you are&#8212;if you want to place like something like, let&#8217;s say 20, you need to know that will not make sense. Because if you are trading on a market that the minimum order amount is $10, you can&#8217;t put $20 because it will be just a grid of two levels.</p><p>So at least you will need to have 200 dollars of grid, let&#8217;s say.</p><p><strong>Mike:</strong> So it&#8217;s basically&#8212;it&#8217;s because of the minimum. Your minimum order here on Hyperliquid would be like 10 or $11.</p><p><strong>Fede:</strong> Yeah. And on Hyperliquid is 10, so I recommend to put 11. So you avoid rounding products.</p><p><strong>Mike:</strong> So basically what you&#8217;re saying is the reason here is because it&#8217;s like here&#8212;I put $20, there&#8217;s 32 levels. So each level is&#8212;yeah it wouldn&#8217;t be&#8212;it would be lower than the minimum order amount. So that&#8217;s why&#8212;</p><p><strong>Fede:</strong> No, that number of levels is inferred from the mean spread between orders.</p><p><strong>Mike:</strong> Oh, okay.</p><p><strong>Fede:</strong> So the mean spread between orders is telling you: with this mean spread, you&#8217;ll have 7.1. But there is also a restriction of the minimum order amount because the number of orders will be total amount divided by minimum order amount&#8212;will also be a restriction.</p><p><strong>Mike:</strong> Can I also reduce the number of grid levels placed? Would that allow me to have a lower total amount?</p><p><strong>Fede:</strong> No, because if you put 20 and your minimum order amount is 11, it will be still two orders or one order.</p><p><strong>Fede:</strong> No&#8212;the total amount divided by the minimum order amount gives you the number of orders.</p><p><strong>Mike:</strong> So here we&#8217;re placing around 20 orders. Would this configuration make sense?</p><p><strong>Fede:</strong> Yeah, that would make sense.</p><p>And then take profit. You can put it in like 0.1, let&#8217;s say. You&#8217;re putting &#8220;coerce TP to step.&#8221; That check that says &#8220;coerce TP to step&#8221;&#8212;that makes that if your take profit ends up being lower than your step, your grid step, it will use the grid step.</p><p><strong>Mike:</strong> So then this part&#8217;s not being used if I do this?</p><p><strong>Fede:</strong> You will use that value of take profit.</p><p><strong>Mike:</strong> Got it. Can you explain what &#8220;keep position&#8221; means?</p><p><strong>Fede:</strong> There&#8217;s a value in the chart that says &#8220;limit&#8221;&#8212;that&#8217;s a limit price you can configure. And basically it means that the grid will be placed between the start and the end price.</p><p>All the orders will be in that zone, but if the price goes below the start price, you need to decide what you&#8217;re going to do with the grid because you acquired, in this case, a lot of base asset, right? Or position in this case, right?</p><p>So the limit price is a way to tell you, okay, this is enough for this grid. We&#8217;re going to close it. Okay? The thing is, you have two paths here with the grid. Or with the actions that you took.</p><p>One path is you&#8217;re going&#8212;you can reverse the trade. So you will assume the loss in this case because it&#8217;s going against your price. And the other is to just keep the position and then manage the position in a long term basis, right?</p><p>So that parameter that we were looking at, that is &#8220;keep position.&#8221; What it will do&#8212;it will say, okay, if keep position is true and the price reaches the limit price, I will keep my position entirely and then I will let the user manage it in a long term.</p><p>And if you do that, you&#8217;ll see that position in the positions tab that you have at the left.</p><p>If keep position is false, it will just sell all the assets that it bought and will be starting fresh. Okay.</p><p><strong>Mike:</strong> So keeping position means keeping the inventory after this executor is over. If keep position is false, it reverses the trade and starts from a clean slate.</p><p><strong>Fede:</strong> Exactly.</p><p><strong>Mike:</strong> For perpetual positions, it&#8217;s actually quite intuitive. The executor is like one single, contained trading workflow.</p><p>Could be a single order, could be a grid of orders. And when a grid is done&#8212;do you want to keep the position you accumulated or not? Or do you want to reverse it? Okay.</p><p>Yeah. So yeah. Now I&#8217;m ready to place my grid. And yeah I think I do want to keep the position. I think if it hits the limit&#8212;actually, actually no, I don&#8217;t actually, because I&#8217;ll probably be running this for a while. I don&#8217;t want to have to come back and remember to close the position.</p><p>So in this case, when it hits the limit, it would automatically close the position at market.</p><p><strong>Mike:</strong> Okay, should I hit create now or is there anything else I need to be aware of?</p><p><strong>Fede:</strong> I think that you can just hit create. There is advanced configuration there, but I don&#8217;t think that is needed now.</p><p><strong>Mike:</strong> Let me close this position here on Hyperliquid first so we can see a clean slate. I have $500 in balance, which should be enough. Should I increase the leverage?</p><p><strong>Fede:</strong> Put 10x.</p><p><strong>Mike:</strong> So now it&#8217;s only gonna use $20 of my actual capital since the total grid amount is $200 with 10x leverage. Let&#8217;s create the grid.</p><p>Okay. It&#8217;s created. It looks like it&#8217;s created. And then on Hyperliquid, I should be able to see&#8212;Yep. Here are the orders that it created. Yeah, it created&#8212;this is a buy grid, so it&#8217;s created only long orders. Created them below the current price. So if the price goes down, it would create those orders and it&#8217;s already created a position already.</p><p>Cool. So now if I go to Condor&#8212;yeah. Let&#8217;s see. Yeah. This shows me the running grid executor here.</p><p>So let me see if I can just visualize this and try to understand this in my own words. So this is the start price here, the end price, and the limit price.</p><p>Awesome. So basically what that means is the grid&#8212;because it will buy orders here and each one of these buys is a position executor. So each one has a take profit level. What happens if the price exceeds this value?</p><p><strong>Fede:</strong> It would be closed at take profit. You end up with zero positions.</p><p><strong>Mike:</strong> Got it. Is there a time limit on this executor?</p><p><strong>Fede:</strong> I think you can define one, but I don&#8217;t use it.</p><p><strong>Mike:</strong> The concept of the executor is that it packages nested trading workflows together.</p><p>Like here for example, it&#8217;s creating a grid. You could do this with single trades or call an API directly, but then you&#8217;re doing a lot of things over and over again. So it abstracts this trading workflow into a single package and it ensures that what this executor is doing is isolated from what other executors are doing.</p><p>And when it closes, when it ends, you can decide whether to track the impact of that or not. And when you track the impact of it, it&#8217;s basically gonna create a position in what we&#8217;ll probably rename &#8220;inventory&#8221; in a few weeks.</p><p>And this inventory is what allows your agents to maintain isolation from each other. Because once you have an agent running, it acquires inventory by starting executors, stopping executors. And executors are what allow it to do different things on different exchanges while maintaining consistency in terms of how those are handled.</p><p>Because it means you can do a short position on a perpetual exchange, do a long buy order executor on a spot exchange. And the way those are handled all use the same kind of P&amp;L dimensions. They all do the same reporting.</p><p>So your agents can create executors, stop them, and then have them all treated in the same way. So that&#8217;s really kind of&#8212;I think that&#8217;s why we standardize everything into this framework.</p><p>And the benefit is, I think you can run many agents at scale and then be sure that they&#8217;re all working alongside each other.</p><p>All right. My grid&#8217;s been running for a while. This custom info is what the executor is reporting.</p><p><strong>Fede:</strong> That&#8217;s the raw config.</p><p><strong>Mike:</strong> The raw configuration for the grid itself. The grid is still running and doing quite a lot&#8212;these are the take profits for the open positions. So far I&#8217;ve only lost 1 cent and it&#8217;s traded $46 of volume already.</p><p>Let me now go into Condor. Yeah, I think the last thing I want to cover today was just kind of starting some type of agent that would do this.</p><p>But so instead of me starting grids and just starting to manually&#8212;maybe building agents that would do this on Hyperliquid.</p><p>So actually let me stop this first before we proceed. So can I just hit the stop button to do it?</p><p><strong>Fede:</strong> Yeah. But let it run until you finish the session.</p><p><strong>Mike:</strong> Okay. To&#8212;yeah. So I&#8217;ll do that.</p><h3><strong>Building an Agent for Hyperliquid</strong></h3><p><strong>Mike:</strong> So now let me build an agent that decides when to place these grids.</p><p><strong>Fede:</strong> Go from Telegram. In the meanwhile, I&#8217;ll answer a few questions. The limit price is essentially a stop loss. If it makes sense to make it with dynamic price ranges based on EMAs&#8212;that&#8217;s exactly what you can do with the Agent Builder. With the agent mode, the idea is that we can create these trading agents that can deploy grids based on these dynamic things.</p><p>One can be the EMA that you are mentioning, Via My Life. And then there is no video to set up this dashboard with Ubuntu Linux. Yeah, maybe we can do these live streams to show that&#8212;maybe, but probably we can create this video doing it, right?</p><p><strong>Mike:</strong> Yeah. Yeah. There&#8217;s a lot of&#8212;I would say we haven&#8217;t done that much on the front end for Hummingbot. We&#8217;ve been mostly working on the backend. So I think for those of you who want a dashboard kind of experience, this is basically like the&#8212;</p><p><strong>Fede:</strong> But they&#8217;re asking for a video of how to do the setup.</p><p><strong>Mike:</strong> If you have questions about setup, post them on GitHub. In the future we&#8217;ll make more infrastructure videos, but the goal of these live streams is to show what you can do with Hummingbot and Condor.</p><p>Now I&#8217;m familiar with creating grids through Condor and the web. Let&#8217;s create a proper agent using Agent Builder.</p><p><strong>Fede:</strong> Go to agent, then switch mode to Agent Builder. Tell it you want to create an agent.</p><p><strong>Mike:</strong> I want to create an agent that trades XYZ:CL-USD. It asks for strategy type, so I&#8217;ll say grid trading, both long and short, $300 budget, scalping style, high risk tolerance.</p><p>The recommended settings: 5x leverage with 10 grid levels per side, analyze volatility each tick, set grid bounds dynamically, limit maker orders, tick frequency every 60 seconds, max loss per tick $30. That seems reasonable.</p><p><strong>Fede:</strong> Tell it you want to create a routine for the agent to analyze where to put the grids. That&#8217;s phase two&#8212;the market data routine.</p><p>Why is Agent Builder structured this way? First, you define your strategy briefly so the agent has context.</p><p>The second step is to code this market data routine. The first thing that you always want to do is to make sure that the market data that you&#8217;re using is correct and is doing what you want. So this will create a Python file that you can reproduce at any time, and then you can continue.</p><p>Once you have the data and you have the basic guidelines, you can define what the decision flow for your agent looks like. And then you have a way to test in dry run mode where you just see, okay, where the agent will be putting the order and stuff. And then it will finally let you run in loop or in run mode.</p><p>But it&#8217;s kind of aggressive&#8212;</p><p><strong>Mike:</strong> It&#8217;s failing to fetch the order book&#8212;the issuer is being stripped out somehow.</p><p><strong>Fede:</strong> It&#8217;s fixing the routine. This is exactly why you want routines&#8212;see how much time is spent until you finally get Python code that works. Now it works.</p><p><strong>Mike:</strong> It had to fetch the right endpoints for candles and order book. The chart shows a bearish trend. Should I move on to phase three&#8212;dry run?</p><p><strong>Fede:</strong> Yeah. There might be some rate oracle issues with those perps, but the PR I merged should fix that.</p><p><strong>Mike:</strong> What is a dry run versus an actual run?</p><p><strong>Fede:</strong> Dry run tests the reasoning of the agent without actually executing anything&#8212;just proposals. It&#8217;ll fetch data and run the routine, but won&#8217;t run any executors.</p><p>If you go to the website under agents, you&#8217;ll see your grid scalper agent. Click on the experiment to see all the data your agent is seeing. One thing&#8212;you can&#8217;t deploy two grids in Hyperliquid, so update the prompt to specify only one position at a time.</p><p><strong>Mike:</strong> So it updates the Agent.md file?</p><p><strong>Fede:</strong> Yeah, it will do it for you. It&#8217;s the actual strategy file.</p><p><strong>Mike:</strong> This is cool&#8212;if you open the Condor folder, you see every agent in trading agents. Here&#8217;s my grid scalper agent with the dry run and routines. This routine analyzes the CL market on Hyperliquid and fetches the information needed for analysis.</p><p>Should I start for real?</p><p><strong>Fede:</strong> Try another dry run first to verify it&#8217;s only proposing one grid. Stop the other grid you have running.</p><p>To answer Saul&#8217;s question&#8212;when you install Condor, it asks if you have Hummingbot API running. If not, it deploys Hummingbot API in Docker for you. Condor is installed with Python using UV, so you don&#8217;t need Anaconda.</p><p><strong>Mike:</strong> Let&#8217;s look at the dry run. This is the second one&#8212;neutral long grid. Let&#8217;s start.</p><p><strong>Fede:</strong> Clone the repo and follow installation steps. You need a Telegram bot token from BotFather and your user ID for security.</p><p><strong>Mike:</strong> Cool. Let&#8217;s start the agent.</p><p>Agent started. It&#8217;s 60 seconds per tick. On the first tick, it sends Agent.md and other information to the LLM, runs the routine, and makes decisions.</p><p><strong>Fede:</strong> Go to snapshots. Click on number one&#8212;the system prompt shows everything entering: strategy file, learnings, and other context.</p><p><strong>Mike:</strong> It analyzed spreads and executed a long grid. But it says status closed with take profit&#8212;seems like it picked a wrong price.</p><p><strong>Fede:</strong> Tell Condor you&#8217;re seeing grids closed by take profit at wrong prices. That will improve the Agent.md.</p><p><strong>Mike:</strong> The strategy instructions were wrong. Let me fix and restart.</p><p>Session three is now placing orders in the CL market. There&#8217;s a couple of buys and sells, one position. Looks operational.</p><p><strong>Fede:</strong> That&#8217;s correct. Let&#8217;s see the next tick. It should wait for that grid to end.</p><p><strong>Mike:</strong> The grid just closed some orders.</p><p>You see what the grid actually&#8212;here, it looks like. So this saying the mid is 93.31&#8212;the grid is 93.31 to 94.23. Still start price. Okay.</p><p><strong>Fede:</strong> Yeah. But see that down there says like a summary: &#8220;Existing long grid still valid. Price within range. P&amp;L with limits. No replacement either.&#8221;</p><p><strong>Mike:</strong> Yeah, no, actually this is pretty cool. Because I&#8217;ll be honest, I&#8217;m not an expert in grid trading. I only trade on Solana DEXs. I have no idea what I&#8217;m doing in terms of grid trading.</p><p>But now with this, I feel like I have a slightly better idea of what I&#8217;m doing, helping me deploy these grids and making sure that all the parameters are correct.</p><p>I&#8217;m happy to let this run and learn from the learnings it generates. Let me summarize: I used Condor to deploy grids manually and through the executor&#8217;s menu, then created an agent that deploys grids based on market data and learns over time.</p><p>I&#8217;ll let this run and review the results next time. Next episode we should cover routines&#8212;how to build custom routines is powerful for integrating external data sources or special indicators.</p><p><strong>Fede:</strong> Sounds good.</p><h3><strong>Wrap-up and Q&amp;A</strong></h3><p><strong>Mike:</strong> Yeah. But finally I want to call out&#8212;yeah we are still running our Botcamp. Market Maker Bootcamp. So we have cohort 13 starting pretty soon.</p><p>There&#8217;s a QR code with an info session link that&#8217;s streaming right now on the upper right. That&#8217;s actually&#8212;I should probably mention this at the very beginning. That&#8217;s a free info session that we&#8217;re running for folks to get information about the cohort.</p><p>It also serves as a welcome session for those who are participating in the cohort. Because as you can see, we&#8217;ve made lots of changes to the Hummingbot open source framework. And we&#8217;ve revamped the curriculum entirely so we can start teaching how people can start creating trading bots using AI as well as the old fashioned way.</p><p>The Botcamp is still structured to teach you the theory of market making, algo trading, and arbitrage. We&#8217;ll learn different types of strategies that people employ in professional market making, and then we&#8217;ll also learn how to customize and build your own strategy.</p><p>And in the past, I think the one reason we&#8217;re excited about this Botcamp is because in the past you really had to be a Python developer in order to code up a truly sophisticated strategy.</p><p>But now with AI, it&#8217;s much easier to describe what you want. Keep on iterating on it&#8212;looking at what we just did&#8212;continuing crafting the Agent.md file and get to a point where your agent is even better than a deterministic strategy.</p><p>So that&#8217;s why I think what you&#8217;ll learn at Botcamp is basically all that in a compressed three&#8212;a little over a three week online boot camp.</p><p>And then after Botcamp, we&#8217;re gonna do our first agent training competition where people who&#8217;ve created the agents can run them, make the strategies publicly available, and then compete for prizes that are sponsored by exchanges and other crypto funds.</p><p>There&#8217;s information about that on the Botcamp website. So if interested, go to botcamp.xyz.</p><p><strong>Fede:</strong> Yeah.</p><p><strong>Mike:</strong> Let me answer a few more questions that we got from the community before we end.</p><p>I see one here from Saul, which is: &#8220;Is there any way to use Condor/Hummingbot to deploy strategies based on external data ingestion?&#8221;</p><p>Great question. That&#8217;s exactly what we&#8217;ll cover in the next episode. I think that&#8217;s the role of routines. I think the one that Fede demonstrated from Binance top movers&#8212;that was actually not using Hummingbot API data, it was a separate API that integrated to build that top mover&#8217;s routine.</p><p>So next week I think we&#8217;ll cover what is a routine, how you can use Condor to build it, and how you can pull in external data sources using your routines.</p><p><strong>Fede:</strong> See, yeah I think that, Mike, that would be really good for the next session&#8212;like showing how we can get external data from a routine and do something with that. Like showing, okay, this is how you integrate this external data and this is how you can actually use it.</p><p><strong>Fede:</strong> It terminated the previous grid and deployed a new one. It traded a bit. The terminated one ended up as position hold.</p><p><strong>Mike:</strong> This is the inventory that this bot maintains&#8212;what I was referring to earlier.</p><p>So over time you may have more than one agent running and each agent will have its own kind of inventory positions that is maintained. And that&#8217;s how it can know&#8212;it can make decisions based on how much inventory is accumulated.</p><p>And you can track each agent separately and see which one&#8217;s doing what you want versus what you don&#8217;t want.</p><p>So yeah, again, this is all open source. It&#8217;s all free. But we think this is gonna be the next generation interface for Hummingbot. It still works the same old fashioned way. It is still a reliable execution layer across all exchanges.</p><p>And now we&#8217;ve also added blockchain networks&#8212;Solana, Ethereum as well. But in order to use it to manage a fleet of agents, what you want is something that can act reliably across all of these different markets in a standardized way.</p><p>That&#8217;s why we have this concept of positions and executors and so forth.</p><p>Actually, yeah I should&#8212;if you&#8217;re interested in more details, take a look at the Condor documentation. We have more information here on the architecture of a trading agent. Probably need to clean this up a bit but there&#8217;s more information here about why we design this trading agent structure in this way.</p><p>Because we think that if you&#8217;re actually gonna be running lots and lots of agents&#8212;if you want to set up a quant trading firm or a market making firm, you&#8217;ll likely be running lots of different separate processes. You&#8217;ll need to separate them all and do them in a proper fashion.</p><p>That&#8217;s why we built this trading agent framework.</p><p>And yeah, so read this to get a better understanding of it. But over the next few months, we&#8217;ll be adding different types of&#8212;more&#8212;we&#8217;ll build the framework, we&#8217;ll probably be adding different types of executors for you to do different things on different types of venues.</p><p>But we&#8217;ll try to make sure that all have the same way that they track P&amp;L, how they track value. And every agent can decide&#8212;can track exactly which positions or how much inventory they have accumulated.</p><p>Because that way I think it allows one person or a small team to manage a larger and larger number of separate processes for different clients&#8212;or maybe some are for experimentation, some are for production.</p><p>So it allows you to manage multiple processes at once. But yeah, check this out. There&#8217;s also an API reference here.</p><p>Soon you&#8217;ll be able to try out any API endpoints directly from the docs. For example, to see what executors are available, you can get the types. You can do this through Swagger on your local API, or give your Claude or Codex access to this repo to understand which endpoints to call.</p><p>Condor is designed so you don&#8217;t need to call these API endpoints directly&#8212;there&#8217;s an MCP and tools layer that allows the LLM to call them. But sometimes you may want to call the API directly, and that&#8217;s where this reference comes in handy.</p><p>Yeah. One question&#8212;one final question from Zach. Zach says: &#8220;I did use a deployed repository to set up a VPS, but the dashboard is not working. How to fix.&#8221;</p><p>The dashboard probably should be working, but I think one reason why we built Condor is to basically replace kind of dashboard.</p><p>Basically what you probably want to be doing with dashboard is deploying bots&#8212;probably in the future, probably back testing as well. So back testing is not here yet but&#8212;but I think deploying bots is.</p><p>So if you want to just use a web-based interface to deploy bots, this is basically&#8212;this should be possible through this bots menu.</p><p>Overall, I would say we&#8217;re not gonna fully deprecate dashboard because it is still operational. We&#8217;re gonna put our focus into building Condor instead.</p><p><strong>Fede:</strong> Don&#8217;t use the old deploy repo. Clone the Condor repo, set up the URL with your IP address and ports. If you have issues, ask in the Condor feedback channel on Discord&#8212;we fixed some issues this week.</p><p><strong>Mike:</strong> We&#8217;ll update the docs to be consistent with Condor. It&#8217;s simple: go to github.com/hummingbot/condor, clone the repo, run <code>make install</code> and <code>make run</code>.</p><p>Thank you everyone for joining. Apologies it was an hour late&#8212;we had an accidental internal dress rehearsal. Next week we&#8217;ll review this grid scalper agent and cover how to create custom routines.</p><p>See you next time on The Bot Pod!</p><p><strong>Fede:</strong> Bye-bye.</p><p><strong>Fede:</strong> Alright. Bye-bye.</p>]]></content:encoded></item><item><title><![CDATA[The Bot Pod Episode 1: Trading Agents in Condor]]></title><description><![CDATA[Watch now | In the debut episode of The Bot Pod, Hummingbot maintainers Mike and Fede introduce Condor&#8212;a new open source harness for building autonomous trading agents.]]></description><link>https://hummingbot.substack.com/p/the-bot-pod-episode-1-trading-agents</link><guid isPermaLink="false">https://hummingbot.substack.com/p/the-bot-pod-episode-1-trading-agents</guid><dc:creator><![CDATA[Hummingbot Foundation]]></dc:creator><pubDate>Fri, 03 Apr 2026 20:41:55 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/193109445/df4133bd562ac1543b4a558703786f7b.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>We&#8217;re excited to launch <strong>The Bot Pod</strong>, a new weekly podcast from Hummingbot where maintainers Mike and Fede dive deep into the intersection of AI and crypto trading. Each episode features live demos, technical walkthroughs, and insights into what we&#8217;re building at Hummingbot.</p><p>In this debut episode, we unveil <strong>Condor</strong>&#8212;our new open source harness for building autonomous trading agents. Watch us build and deploy a live trading agent from scratch, and see it place its first trade on air.</p><p><strong>Watch the full episode:</strong> <a href="https://www.youtube.com/watch?v=O93R_ddB-8o">YouTube</a></p><div><hr></div><h2><strong>Episode Highlights</strong></h2><h3><strong>What is Condor?</strong></h3><p><a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=0s">0:00</a> &#8212; Mike introduces The Bot Pod and explains why we&#8217;re building Condor: an agent harness similar to OpenClaw, but specifically designed for trading tasks. While OpenClaw focuses on general productivity, Condor is built for collecting market data, executing trades, and managing risk&#8212;all while talking to LLMs like Claude.</p><h3><strong>The Trading Agent Framework</strong></h3><p><a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=540s">9:00</a> &#8212; Fede breaks down how trading agents work, introducing the concept of a &#8220;tick&#8221; (one turn of the agent loop) and explaining the three possible outcomes: do nothing, stop an execution, or create a new position. He covers:</p><ul><li><p><strong>Executors</strong>: Isolated trading units that standardize execution across 50+ exchange connectors</p></li><li><p><strong>The Prompt Structure</strong>: System prompt, Agent.md, Journal, Learnings, Routines, Tools, and Active Executors</p></li><li><p><strong>Three Run Modes</strong>: Dry run (no execution), Run once (single tick), and Loop (live trading)</p></li></ul><h3><strong>Why Routines Matter</strong></h3><p><a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=1440s">24:00</a> &#8212; Fede explains how routines (deterministic Python files) reduced agent reasoning time from 2 minutes to under 60 seconds by pre-processing market data instead of letting the LLM write code on the fly.</p><h3><strong>Python vs Rust for Trading</strong></h3><p><a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=1530s">25:30</a> &#8212; Mike and Fede address the common question about performance. The real bottleneck isn&#8217;t Python&#8212;it&#8217;s network latency (200ms) and LLM response times. Fede also shares a sneak peek at Hermes, a Rust-based system achieving sub-0.1ms processing times.</p><h3><strong>Live Condor Demo</strong></h3><p><a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=1980s">33:00</a> &#8212; Fede demonstrates Condor in action via Telegram:</p><ul><li><p>Checking balances across exchanges</p></li><li><p>Running technical analysis routines</p></li><li><p>Deploying a grid executor with a single chat message</p></li><li><p>Using the new React-based web dashboard</p></li></ul><h3><strong>Botcamp Cohort 13 &amp; AI Trading Competition</strong></h3><p><a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=2610s">43:30</a> &#8212; Mike announces Botcamp Cohort 13, starting April 21st. This cohort culminates in an <strong>AI Agent Trading Competition</strong> with $13,000+ in prizes from exchange and fund sponsors. Use code <strong>INFOSESH25</strong> for 25% off.</p><h3><strong>Building an Agent Live with Agent Builder</strong></h3><p><a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=2940s">49:00</a> &#8212; The highlight of the episode: Fede walks through the Agent Builder to create a perps scalping strategy from scratch:</p><ol><li><p><strong>Phase 1</strong>: Define strategy (scalping perps with tight stops on AIOT-USDT)</p></li><li><p><strong>Phase 2</strong>: Create analysis routine (support/resistance + EMAs)</p></li><li><p><strong>Phase 3</strong>: Generate Agent.md with decision logic</p></li><li><p><strong>Phase 4</strong>: Test with dry runs</p></li><li><p><strong>Phase 5</strong>: Deploy live</p></li></ol><h3><strong>First Agent Trade on The Bot Pod</strong></h3><p><a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=4230s">1:10:30</a> &#8212; The agent places its first live trade! We watch it identify a bullish trend flip, open a long position with take profit, and (spoiler) hit its stop loss. This leads to a discussion about agent learning and how the Learnings.md file allows agents to improve over time.</p><h3><strong>Agent Isolation &amp; Scaling</strong></h3><p><a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=4320s">1:12:00</a> &#8212; Fede explains how executor ownership enables complete isolation between agents. Each agent has its own virtual portfolio and executors, allowing you to run 10+ agents in parallel without conflicts.</p><div><hr></div><h2><strong>Key Takeaways</strong></h2><ol><li><p><strong>Condor is free and open source</strong> &#8212; Clone it from <a href="https://github.com/hummingbot/condor">github.com/hummingbot/condor</a> and start building today</p></li><li><p><strong>Structure beats flexibility</strong> &#8212; Executors and routines provide guardrails that prevent agents from doing &#8220;random things on your account&#8221;</p></li><li><p><strong>Observability is critical</strong> &#8212; Every agent tick is captured in snapshots showing the full prompt, reasoning, and actions taken</p></li><li><p><strong>Learning is built in</strong> &#8212; The Journal tracks session-specific memory while Learnings.md persists insights across all trading sessions</p></li><li><p><strong>Multiple LLMs supported</strong> &#8212; Works with Claude, Codex, Gemini, OpenAI, and soon Ollama for local models</p></li></ol><div><hr></div><h2><strong>Resources</strong></h2><ul><li><p><strong>Condor Repository</strong>: <a href="https://github.com/hummingbot/condor">github.com/hummingbot/condor</a></p></li><li><p><strong>Botcamp Cohort 13</strong>: <a href="https://www.botcamp.xyz/cohorts/cohort13/landing">botcamp.xyz</a> (use code <strong>INFOSESH25</strong> for 25% off)</p></li><li><p><strong>Discord</strong>: <a href="https://discord.gg/hummingbot">discord.gg/hummingbot</a></p></li></ul><div><hr></div><h2><strong>Watch Live Every Friday</strong></h2><p>The Bot Pod streams live every Friday at:</p><ul><li><p>9:00 AM Pacific / 12:00 PM Eastern</p></li><li><p>Late afternoon in South America</p></li><li><p>Late evening in Europe and Asia</p></li></ul><p>Catch us on <strong>YouTube</strong>, <strong>Twitch</strong>, and <strong>X (Twitter)</strong>.</p><div><hr></div><h2><strong>Full Transcript</strong></h2><h3><strong>Show Kickoff and Goals</strong></h3><p><a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=0s">0:00</a></p><p><strong>Mike:</strong> Welcome everyone! This is the first ever episode of The Bot Pod. I&#8217;m Mike, and we have Fede here. We&#8217;re the maintainers of the Hummingbot open source framework, which helps you automate your crypto trading. Hopefully you can hear us.</p><p>We&#8217;re coming at you live from our respective home offices. I&#8217;m based in California and Fede is based in Mar del Plata, Argentina. Looks like we have some people joining already, so feel free to ask your questions in the chat.</p><p>We have a user asking: &#8220;Is it possible to make a minimum of $100 in profit per day?&#8221; We actually get this question a lot. I would say it&#8217;s definitely possible&#8212;like any kind of trading, your reward is tied to the level of risk you take. You could have a million dollars, run a very safe strategy, and make $100 a day. But if you&#8217;re starting with $1,000 and want to make $100 a day, then you have to take a lot of risk.</p><p><a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=60s">1:00</a> That&#8217;s one thing we try to teach people. We also have an educational platform called Botcamp that uses the open source framework to teach trading and market making. One of the principles we try to teach is that trading is not a black box. It&#8217;s not just something where you put money in and money comes out the other side. There&#8217;s an art and science to creating a proper trading strategy.</p><p>Anyway, I want to give Fede a chance to introduce himself as well, because he&#8217;ll be doing the main screen share today.</p><p><a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=120s">2:00</a></p><p><strong>Fede:</strong> Yeah, I&#8217;m Fede, I&#8217;m from Argentina. I&#8217;m the CTO of Hummingbot. I&#8217;m really excited about what&#8217;s happening right now in the AI landscape. It&#8217;s really interesting&#8212;every day something new comes out. It&#8217;s a great time to be alive.</p><p>Today we&#8217;ll show some of the advances we&#8217;ve been making on our trading agent. We really think you should use a specific framework designed for agent trading rather than a general one. That&#8217;s what we&#8217;re trying to build. We&#8217;re constantly reviewing all the different solutions out there, trying to create the best one we can.</p><p>We think we&#8217;re on a good path. We&#8217;re finally creating our first agents. I&#8217;m really excited <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=180s">3:00</a> to be here, and we&#8217;ll try to learn as much as we can from your feedback and improve it every day.</p><p><strong>Mike:</strong> Yeah, I apologize&#8212;I was a bit remiss in not explaining what this is. We&#8217;ve actually been doing weekly livestreams here at Hummingbot for many years, even since before the pandemic. But now that we&#8217;re building at the intersection of AI and crypto trading, we think this is a subject that a lot of people are interested in.</p><p>So we&#8217;re turning this into a weekly podcast. We&#8217;ll do about a one-hour demo of what we&#8217;re working on, demo some agents running in the wild built using our framework, and also explain some theory about why these agents are built the way they are. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=240s">4:00</a> So you can learn how to build agents for yourself.</p><p>Because of AI, it really lowers the barrier to entry. Before, people had to write a lot of Python code to create a sophisticated market making strategy. But today you can just talk to your agent, and the agent can build customized rules or interact with different exchanges. Having a structure like what we&#8217;re going to show you will make that process a lot easier, more scalable, and more reliable&#8212;which is what you want from your agent.</p><p>All right, so we&#8217;ll try to keep this under one hour and leave time for audience questions. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=300s">5:00</a> Maybe you can even demo what you&#8217;re building with Hummingbot as well.</p><p>Hummingbot has been around for a few years now. It&#8217;s one of the open source frameworks that many individual traders as well as trading firms use in crypto. The reason they use it is because it has integrations to many different types of exchanges&#8212;centralized exchanges, decentralized exchanges, and even blockchain networks like Solana and Ethereum.</p><p>What this means is you can write one type of strategy like market making and have it run on many different venues. You can even do cross-exchange, cross-venue market making, arbitrage, and trading. So Hummingbot is a great execution layer. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=360s">6:00</a> It can execute strategies on lots of different exchanges reliably and in a standardized way.</p><p>But now with the power of LLMs, you can have an intelligent model helping you make decisions, collecting data from the market, and helping you run strategies even better. That&#8217;s why I think the potential of these agents is huge&#8212;especially if you think about having some agents doing research, some doing simulations, others doing trading, and having them interact.</p><p>So there&#8217;s a lot of potential in applying agents to trading. But how do you make it all work together? That&#8217;s the question. It&#8217;s easy to create a simple demo, but as most algo traders and market makers know, if you really want to make money over the long term, you have to build a systematic approach. You need to calculate P&amp;L accurately across different exchanges. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=420s">7:00</a> You need the agent to actually learn from what it&#8217;s doing systematically.</p><p>Think about if you want to run a hundred agents&#8212;how do all these agents operate both independently but also work together? These are questions we think about when applying AI to algo trading.</p><p>That&#8217;s why we&#8217;ve started to create our own agent framework&#8212;both a standard for defining what a trading agent is, as well as a harness, a system that can help you create, build, and run these trading agents. That&#8217;s what we&#8217;re going to demo today.</p><p>We built this system called Condor, which is similar in setup to OpenClaw. It&#8217;s an agent harness that runs on a server like a Mac mini, your local machine, or a cloud server. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=480s">8:00</a> It talks to LLMs like Claude or Codex, and it also does other tasks for you.</p><p>OpenClaw is really focused on general productivity tasks like managing your email. Whereas Condor is focused on trading tasks&#8212;collecting data from different exchanges, executing trades on those exchanges&#8212;but it also talks to LLMs as well.</p><p>This idea of a harness&#8212;a system that helps you accomplish something using LLMs&#8212;is really powerful. OpenClaw has obviously taken off, but we think there&#8217;s room for many other types of harnesses focused on specific tasks.</p><p>If you&#8217;re doing trading tasks, you may not want the open, possibly insecure mode of doing things the way OpenClaw does. Maybe you want something where the trade execution is separated from the agent layer, which is how Condor is structured.</p><p>So that&#8217;s the rationale for what we&#8217;re building&#8212;the concept of the harness and this trading agent standard that we&#8217;ll be showing. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=540s">9:00</a> Enough intro&#8212;let me hand it over to Fede who&#8217;s going to walk you through the structure of what we&#8217;re building and demo what a trading agent actually looks like.</p><h3><strong>Trading Agent Framework Basics</strong></h3><p><a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=540s">9:00</a></p><p><strong>Fede:</strong> Yeah, I think we&#8217;re going to start with a simple demonstration&#8212;an intuition about what we&#8217;re going to talk about. Mainly conceptually, to explain the infrastructure that&#8217;s going to run.</p><p>We&#8217;ve been doing auto trading for a long time already. Usually you have a strategy you want to run&#8212;or actually a set of strategies: strategy one, strategy two, strategy three, whatever. But there&#8217;s always a basic process. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=600s">10:00</a></p><p>The simplest structure is: you have market data at some point. This market data can be anything&#8212;OHLCs, order book, trades, funding rates, on-chain token logs. Any data you want to incorporate. And you also have execution decisions that you need to take.</p><p>So a normal strategy starts here: it will gather market data from one side, and from the other side it will analyze current execution data or trading data. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=660s">11:00</a> For example: Did my strategy create an order before? Does my strategy have a position? All that information you want to know before taking the next decision.</p><p>Once you do this (which can be done in parallel), you end up at a point where your strategy gets these two things and decides: What should I do?</p><p>Then you have three potential outcomes:</p><ol><li><p><strong>Do nothing</strong> - because there&#8217;s an active action you want to keep</p></li><li><p><strong>Stop</strong> an execution (we call them executors, but I&#8217;m talking more generally) - stop this position</p></li><li><p><strong>Create</strong> - create this order, create this position <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=720s">12:00</a></p></li></ol><p>So you can do a bunch of different things once you understand the current state of the market and your current execution data. In any trading strategy, you have these two sources: the public data, your private data, and based on that you take a decision.</p><p><strong>Mike:</strong> Yeah, just to put a point on this&#8212;this is what we call a &#8220;tick.&#8221; This is like one turn of the agent. Similar to how models work, there&#8217;s a concept of a &#8220;turn&#8221;&#8212;you give something to the model and get something back. Similarly in trading, in Hummingbot, we have the concept of a tick. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=780s">13:00</a> This is something that&#8217;s going to happen in a loop at every defined time interval.</p><p><strong>Fede:</strong> Yeah, you loop this over and over again. And &#8220;what should I do&#8221; is basically your strategy.</p><p>So what happens when we want to make this agentic? The normal frameworks you&#8217;ll see will let you place an order, get data from different sources. But as a structure, they&#8217;re usually really unstructured.</p><p>What&#8217;s the problem with that? First, it&#8217;s really difficult to make execution consistent and avoid doing random things on your account&#8212;trading with more money than intended, trading with wrong information, or getting stuck in a loop. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=840s">14:00</a></p><p>So you want to make it more deterministic. And also have a framework where the agent knows what decisions it can take. It&#8217;s not the wild west where it can do whatever it wants.</p><p>That&#8217;s why we have the concept of <strong>executors</strong>. This is really good not only for structuring the work, but also because if you expect the agent to place buy and sell orders at mid-frequency, there are executors like the grid where execution is delegated to the executor, and the grid operates at high frequency.</p><p>So there&#8217;s a good mix you can use with executors. Plus, the other important thing <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=900s">15:00</a> is that if you work with executors in our framework, all the actions an agent takes are completely isolated from the actions of your main account or other agents.</p><p>So each agent has its own sense of &#8220;this is my executor, this is my action.&#8221; Executors help us in two ways:</p><ol><li><p><strong>Structuring the work</strong> and avoiding errors. If you send an order and it starts failing, you probably don&#8217;t know why. The agent would start looping trying to understand why it&#8217;s failing. An executor has that solved already. For example, if you don&#8217;t have balance, it will tell you &#8220;insufficient balance&#8221;&#8212;and that&#8217;s standardized for the 40+ connectors we have. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=960s">16:00</a></p></li><li><p><strong>Isolation</strong></p></li></ol><p><strong>Mike:</strong> Yeah, I just want to add to what Fede mentioned. The first real advantage is <strong>standardization</strong>. Hummingbot has connectors to over 50 different exchanges. A connector might be a centralized exchange like Binance, a decentralized exchange like Hyperliquid, or even Solana.</p><p>What the executor gives you is: if you say &#8220;I want to trade 0.1 Solana and sell it,&#8221; you can do that as a market order on Binance or as a swap on Solana, execute the same way, and get the same results.</p><p>This standardization allows the agent to not worry about the details of how to call the Binance API versus the Jupiter API on Solana. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=1020s">17:00</a> And once you calculate the P&amp;L and everything, the effect of that trade is isolated to this executor. This is what allows you to run lots of different agents with lots of different things and have them act in a standardized way.</p><p><strong>Fede:</strong> Yeah. So based on all these things, we decided to build what we expect to be the best agent trading framework.</p><p>To explain simply: you need to construct the <strong>context</strong> of the agent&#8212;the text you put at the start of the agent before it does anything. Let&#8217;s call it the prompt. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=1080s">18:00</a></p><p>So basically it will be an LLM that will loop. If it needs to call a tool because the response says &#8220;call this tool,&#8221; it will execute that code, come back to the LLM, and continue looping until it finishes.</p><p>The prompt is composed of different things:</p><ol><li><p><strong>General system prompt</strong> - tells it that it&#8217;s a trading agent and needs to do certain actions. This is general for all trading agents, no matter the strategy.</p></li><li><p><strong>Agent.md</strong> - the specific strategy or logic the agent will follow</p></li><li><p><strong>Journal</strong> - <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=1140s">19:00</a> a journal the agent keeps for the session, so it knows what it did in the past in that specific trading session</p></li><li><p><strong>Learnings</strong> - a higher-level learnings file across different trading sessions</p></li></ol><p>The same agent can be deployed in different trading sessions. You can create a scalper agent and deploy it on this market (that&#8217;s a session), then deploy it on another market (that&#8217;s another session).</p><ol start="5"><li><p><strong>Routines available</strong> - spoiler: these are just Python files with code that the agent can call, like a script. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=1200s">20:00</a> We call them routines because in Condor they can be automated in a loop.</p></li><li><p><strong>Tools available</strong></p></li><li><p><strong>Active executors and positions</strong></p></li></ol><p>So this is basically the prompt. Our trading agent starts with this prompt and works until it decides: should I create something, or should I stop something I have running?</p><p>If we look at the file structure, for example this &#8220;Agent scalper&#8221; has:</p><ul><li><p><strong>Agent.md</strong> - what I was talking about</p></li><li><p><strong>Learnings.md</strong> - also a top-level file <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=1260s">21:00</a></p></li><li><p>A folder with different <strong>routines</strong> - like &#8220;process candles and add indicators&#8221; or &#8220;process news&#8221;</p></li><li><p>A folder with all the <strong>trading sessions</strong></p></li></ul><p>Each trading session has:</p><ul><li><p><strong>Journal.md</strong> - where the agent logs everything it&#8217;s doing</p></li><li><p>A folder with <strong>snapshots</strong> - where we store the prompt passed to the agent (so you can debug), all the reasoning of the agent, and the actions it took</p></li></ul><p>This is really nice for debugging and understanding what your agent was actually doing.</p><p><strong>Mike:</strong> Can you explain again&#8212;why is Learnings.md at the top level?</p><p><strong>Fede:</strong> Yeah, that&#8217;s a good question. Learnings.md is top-level because it consolidates learnings across all different trading sessions. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=1320s">22:00</a></p><p>When a trading session ends, or when the agent detects something really important to consider for other sessions, it logs it there&#8212;a common error, how to configure something, whatever. It&#8217;s a way to have long-term memory for the agent that persists across different trading sessions.</p><p>The journal is the specific session memory.</p><p><strong>Mike:</strong> So the journal is specific to a session, but learnings encapsulates what it learned across different sessions?</p><p><strong>Fede:</strong> Exactly. It&#8217;s to make long-term improvement of the agent down the road.</p><p>And then this agent is designed with three <strong>run modes</strong>, mostly for debugging purposes. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=1380s">23:00</a> I don&#8217;t want to put an agent to trade without understanding first what reasoning it&#8217;s having.</p><ol><li><p><strong>Dry run</strong> - The agent gets injected into the prompt that it can&#8217;t use executor tools to create them. We see how it gathers market data, reasons about it, and what decision it would take. You&#8217;ll see in the output &#8220;will create this grid,&#8221; but since it&#8217;s dry run mode, it didn&#8217;t actually create it.</p></li><li><p><strong>Run once</strong> - Before you put it into a loop, you try it once to see the actual outputs.</p></li><li><p><strong>Loop</strong> - The end state when your agent is trading live, <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=1440s">24:00</a> executing every X amount of time (frequency), like every 60 seconds.</p></li></ol><p>About <strong>routines</strong>: Python files that usually use the Hummingbot API or an external source in a deterministic way, so the LLM work is reduced.</p><p>I&#8217;ve been testing this myself and reduced the session from two minutes of reasoning to 50-60 seconds, and I&#8217;m planning to improve it even more.</p><p>I found that the agent can get candles, but then it was creating Python code to process the candles during the session. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=1500s">25:00</a> I said no, I can&#8217;t allow this&#8212;if Python code can be created by the agent, I should encapsulate it so it can be reused and not spend tokens on it. Moving this into Python files rather than letting the agent process in an unstructured way is a big improvement.</p><p><strong>Mike:</strong> Oh, I see a question in the chat. Someone asks: why Python and not Rust or C for performance?</p><p>First, we&#8217;re always constantly improving the framework. There&#8217;s a chance we might move certain components into Rust. A lot of the underlying framework from execution and data collection perspective is already in Cython.</p><p>But the real reason we use Python for the strategy layer and UI layer is: <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=1560s">26:00</a> when you&#8217;re doing trading, the really expensive activity is at the network layer. When you&#8217;re sending a trade to the blockchain or an exchange and getting it back, or when you&#8217;re talking to the LLM and waiting for the response to come back.</p><p>When building any system, you want to focus on reducing the biggest bottleneck. Whether you use Python or C is not even close to the biggest bottleneck.</p><p>But what Fede&#8217;s talking about with routines&#8212;we actually think that&#8217;s the biggest bottleneck. When you design an agent and try it with, let&#8217;s say, OpenClaw and Claude directly, you&#8217;ll find the agent is wasting a lot of tokens and time processing data and turning it into some indicator or <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=1620s">27:00</a> post-processed piece of information.</p><p>So what Fede is talking about is actually really important&#8212;if you spend time upfront to build a structured process to process data, it&#8217;s much easier for your AI model to work with the output. That&#8217;s also why we call these &#8220;routines&#8221; and not &#8220;skills&#8221;&#8212;they&#8217;re designed to be deterministic and process data in a certain way.</p><p><strong>Fede:</strong> Yeah, for the agent framework it doesn&#8217;t make sense to do it in Rust or C because there&#8217;s no expensive computation on that part of the system.</p><p>For Hummingbot, as Mike mentioned, the core is in Cython, so it&#8217;s quite fast already. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=1680s">28:00</a></p><p>Personally, I think once you trade a bit&#8212;let&#8217;s look at Bitcoin one-second candles. When people talk about performance, saying you could be one millisecond faster&#8212;tell me what alpha you can get being one millisecond faster for the strategy you want to do.</p><p>The only place where speed makes sense is if you&#8217;re doing arbitrage or really HFT. You need a very good reason. Looking at one-second candles, if there&#8217;s a big move, <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=1740s">29:00</a> it&#8217;s maybe 0.09%&#8212;the move we can expect.</p><p>Speed is important for arbitrage and such. But there&#8217;s a bigger myth about &#8220;execution is king.&#8221; I think the king is the strategy itself, how you manage risk, how you expose your strategy.</p><p>There&#8217;s no &#8220;if you&#8217;re 10 milliseconds slower, you&#8217;re going to lose all the money.&#8221; That&#8217;s completely untrue&#8212;bullshit from people saying that on Twitter. For individuals or small firms, strategy, risk management&#8212;all that is way more important than speed.</p><p>Either way, as Mike mentioned, we&#8217;ll always try to improve and have the best system. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=1800s">30:00</a> I&#8217;m actually doing experiments with a Rust-based system called Hermes. I&#8217;ve been running it for a while, building it from the ground up with complete performance monitoring, completely rebuilt the connection system, WebSocket pools, HTTP pools.</p><p>We already have latency analysis&#8212;we&#8217;re under 0.1 milliseconds. We&#8217;re under 7.1 milliseconds processing messages. The network latency, as Mike said, is about 200 milliseconds. Obviously I&#8217;m in Argentina, so it&#8217;s higher than if I deployed in Tokyo.</p><p>The interesting thing is the speed we can get with Rust. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=1860s">31:00</a> We&#8217;ll probably build it and make Hummingbot the fastest framework out there. But for now, we think it&#8217;s much more worthwhile to focus on the agent parts.</p><p>Also in terms of design&#8212;I&#8217;m very proud of this&#8212;the UI is completely decoupled from the actual engine. All communication between the UI and engine is via socket, so it&#8217;s quite fast.</p><p>You can add a new source here and suddenly there&#8217;s a new subscription in the WebSocket, and you&#8217;ll see trades flowing in. So this is the experiment I&#8217;m doing to validate how much better we can make it.</p><p><strong>Mike:</strong> <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=1920s">32:00</a> Yeah, overall Hummingbot is open source with different modules. The execution and data collection right now is Hummingbot, but that layer can also get better. But we think the most important part to build right now is the agent layer. Having a structure for how you define and build the agent is really important.</p><p><strong>Fede:</strong> Yeah. Then for the trading session, as I mentioned, you have the journal and the learnings that persist across sessions, and all the MCP tools available.</p><p>For creating your trading agent, we&#8217;re creating a specific <strong>Agent Builder</strong> with phases:</p><ol><li><p>Strategy design <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=1980s">33:00</a></p></li><li><p>Market data&#8212;what you want to use and how to process it</p></li><li><p>Strategy logic definition&#8212;how you&#8217;ll use that data to trade</p></li><li><p>Test the agent in dry run</p></li><li><p>Test it in run once</p></li><li><p>Deploy the agent live with looping</p></li></ol><h3><strong>Condor Demo and UI Walkthrough</strong></h3><p><a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=1980s">33:00</a></p><p><strong>Fede:</strong> It&#8217;s time to stop talking and start showing.</p><p>I&#8217;ll restart this. I hope I don&#8217;t break the MCP&#8212;I just introduced a change. The repo is the same one we&#8217;ve been talking about: Hummingbot Condor. If you star the repo, it helps us a lot.</p><p>This is the main entry point right now. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=2040s">34:00</a> With this, you&#8217;ll be deploying the Hummingbot API that runs on your machine. The Hummingbot API lets you deploy bots, executors, and a lot of things. Once you run <code>make run</code>&#8212;I have it here.</p><p>Also, if you run <code>make run</code>, I&#8217;ve been testing with the QWen model. It&#8217;s actually quite good. Soon we&#8217;ll add support for open source models, but for now we&#8217;re focusing on Claude.</p><p><strong>Mike:</strong> Yeah, basically I&#8217;ll explain the structure of how Condor works. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=2100s">35:00</a></p><p>If you&#8217;re familiar with setting up OpenClaw, you should be pretty familiar with setting up Condor as well. A lot of people use OpenClaw with Telegram. When you use OpenClaw with Telegram, the first thing you do is create a Telegram bot via BotFather.</p><p>It&#8217;s the same thing with Condor. You go to BotFather in Telegram, it walks you through creating a bot, gives you a token, and you basically just need the token and your user ID.</p><p>Once you have those, you enter them into Condor. There&#8217;s a setup process that walks you through setting the Hummingbot admin password and the Condor bot token and user ID. After installation, you can start talking to Condor.</p><p><strong>Fede:</strong> <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=2160s">36:00</a> Yeah, it&#8217;s mostly the same. But there&#8217;s a big difference&#8212;before creating a trading agent, I&#8217;d recommend just playing around with Condor directly.</p><p>Let me get my balance sorted first... Okay. You can start talking with Condor directly instead of creating a trading agent. You can say &#8220;Hi, what&#8217;s my balance on Binance?&#8221; <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=2220s">37:00</a></p><p>You&#8217;ll need to connect your API keys first. But once you do, it uses the Hummingbot MCP under the hood. It helps you understand your balance on different assets&#8212;I can see my perpetual positions as well.</p><p>Everything you can do directly with Condor can also execute routines&#8212;code that you probably want to run. For example, I can say &#8220;What routines do I have to process market data? I&#8217;m interested in understanding BTC-FDUSD.&#8221;</p><p>It will see if it has a routine, or it will just get the candles and analyze the market for you. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=2280s">38:00</a> Sometimes there&#8217;s a problem getting candles because it&#8217;s a lot of data in the context.</p><p>Here&#8217;s a routine for technical analysis&#8212;analyze trend, volatility. It says EMA aligned, fast higher than mid higher than slow. Key support levels, key resistance. Suggestion: grid. I&#8217;ll say &#8220;Can you deploy a grid executor with 300 FDUSD?&#8221;</p><p>These routines are really interesting&#8212;you can encapsulate market data analysis and trigger it on any market once you&#8217;re confident with the analysis. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=2340s">39:00</a></p><p>For points farming on Hyperliquid, if you want to analyze volatile markets and deploy a grid with a directional bias and farm points while trading, that&#8217;s something you can do with Hummingbot right away.</p><p>The grid is deployed. Let&#8217;s see if it&#8217;s true... yeah, it is. This isn&#8217;t a normal grid if you&#8217;re familiar with Hummingbot&#8212;it has parameters like order frequency, max open orders. That&#8217;s why you&#8217;re not seeing all orders at once. It&#8217;s smarter.</p><p>As fast as I told it &#8220;do this for me,&#8221; it was able to connect with everything needed to create the order. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=2400s">40:00</a></p><p>If you&#8217;re not confident about what&#8217;s happening with your account or don&#8217;t understand the active actions, you can use the <code>/executors</code> command and see active executors&#8212;the grid, the volume traded, history.</p><p>But if you want a better view, you can use the web view. Run <code>/web</code> command, and it opens a website. This is something you can override in the config if you have a custom DNS, port, or IP address if you&#8217;re deploying on a VPS.</p><p>Here you have the same dashboard&#8212;composition of assets over time, all tokens we have. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=2460s">41:00</a> We can see the grid we just deployed, the position holds, and analyze by different controllers.</p><p>From the UI itself, you can also deploy grids. Let&#8217;s pick Binance, pick SOL-FDUSD. I want to deploy a grid on SOL, put the grid between here, deploy 100 USDT, keep the position, create grid executor. &#8220;Grid Executor created.&#8221; Now you can see two grids here, and it should be placing orders on SOL too.</p><p>So this is the interface we&#8217;re working on to make this easily accessible. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=2520s">42:00</a> Remember, this is all open source. It&#8217;s all free. You don&#8217;t need to pay to use it. I think it&#8217;s very worthwhile to try.</p><p><strong>Mike:</strong> Yeah, I just want to say&#8212;before we transition to creating a proper agent&#8212;a couple of things.</p><p>For those of you following Hummingbot, this web interface for Condor is what we think the dashboard replacement will be. A lot of people have asked us to work on the dashboard (the frontend graphical interface for Hummingbot API). What we decided to do was take an AI-first approach. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=2580s">43:00</a></p><p>We built Condor and made sure it worked in Telegram first. Now this web view is what we&#8217;ll focus on building out, making sure it can do both what dashboard can do and also run agents.</p><p>Another design choice: you still use Telegram to authenticate. You log into Telegram, create this web view, and the API token you pass in is encrypted with your Telegram credentials. That allows you to access this from anywhere&#8212;you can host it on a web server and access it from Telegram without needing to expose admin credentials and have a whole auth system just for the dashboard.</p><h3><strong>Botcamp Cohort and Competition</strong></h3><p><a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=2610s">43:30</a></p><p><strong>Mike:</strong> Oh, also very important before we move on&#8212;we&#8217;re sponsored by Botcamp, the educational company that Fede and I run that uses the open source Hummingbot framework to teach people market making, algo trading, and how to make it agentic using AI. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=2640s">44:00</a></p><p>We do two cohorts of Botcamp per year. Each one is a four-week online bootcamp where we teach the principles of market making from a theory perspective and different types of algo trading strategies. We focus on market making because that&#8217;s one way to make money doing algo trading, especially in crypto.</p><p>For the next cohort, we&#8217;re doing something special and new&#8212;we&#8217;re going to have an <strong>AI trading competition</strong> at the end. You&#8217;ll learn how to create proper agent strategies, learn the theory behind algo trading strategies, then learn how to build them into AI trading agents and run them using Condor.</p><p><a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=2700s">45:00</a> The competition is open to both cohort members and previous Botcamp members. They can run their AI agent strategies and compete for prizes from our sponsors. We have about $13,000 already (the website says $10,000, but we just got a new sponsor).</p><p>These sponsors are crypto exchanges as well as crypto funds who might be looking to hire participants. There&#8217;s a QR code for Botcamp Cohort 13 in the upper right.</p><p>The discount code I want to make sure everyone has is: <strong>INFOSESH25</strong>. You&#8217;ll get 25% off. Once again: INFO SESH 25. Check out on Stripe and add it as the promo code. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=2760s">46:00</a> It includes three weeks of instruction, help building your own customized AI trading strategy, and entry to the trading competition.</p><p>Can you go to the Botcamp website? I want to show people the schedule. Go to cohorts and competitions...</p><p>The cohort starts in April&#8212;first week starts April 21st. We have four sessions per week. The first four sessions give people a theory and technical perspective on algo trading and how to use Hummingbot to create trading strategies.</p><p><a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=2820s">47:00</a> We also do a deeper dive into market making. One reason people use it is because both exchanges and token issuers provide rewards for market making. If you understand how to do it across the crypto landscape, it&#8217;s easier to make money because you have this additional source of incentives and value from liquidity rewards.</p><p>In the second week, we get deeper into different market making strategies, whether on-chain or off-chain, and how to make strategies more agentic&#8212;the different harnesses available, why Condor is structured the way it is versus others like OpenClaw.</p><p><a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=2880s">48:00</a> In week three, we get into the agent part&#8212;the structure of a trading agent and how to build multiple trading agents (we&#8217;re calling them &#8220;swarms&#8221;) that coordinate with each other. Each one is isolated, acting on its own slice of the portfolio, but also learning from each other.</p><p>We also help everyone with office hours. We cap this cohort at 35 participants&#8212;I think it&#8217;s half-filled right now. We cap it because we try to help everyone build their strategies. The final week is the agent trading competition.</p><p>One question from the audience: &#8220;I can&#8217;t afford the cohort right now, but I&#8217;m very interested in the AI trading competition.&#8221;</p><p>For the future, we&#8217;ll open it up and make it public, but since it&#8217;s the first time, we want to properly review each one. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=2940s">49:00</a> If you&#8217;re an existing Botcamp member, there&#8217;s a significantly discounted price. We might also create scholarships&#8212;you&#8217;d earn them by maybe helping us with guests, doing something on Twitter. We want to make room for a couple scholarships for people in the community who can earn them.</p><p><strong>Fede:</strong> Thank you Mike for the Botcamp presentation. That was quite insightful.</p><h3><strong>Agent Builder Strategy Walkthrough</strong></h3><p><a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=2940s">49:00</a></p><p><strong>Fede:</strong> Now I want to show the last part. I probably won&#8217;t deploy live, just show the dry run mode. But I&#8217;ll show you a sneak peek of what you can build with Agent Builder. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=3000s">50:00</a></p><p>First, let me tell Condor what executors are running, then tell it to stop them so we can start fresh.</p><p>As you can see, it has all the information we can see in the website. I actually ended up liking the chat interface more than the other one.</p><p>For the question about UI&#8212;thank you, we finally made it in React as you wanted.</p><p>For the question about model support&#8212;we&#8217;re not supporting only OpenAI. We support Claude, Codex, Gemini, OpenAI, and soon I&#8217;ll add Ollama directly. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=3060s">51:00</a> With open models now, I think for our bot we can run it with QWen 3.5 at 7 billion parameters. It would be really easy to run. Anyone will be able to run it with private models soon.</p><p>But as we want to generate knowledge about how this system works, it&#8217;s better to start with the better models so we have a benchmark for what a good agent is.</p><p>I&#8217;ll say &#8220;stop the grids&#8221; and it will stop those executors so we stop placing orders. Now we&#8217;ll move to the actual Agent Builder.</p><p>To go to Agent Builder, you go to <code>/agent</code>, switch the agent mode from &#8220;Condor&#8221; to &#8220;Agent Builder.&#8221; It starts a new session. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=3120s">52:00</a></p><p>Great thing: you don&#8217;t need to pay for an API key besides your current subscription because we&#8217;re using the MCP protocol that Anthropic released. With your Claude Code subscription or Codex, it will work.</p><p>I&#8217;ll tell the agent &#8220;I want to create a trading strategy&#8221; and the Agent Builder will guide me through all the phases.</p><p>Phase one: strategy design. What do you want to do? Grid trading, DCA, scalping perps with take profit and stops... Let&#8217;s do scalping perps with tight stops.</p><p><a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=3180s">53:00</a> It asks what market. Let&#8217;s search for something with volatility... this AIOT token has a lot of volatility. Let&#8217;s pick this one. What exchange? I want to trade on Binance Perpetual on AIOT-USDT.</p><p><strong>Mike:</strong> Quick question&#8212;when you say &#8220;scalping,&#8221; can you define what that means?</p><p><strong>Fede:</strong> Yeah, basically with some trend analysis, we&#8217;re going to place long and short trades to try to trade the ups and downs that the market will have.</p><p>I&#8217;ll say: I want to trade Binance on AIOT-USDT. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=3240s">54:00</a> And I want to create a routine that helps me identify where these levels of interest are. I&#8217;d like to use one-minute candles and look for support and resistance levels plus EMAs of 7, 25, and 99.</p><p>The Agent Builder will understand what I&#8217;m trying to do. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=3300s">55:00</a> We can specify more things like take profit, but let&#8217;s keep it as is for now.</p><p>Position size: 25 USDT per trade. Stop loss: 5%. Max concurrent positions: 3. Max drawdown: disabled. Total amount quote: 100 USDT.</p><p><strong>Mike:</strong> Got it. So the agent will enter long positions when the price is near the support level&#8212;when things go up. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=3360s">56:00</a></p><p><strong>Fede:</strong> It would try to go long at the support level, but also the EMAs will probably need to mark an uptrend.</p><p><strong>Mike:</strong> Okay, there are two indicators it&#8217;s using.</p><p><strong>Fede:</strong> Yeah, it will use the EMAs and also detect support and resistance levels based on the candles.</p><p>Now it says &#8220;Approve the design and move to phase two&#8221; where we&#8217;ll build the analysis routine. I&#8217;ll create the strategy first to get the ID for the routine, then build the analysis script.</p><p>If we go here in PyCharm... you&#8217;ll see in the trading agents folder, I have this AIOT Perps Scalper that was created. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=3420s">57:00</a> I already have the Agent.md (as you can see, it says &#8220;placeholder&#8221;&#8212;it will be updated in phase three because the Agent Builder is working on it).</p><p>So the folder was already created. It added a folder for routines. Here we have the first routine: support_resistance_ema_levels. It created a config file&#8212;this is the good thing about having routines. If not, the agent would need to write all this code during runtime.</p><p>You can pass the trading pair, connector name, candle count, lookback, tolerance for support/resistance. It wrote all this code to generate the output.</p><p><strong>Mike:</strong> <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=3480s">58:00</a> So that&#8217;s a new routine it created. But before, in Condor or Telegram, you were also running routines. Are there routines that ship with Condor?</p><p><strong>Fede:</strong> Yeah, there are general routines that can be shared by all agents, and routines specific to certain agents. That&#8217;s something you proposed and I accepted&#8212;it&#8217;s the right way because it&#8217;s simpler to share. I can just share you the Agent folder and you can use it.</p><p>So I created the strategy, now let me create the routine. I have a skill for creating routines in the code that explains how to do it.</p><p>Here&#8217;s the live output&#8212;the routine is correct. Let&#8217;s see what it&#8217;s trying to do. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=3540s">59:00</a> The price is correct. The trend says bullish&#8212;makes sense because of the EMAs.</p><p>The support is marking around 0.33. These are the two supports it identified, and the resistance at 0.36 and 0.37.</p><p>Actually, I don&#8217;t like the support and resistance levels. I&#8217;d like to pick more like <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=3600s">1:00:00</a> this one for take profit&#8212;I&#8217;d like it higher.</p><p>This is what you can work on. Once the routine runs, you can improve it. It can also generate images and send them through Telegram for processing. You can do everything from the chat, but this is the part you need to work on&#8212;it should be doing what you&#8217;re expecting.</p><p>For the question about backtesting: yes, I was going to work on backtest this week, but I didn&#8217;t reach that point&#8212;I was working on all this infrastructure. The good thing is that since it follows the same principles as the controllers, it would be easy to backtest. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=3660s">1:01:00</a> But I think for backtesting we&#8217;ll need local models later on&#8212;mostly because it&#8217;ll be faster and you won&#8217;t waste tokens. Yes, this is on the roadmap to be backtestable.</p><p>I&#8217;ll say &#8220;I like it, but I would like to use the first support for stop loss and the second resistance for take profit.&#8221;</p><p>That will probably be put into the Agent.md instructions. Then we&#8217;ll move to phase three.</p><p><strong>Mike:</strong> I just want to emphasize again that everything we&#8217;re building here is free and open source. We do this because we&#8217;re supported by exchanges as partners. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=3720s">1:02:00</a></p><p>Every time you use Hummingbot for execution, part of the fees you pay does support the nonprofit foundation. But that means we can give away everything we&#8217;re building and you can use it.</p><p>It&#8217;s not end-to-end yet&#8212;that&#8217;s why backtesting is coming in the future. But right now you can go to GitHub, pull the main branch of Condor, use your Claude Code or whatever model you&#8217;ve set up, and start testing this out.</p><p><strong>Fede:</strong> This is also really interesting&#8212;see it says &#8220;let me fetch the executor schema first.&#8221; <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=3780s">1:03:00</a></p><p>Now it knows what it has to do, what executor it will use. The point is: what&#8217;s the schema of the executor? So when I create it, I don&#8217;t fail and know how to configure it properly.</p><p>If we go to this Agent.md, we see it has the steps: run analysis, decision logic, step three execute the trade, required fields for the executor (take profit and stuff), risk rules, position monitoring, and the journal.</p><p>Now it&#8217;s suggesting: ready for phase four dry run. I&#8217;ll start the agent in dry run mode to analyze the market. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=3840s">1:04:00</a></p><p>Yes, run it in dry run. As I mentioned, this is one of the modes that lets me simulate what the agent would actually do if invoked for trading.</p><p>Now I&#8217;ll show you the nicest thing&#8212;how we can inspect what the agent is actually doing. This is one of the most important parts: <strong>observability</strong>.</p><p>If you go to the Condor Dashboard, you&#8217;ll see a tab for Agents. In this Agent tab, we can see the AIOT Perps Scalper. We have the default total amount quote, frequency in seconds, the mode, risk settings, and the strategy <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=3900s">1:05:00</a> (the markdown file we saw&#8212;you can edit it from here and save it if you&#8217;re not at the computer).</p><p>You have the learnings file that persists across all sessions. We&#8217;ll have sessions here&#8212;once the agent is looping, they&#8217;ll appear here.</p><p>We have this dry run&#8212;the first output. The agent says: Run decision: no entry. EMAs not aligned. Failed the directional filter. The agent identified mixed trend and waited for the strategy rules. No position opened.</p><p>Here in the UI, we can see the Agent response: price, trend is mixed, the EMA values, support and resistance found, decision: wait. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=3960s">1:06:00</a> No executors created (dry run). We can tell it to run again.</p><p><strong>Mike:</strong> Just so I understand&#8212;that table, did that come from the routine it ran?</p><p><strong>Fede:</strong> This Agent response is actually coming from the actual agent&#8212;the output of the final agent. We&#8217;re not seeing the output of the routine in the tool calls here. But we&#8217;ll probably add the ability to expand and see it.</p><p>We have now the second dry run: no executors, decision wait, trend mixed. Perfect. Now we&#8217;re okay with this. We like it.</p><h3><strong>Live Trading Observability and Wrap</strong></h3><p><a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=4020s">1:07:00</a></p><p><strong>Fede:</strong> It&#8217;s time to deploy live on a loop.</p><p>The agent is being disciplined, waiting for a clean setup. The market is ranging. I&#8217;ll say &#8220;I&#8217;m ready for phase five. Let&#8217;s go live with a frequency of one minute between executions.&#8221;</p><p>Condor monitoring commands: check the agent, show the journal. The agent is scanning every minute.</p><p>If it worked&#8212;we just see here the session. Now we have the first session. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=4080s">1:08:00</a> If we go to sessions, we have the first session appearing here.</p><p>This is what I talked about&#8212;trading sessions. Each session has activity, snapshots. In the snapshots, we can see the actual data, the system prompt (all the data injected into the agent), the actual agent response, and the tool calls.</p><p>This will execute every minute now. Seems like the trend... I think we need to wait until this EMA line passes the other one&#8212;that will be looking for a long position.</p><p>Someone in chat mentions Memento is working on a market simulator for Hummingbot. Nice, I don&#8217;t know what that actually is, but nice.</p><p><strong>Mike:</strong> <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=4140s">1:09:00</a> Yeah, overall Hummingbot is an open source framework. It&#8217;s modular&#8212;there&#8217;s the core Hummingbot client, the API which this uses, and Condor itself (the harness) is also open source.</p><p>What that allows people in the community to do is build off of Hummingbot. Many organizations build their own connectors. Memento is building some type of backtester or simulator. We encourage this, and that&#8217;s why we&#8217;re making the trading agent standard open source&#8212;so you can build your own agents according to the standard.</p><p>We&#8217;ll have a place where you can share your agents with each other, and also the routines used by these agents.</p><p>One question: when you did the dry run, were those also sessions but not live? <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=4200s">1:10:00</a></p><p><strong>Fede:</strong> No, it&#8217;s not a session. It&#8217;s just an execution of one tick without the agent being able to trade. You can see no executors were created&#8212;executor creation is blocked.</p><p><strong>Mike:</strong> Okay, so it&#8217;s run once but with no execution.</p><p><strong>Fede:</strong> Exactly.</p><p>So as you can see, we already have two ticks. It&#8217;s probably processing the last tick and hopefully... oh, it created the first order! Guys, see this&#8212;and it already has take profit set. So this is our first agent trade live. Hope we reach the take profit.</p><p>If we go here, we should see the last snapshot. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=4260s">1:11:00</a> Snapshot three: trend flip bullish, check lock, long conditions bullish. Nice. Price within 2% for S1 ratio. All conditions met, opening long. Journaling entry. And as you can see here, we have the take profit.</p><p><strong>Mike:</strong> Yeah, nice! First agent trade placed on The Bot Pod by an agent. I added some graphics for that.</p><p>But yeah, I noticed you had other trades on your Binance account other than AIOT&#8212;I think you had some MEME trade going on.</p><p><strong>Fede:</strong> Yeah, that&#8217;s another one I&#8217;m holding from yesterday. It&#8217;s a long position created with a grid executor that I decided to hold. As you can see, it&#8217;s &#8220;position hold&#8221; now.</p><p><strong>Mike:</strong> I just want to highlight&#8212;this agent is isolated, right? Can you explain how it works? <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=4320s">1:12:00</a></p><p><strong>Fede:</strong> Yeah... let me see... ah, it hit the stop loss. So maybe the stop loss was very tight. Let me see the config... stop loss: he put like 0.45%. It&#8217;s very low. That&#8217;s part of what the agent should be improving.</p><p>Seems like it hit the stop loss. How is it isolated? As you can see here, I can see &#8220;main&#8221; and I can see all the grids I created. This one is the MEME one I decided to hold. And I have here the AIOT Perps Scalper&#8212;that&#8217;s the one the agent is running now.</p><p>Because of the design of executors, each executor has an <strong>owner</strong> that you specify when you create it. So each agent has knowledge about which executors it created. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=4380s">1:13:00</a></p><p>It has a virtual portfolio and virtual executors. In that sense, all activity is completely isolated&#8212;that&#8217;s why this can scale. We can have 10 agents running in parallel without them having trouble understanding what actions each agent took.</p><p><strong>Mike:</strong> Can you go to the perps agent? Can you see what it said in the last session? I think that&#8217;s when it hit the stop loss.</p><p><strong>Fede:</strong> Yeah. &#8220;No entry conditions, wait. Trend reverted to mixed. Barely below. No directional conditions.&#8221;</p><p><strong>Mike:</strong> Got it. So <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=4440s">1:14:00</a> the agent created an executor&#8212;and actually, an executor is like a trade but with take profit and stop loss built in, placing additional orders besides the first one.</p><p>So it hit the stop loss and now it&#8217;s back in the null state, just waiting for a signal to create an executor.</p><p><strong>Fede:</strong> Yeah. And also it&#8217;s understanding that it had a loss here.</p><p>So probably in the next one we&#8217;ll increase the stop loss a bit, or not&#8212;I don&#8217;t know. It&#8217;s interesting. It&#8217;s part of the learnings we need to do with this system.</p><p><strong>Mike:</strong> So the agent is capable of modifying the stop loss or signals based on learnings?</p><p><strong>Fede:</strong> Yeah, obviously. That&#8217;s the purpose of learning. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=4500s">1:15:00</a> And you can also inject information into the learnings. Here, I can write something&#8212;it doesn&#8217;t know I was writing it.</p><p><strong>Mike:</strong> Okay. When are learnings injected? Every tick?</p><p><strong>Fede:</strong> Yeah, on every tick you inject the learnings. As I mentioned in the diagram, the prompt will have the general agent specification, the journal, the learnings, the routines available, the tools available, and the active executors.</p><p><strong>Mike:</strong> Okay.</p><p><strong>Fede:</strong> I think that was a very good session. I hope people get excited about this.</p><p><strong>Mike:</strong> Yeah! So we&#8217;ll be doing this next week again.</p><p>We&#8217;ll continue scheduling livestreams at 9am Pacific / 12pm Eastern. For those in South America, it&#8217;s late afternoon. In Europe and Asia, late evening.</p><p>We&#8217;ll try to do the same time every Friday. We&#8217;re currently streaming on Twitch, YouTube, and Twitter. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=4560s">1:16:00</a> We&#8217;ll also try to publish this format on other platforms.</p><p>What you can expect is every week we&#8217;ll demo something we&#8217;re building at Hummingbot. And because everything is open source, you can go try it yourself. We encourage you to work on Hummingbot, build whatever you want.</p><p>If you have questions, you can always join our Discord and ask us directly.</p><p>Once again, we&#8217;re hosting another cohort of our Botcamp bootcamp for market makers and algo traders, starting April 21st. If you use the code <strong>INFOSESH25</strong>, you&#8217;ll get 25% off the Cohort 13 price.</p><p>This is Mike and Fede&#8212;we&#8217;re the maintainers of Hummingbot. Our mission is to democratize trading using open source.</p><p><strong>Fede:</strong> Alright.</p><p><strong>Mike:</strong> Okay, bye. <a href="https://www.youtube.com/watch?v=O93R_ddB-8o&amp;t=4620s">1:17:00</a></p><p><strong>Fede:</strong> Bye!</p>]]></content:encoded></item><item><title><![CDATA[Hummingbot Newsletter - February/March 2026]]></title><description><![CDATA[&#128640; Shipped Hummingbot v2.13 | &#129302; MCP Server & Skills | &#128167; LP Executor Strategies | &#127891; Botcamp Cohort 13]]></description><link>https://hummingbot.substack.com/p/hummingbot-newsletter-februarymarch</link><guid isPermaLink="false">https://hummingbot.substack.com/p/hummingbot-newsletter-februarymarch</guid><dc:creator><![CDATA[Hummingbot Foundation]]></dc:creator><pubDate>Thu, 05 Mar 2026 14:56:35 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!9L_K!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb12948b1-8f4a-47e4-8675-437c9aeff371_2511x927.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1><strong>Hummingbot v2.13: Building the Foundation for Agentic Trading</strong></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9L_K!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb12948b1-8f4a-47e4-8675-437c9aeff371_2511x927.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9L_K!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb12948b1-8f4a-47e4-8675-437c9aeff371_2511x927.png 424w, https://substackcdn.com/image/fetch/$s_!9L_K!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb12948b1-8f4a-47e4-8675-437c9aeff371_2511x927.png 848w, https://substackcdn.com/image/fetch/$s_!9L_K!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb12948b1-8f4a-47e4-8675-437c9aeff371_2511x927.png 1272w, https://substackcdn.com/image/fetch/$s_!9L_K!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb12948b1-8f4a-47e4-8675-437c9aeff371_2511x927.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9L_K!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb12948b1-8f4a-47e4-8675-437c9aeff371_2511x927.png" width="1456" height="538" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b12948b1-8f4a-47e4-8675-437c9aeff371_2511x927.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:538,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:218942,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hummingbot.substack.com/i/189798794?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb12948b1-8f4a-47e4-8675-437c9aeff371_2511x927.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9L_K!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb12948b1-8f4a-47e4-8675-437c9aeff371_2511x927.png 424w, https://substackcdn.com/image/fetch/$s_!9L_K!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb12948b1-8f4a-47e4-8675-437c9aeff371_2511x927.png 848w, https://substackcdn.com/image/fetch/$s_!9L_K!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb12948b1-8f4a-47e4-8675-437c9aeff371_2511x927.png 1272w, https://substackcdn.com/image/fetch/$s_!9L_K!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb12948b1-8f4a-47e4-8675-437c9aeff371_2511x927.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Dear Hummingbot community,</p><p>This month marks a pivotal moment in Hummingbot&#8217;s evolution. With v2.13, we&#8217;re not just shipping another release &#8212; we&#8217;re laying the foundation for <strong><a href="https://github.com/hummingbot/condor">Condor</a></strong>, our upcoming open-source operating system for managing crypto trading agents.</p><p>Condor represents our vision for the future of algorithmic trading: a specialized harness purpose-built for crypto trading agents, powered by the Hummingbot open source infrastructure and global trader community. General-purpose harnesses like OpenClaw and Claude Code can already run Hummingbot effectively, but Condor is laser-focused on what traders actually need: AI agents running professional grade strategies with reliable execution across any exchange and blockchain, controllable across mobile and desktop with Telegram.</p><p>The v2.13 release builds the critical infrastructure that Condor will leverage: Hummingbot MCP server and Skills, direct executor management via API (no more spinning up Docker containers for each strategy), automated DEX LP strategies, and new exchange partners like Aevo, Backpack, and Pacifica that extend Hummingbot&#8217;s capabablities to more venues. Soon, you&#8217;ll be able to combine AI intelligence with Hummingbot&#8217;s execution layer to build machines that make money for you 24/7.</p><p>Condor is coming.</p><p>Michael Feng<br>Co-founder, Hummingbot</p><p></p><div><hr></div><h2><strong>&#128640; What&#8217;s in the Hummingbot v2.13 Release</strong></h2><h3><strong>&#128279; New Connectors</strong></h3><p>This release adds support for three new exchanges:</p><ul><li><p><strong>Aevo</strong> - Options and perpetuals DEX on Ethereum L2</p></li><li><p><strong>Backpack</strong> (Spot &amp; Perpetual) - Solana-based exchange with spot and derivatives trading</p></li><li><p><strong>Pacifica Finance</strong> - DeFi trading platform</p></li></ul><h3><strong>&#10024; New Strategies</strong></h3><ul><li><p><strong>LP Executor and Controller</strong> - Deploy automated liquidity provision strategies on concentrated liquidity DEXs through simple API calls (executor) or long-running Docker container (controller)</p></li><li><p><strong>PMM V1</strong> - New V2 controller that faithfully replicates the original pure market making V1 strategy</p></li><li><p><strong>PMM Mister:</strong> An advanced version of the original PMM strategy with sophisticated risk management and inventory management</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xBgw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1602d9d-e482-4d9a-8174-d48dda5f79eb_2106x1696.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xBgw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1602d9d-e482-4d9a-8174-d48dda5f79eb_2106x1696.png 424w, https://substackcdn.com/image/fetch/$s_!xBgw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1602d9d-e482-4d9a-8174-d48dda5f79eb_2106x1696.png 848w, https://substackcdn.com/image/fetch/$s_!xBgw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1602d9d-e482-4d9a-8174-d48dda5f79eb_2106x1696.png 1272w, https://substackcdn.com/image/fetch/$s_!xBgw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1602d9d-e482-4d9a-8174-d48dda5f79eb_2106x1696.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xBgw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1602d9d-e482-4d9a-8174-d48dda5f79eb_2106x1696.png" width="1456" height="1173" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a1602d9d-e482-4d9a-8174-d48dda5f79eb_2106x1696.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1173,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1143998,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hummingbot.substack.com/i/189798794?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1602d9d-e482-4d9a-8174-d48dda5f79eb_2106x1696.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xBgw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1602d9d-e482-4d9a-8174-d48dda5f79eb_2106x1696.png 424w, https://substackcdn.com/image/fetch/$s_!xBgw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1602d9d-e482-4d9a-8174-d48dda5f79eb_2106x1696.png 848w, https://substackcdn.com/image/fetch/$s_!xBgw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1602d9d-e482-4d9a-8174-d48dda5f79eb_2106x1696.png 1272w, https://substackcdn.com/image/fetch/$s_!xBgw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1602d9d-e482-4d9a-8174-d48dda5f79eb_2106x1696.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3><strong>&#10024; New Features</strong></h3><ul><li><p><strong>Executor support in Hummingbot API</strong>: Now, you can deploy executors directly without spinning up new Docker containers </p></li><li><p><strong>Binance TRADIFI_PERPETUAL support</strong> - Trade tokenized equities and RWAs on Binance perpetuals</p></li><li><p><strong>Upgraded Binance user stream</strong> - Improved WebSocket connection handling for real-time updates</p></li></ul><ul><li><p><strong>Improved Orca connector</strong> - On-chain data for accurate CLMM position pricing, accurate position rent tracking, and support for Token2022 tokens</p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://hummingbot.org/release-notes/2.13.0/&quot;,&quot;text&quot;:&quot;v2.13 Release Notes&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://hummingbot.org/release-notes/2.13.0/"><span>v2.13 Release Notes</span></a></p><p></p></li></ul><div><hr></div><h2><strong>&#129302; Hummingbot MCP Server and Skills</strong></h2><p>We&#8217;ve open-sourced two powerful Github repositories that let you give your AI agents access to Hummingbot&#8217;s trading infrastructure: the <strong>MCP Server</strong> and <strong>Skills</strong>.</p><p><strong>&#128187; <a href="https://github.com/hummingbot/mcp">Hummingbot MCP Server</a></strong></p><p>The Model Context Protocol (MCP) server enables AI agents running in Claude Code, Gemini CLI, and other MCP-compatible environments to interact directly with Hummingbot for automated cryptocurrency trading. It acts as a bridge between your AI agent and Hummingbot&#8217;s execution layer, providing the context</p><p>Key capabilities:</p><ul><li><p><strong>Account &amp; connector management</strong> - Configure exchange credentials and API keys</p></li><li><p><strong>Portfolio queries</strong> - Check balances across all connected exchanges</p></li><li><p><strong>Real-time market data</strong> - Access live prices, order books, and candles</p></li><li><p><strong>Executor and controller deployment</strong> - Deploy trading strategies as simple executors or long-lasting controllers</p></li></ul><p><strong>&#128187; <a href="https://skills.hummingbot.org/">Hummingbot Skills</a></strong></p><p>Skills are installable AI agent capabilities that extend what your agent can do with Hummingbot. Install them with a single command:</p><pre><code><code>npx skills add hummingbot/skills
</code></code></pre><p>Popular skills include:</p><ul><li><p><strong>hummingbot-deploy</strong> - Deploy Hummingbot infrastructure (API server, MCP server, Telegram bot)</p></li><li><p><strong>lp-agent</strong> - Automated liquidity provision on CLMM DEXs like Meteora and Raydium</p></li><li><p><strong>find-arbitrage-opps</strong> - Scan for cross-exchange arbitrage opportunities</p></li><li><p><strong>find-xemm-opps</strong> - Identify cross-exchange market-making opportunities</p></li></ul><p>Together, the MCP server and Skills allow users to give Hummingbot&#8217;s strategies and 50+ exchange connectors to AI agents running in Claude Code, OpenClaw, and other agentic operating systems. Condor will leverage both repos under the hood&#8212;delivering a trading-focused UX optimized for the workflows that matter most to algorithmic traders.</p><p></p><div><hr></div><h2><strong>&#128073; Direct Executor Creation via API</strong></h2><p>One of the most important features for trading agents is <strong>deterministic execution</strong> - the ability to automate trading workflows like stop losses, automatic position management, and arbitrage. That&#8217;s why we created <a href="https://hummingbot.org/strategies/v2-strategies/executors/">Executors</a> in the V2 framework.</p><p>Now with the v2.13 release, Hummingbot API can create and manage executors directly without the overhead of Docker containers:</p><ul><li><p><strong>Direct executor deployment</strong> - Create, monitor, and stop executors through simple API calls without spinning up separate Docker instances</p></li><li><p><strong>Per-executor logging</strong> - Each executor now maintains its own log buffer with error tracking, accessible via <code>GET /executors/{executor_id}/logs</code></p></li><li><p><strong>Orphan cleanup</strong> - Executors stuck in <code>RUNNING</code> status after crashes are automatically cleaned up on startup</p></li><li><p><strong>Consolidated deployment path</strong> - All bot deployment now uses the unified controller-based architecture</p></li></ul><p>This means AI agents can now programmatically deploy trading strategies, monitor their performance in real-time, and make adjustments&#8212;all through a clean REST API. It&#8217;s the foundation that enables Condor to orchestrate multiple trading strategies simultaneously.</p><p>See the implementation details in <a href="https://github.com/hummingbot/hummingbot-api/pull/114">PR #114</a> and <a href="https://github.com/hummingbot/hummingbot-api/pull/128">PR #128</a>.</p><div><hr></div><h2><strong>LP Strategies in Hummingbot and Hummingbot API</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nYVc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e465793-cd16-4d4c-b01d-080d3fd24956_1676x966.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nYVc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e465793-cd16-4d4c-b01d-080d3fd24956_1676x966.png 424w, https://substackcdn.com/image/fetch/$s_!nYVc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e465793-cd16-4d4c-b01d-080d3fd24956_1676x966.png 848w, https://substackcdn.com/image/fetch/$s_!nYVc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e465793-cd16-4d4c-b01d-080d3fd24956_1676x966.png 1272w, https://substackcdn.com/image/fetch/$s_!nYVc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e465793-cd16-4d4c-b01d-080d3fd24956_1676x966.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nYVc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e465793-cd16-4d4c-b01d-080d3fd24956_1676x966.png" width="1456" height="839" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9e465793-cd16-4d4c-b01d-080d3fd24956_1676x966.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:839,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:469160,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hummingbot.substack.com/i/189798794?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e465793-cd16-4d4c-b01d-080d3fd24956_1676x966.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nYVc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e465793-cd16-4d4c-b01d-080d3fd24956_1676x966.png 424w, https://substackcdn.com/image/fetch/$s_!nYVc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e465793-cd16-4d4c-b01d-080d3fd24956_1676x966.png 848w, https://substackcdn.com/image/fetch/$s_!nYVc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e465793-cd16-4d4c-b01d-080d3fd24956_1676x966.png 1272w, https://substackcdn.com/image/fetch/$s_!nYVc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e465793-cd16-4d4c-b01d-080d3fd24956_1676x966.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>If you&#8217;re a sophisticated market maker (or memecoin degen trader like me), you know that concentrated liquidity provision on DEXs like Meteora and Orca requires constant position management &#8212; exactly the kind of task that AI agents excel at. V2.13 introduces supports for automated LP strategies in both the legacy Hummingbot client as well as Hummingbot API.</p><p><strong>New Capabilities:</strong></p><ul><li><p><strong>LP Position Executor</strong> - Automated management of concentrated liquidity positions on CLMM DEXs</p></li><li><p><strong>LP Rebalancer Controller</strong> - Orchestrates position rebalancing based on configurable triggers</p></li><li><p><strong>State machine management</strong> - Handles the full lifecycle from position opening through rebalancing to closure</p></li><li><p><strong>Performance tracking</strong> - New <code>lphistory</code> command for analyzing LP strategy performance</p></li></ul><p>The LP Executor integrates directly with the Hummingbot API, allowing AI agents to:</p><ol><li><p>Open liquidity positions with specified price ranges</p></li><li><p>Monitor position health and impermanent loss</p></li><li><p>Automatically rebalance when positions drift out of range</p></li><li><p>Close positions and recover fees</p></li></ol><p>This is a prime example of how Condor will leverage Hummingbot &#8212; the AI agent makes strategic decisions about when and how to provide liquidity, while Hummingbot handles the complex on-chain execution reliably and deterministically.</p><p>See <a href="https://github.com/hummingbot/hummingbot-api/pull/120">PR #120</a> (API support) and <a href="https://github.com/hummingbot/hummingbot/pull/8082">PR #8082</a> (core LP executor).</p><div><hr></div><h2><strong>New Connectors: Pacifica, Aevo, and Backpack</strong></h2><p>V2.13 expands our exchange coverage with three new connectors, approved through Hummingbot governance:</p><ul><li><p><strong><a href="https://backpack.exchange/">Backpack</a></strong>: CEX with spot and perpetual futures trading featuring native Backpack Solana wallet integration</p></li><li><p><strong><a href="https://pacifica.finance/">Pacifica</a></strong>: Solana-based perpetual futures DEX</p></li><li><p><strong><a href="https://aevo.xyz/">Aevo</a></strong>: Ethereum L2-based perpetual futures and options DEX</p></li></ul><p>Each connector follows our standard architecture, meaning they offer standardized WebSocket/REST endpoints for market data and execution, and they work seamlessly with Strategy V2 executors and the Hummingbot API. Condor users will be able to deploy agents across all three exchanges from day one.</p><p>See the full <a href="https://hummingbot.org/release-notes/2.13.0/">v2.13 release notes</a> for technical details.</p><div><hr></div><h2><strong>Botcamp Cohort 13: AI Trading Agents</strong></h2><p><strong>Dates:</strong> April 14 - May 15, 2026</p><p>We&#8217;re launching Cohort 13 on a completely redesigned platform that houses all Botcamp courses, cohorts, and strategies in one place. The curriculum has been revamped to incorporate AI-assisted trading workflows throughout.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!W1CO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e83ec98-f6a2-4c93-8a08-75e3aaf44d38_1542x1058.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!W1CO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e83ec98-f6a2-4c93-8a08-75e3aaf44d38_1542x1058.png 424w, https://substackcdn.com/image/fetch/$s_!W1CO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e83ec98-f6a2-4c93-8a08-75e3aaf44d38_1542x1058.png 848w, https://substackcdn.com/image/fetch/$s_!W1CO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e83ec98-f6a2-4c93-8a08-75e3aaf44d38_1542x1058.png 1272w, https://substackcdn.com/image/fetch/$s_!W1CO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e83ec98-f6a2-4c93-8a08-75e3aaf44d38_1542x1058.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!W1CO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e83ec98-f6a2-4c93-8a08-75e3aaf44d38_1542x1058.png" width="1456" height="999" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1e83ec98-f6a2-4c93-8a08-75e3aaf44d38_1542x1058.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:999,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:158615,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hummingbot.substack.com/i/189798794?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e83ec98-f6a2-4c93-8a08-75e3aaf44d38_1542x1058.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!W1CO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e83ec98-f6a2-4c93-8a08-75e3aaf44d38_1542x1058.png 424w, https://substackcdn.com/image/fetch/$s_!W1CO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e83ec98-f6a2-4c93-8a08-75e3aaf44d38_1542x1058.png 848w, https://substackcdn.com/image/fetch/$s_!W1CO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e83ec98-f6a2-4c93-8a08-75e3aaf44d38_1542x1058.png 1272w, https://substackcdn.com/image/fetch/$s_!W1CO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e83ec98-f6a2-4c93-8a08-75e3aaf44d38_1542x1058.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>What&#8217;s New:</strong></p><ul><li><p><strong>AI Trading Agents module</strong> - Learn to build trading agents using Hummingbot&#8217;s MCP server and Claude Code skills</p></li><li><p><strong>Revamped schedule</strong> - Four weeks of progressive learning with live sessions at 8am PST / 3pm UTC</p></li><li><p><strong>48-hour trading competition</strong> - Demo Day now launches a live trading competition with results announced 48 hours later</p></li><li><p><strong>Lifetime platform access</strong> - 20+ hours of recordings and four premium courses ($800 value)</p></li></ul><p>Preview the new platform and full schedule at <a href="https://dev.botcamp.xyz/cohorts/cohort13">dev.botcamp.xyz/cohorts/cohort13</a>.</p><div><hr></div><h2><strong>Security Notice</strong></h2><p>Beware of scammers impersonating the Hummingbot Foundation:</p><ul><li><p>We <strong>NEVER</strong> DM you first</p></li><li><p>We <strong>NEVER</strong> sell or airdrop HBOT tokens</p></li><li><p>HBOT is only earned through completing bounties</p></li><li><p>Report suspicious activity in our Discord #scam-reports channel</p></li></ul><div><hr></div><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://hummingbot.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Hummingbot Newsletter! Subscribe for free to get notified of each monthly release.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Hummingbot Newsletter - January 2026]]></title><description><![CDATA[&#128640; Shipped Hummingbot v2.12 | &#128202; Dynamic Order Books | &#128167;Hyperliquid HIP-3 Support | &#128242; Condor Focus Group]]></description><link>https://hummingbot.substack.com/p/hummingbot-newsletter-january-2026</link><guid isPermaLink="false">https://hummingbot.substack.com/p/hummingbot-newsletter-january-2026</guid><dc:creator><![CDATA[Hummingbot Foundation]]></dc:creator><pubDate>Tue, 27 Jan 2026 22:01:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!bxUg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626d4e66-4f1d-462d-b948-10a3074b9d26_954x1148.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><h1><strong>Hummingbot v2.12: From CLI to API</strong></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bxUg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626d4e66-4f1d-462d-b948-10a3074b9d26_954x1148.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bxUg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626d4e66-4f1d-462d-b948-10a3074b9d26_954x1148.png 424w, https://substackcdn.com/image/fetch/$s_!bxUg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626d4e66-4f1d-462d-b948-10a3074b9d26_954x1148.png 848w, https://substackcdn.com/image/fetch/$s_!bxUg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626d4e66-4f1d-462d-b948-10a3074b9d26_954x1148.png 1272w, https://substackcdn.com/image/fetch/$s_!bxUg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626d4e66-4f1d-462d-b948-10a3074b9d26_954x1148.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bxUg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626d4e66-4f1d-462d-b948-10a3074b9d26_954x1148.png" width="724.84375" height="872.2438417190775" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/626d4e66-4f1d-462d-b948-10a3074b9d26_954x1148.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:1148,&quot;width&quot;:954,&quot;resizeWidth&quot;:724.84375,&quot;bytes&quot;:109608,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hummingbot.substack.com/i/186000448?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626d4e66-4f1d-462d-b948-10a3074b9d26_954x1148.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bxUg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626d4e66-4f1d-462d-b948-10a3074b9d26_954x1148.png 424w, https://substackcdn.com/image/fetch/$s_!bxUg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626d4e66-4f1d-462d-b948-10a3074b9d26_954x1148.png 848w, https://substackcdn.com/image/fetch/$s_!bxUg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626d4e66-4f1d-462d-b948-10a3074b9d26_954x1148.png 1272w, https://substackcdn.com/image/fetch/$s_!bxUg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626d4e66-4f1d-462d-b948-10a3074b9d26_954x1148.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Dear Hummingbot community,</p><p>With the release of Hummingbot v2.12, we&#8217;re close to completing a major architectural shift that has been years in the making: transitioning Hummingbot from a monolithic, single-purpose CLI to an <strong>institutional-grade algorithmic trading API</strong> with connectors to every CEX and DEX, accessible securely from anywhere. All open source, all completely free!</p><p>In this release, we decoupled order book management in the Hummingbot core client. Previously, Hummingbot initialized order books for all configured trading pairs at startup. Now, order books are loaded on-demand when actually needed. This change lets Hummingbot API deploy executors directly, which means that you can now run bots through simple API calls instead of having to start and stop Docker containers.</p><p>The next phase? Making this power accessible through Condor (consider join our new focus group - see below), and deeper integration with Hummingbot MCP so that you can use AI to control your trading infrastructure.</p><p>Michael Feng<br>Co-founder, Hummingbot</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://hummingbot.org/release-notes/2.12.0/&quot;,&quot;text&quot;:&quot;v2.12 Release Notes&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://hummingbot.org/release-notes/2.12.0/"><span>v2.12 Release Notes</span></a></p><p></p><div><hr></div><h3><strong>&#128640; Hummingbot API Quickstart</strong></h3><p>We&#8217;ve streamlined the installation process so you can deploy your own private algorithmic trading server with a single command:</p><p><code>curl -fsSL https://raw.githubusercontent.com/hummingbot/deploy/main/setup.sh | bash</code></p><p>This one-line installer sets up Hummingbot API along with Condor, our Telegram bot interface. Within minutes, you&#8217;ll have a trading server that you can control from your phone&#8212;completely free and open source. </p><p>Follow the new quickstart guide below.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://hummingbot.org/installation/hummingbot-api/&quot;,&quot;text&quot;:&quot;Hummingbot API Quickstart&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://hummingbot.org/installation/hummingbot-api/"><span>Hummingbot API Quickstart</span></a></p><p></p><div><hr></div><h3><strong>&#128202; Core Enhancements: Dynamic Order Books</strong></h3><p>This release introduces dynamic order book initialization, a major architectural change that decouples order book management from the Hummingbot core client.</p><p>Previously, Hummingbot initialized order books for all configured trading pairs at startup. Now, order books are loaded on-demand when actually needed. This change means that <strong>the Hummingbot API can now launch executors directly&#8212;without starting a full bot instance.</strong></p><p>Hummingbot API&#8217;s new <strong>ExecutorService</strong> can deploy Position, Grid, DCA, TWAP, and Arbitrage executors independently, managing their own market data feeds and order tracking. No Docker containers, no strategy configuration files&#8212;just API calls.</p><p>We will build upon this functionality in upcoming releases.</p><p></p><div><hr></div><h3><strong>&#128167; Hyperliquid HIP-3 Markets</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-4Wt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff319f09d-539d-4d8c-9351-c4fdf3fd337a_1930x470.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-4Wt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff319f09d-539d-4d8c-9351-c4fdf3fd337a_1930x470.png 424w, https://substackcdn.com/image/fetch/$s_!-4Wt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff319f09d-539d-4d8c-9351-c4fdf3fd337a_1930x470.png 848w, https://substackcdn.com/image/fetch/$s_!-4Wt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff319f09d-539d-4d8c-9351-c4fdf3fd337a_1930x470.png 1272w, https://substackcdn.com/image/fetch/$s_!-4Wt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff319f09d-539d-4d8c-9351-c4fdf3fd337a_1930x470.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-4Wt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff319f09d-539d-4d8c-9351-c4fdf3fd337a_1930x470.png" width="1456" height="355" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f319f09d-539d-4d8c-9351-c4fdf3fd337a_1930x470.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:355,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:316511,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hummingbot.substack.com/i/186000448?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff319f09d-539d-4d8c-9351-c4fdf3fd337a_1930x470.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!-4Wt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff319f09d-539d-4d8c-9351-c4fdf3fd337a_1930x470.png 424w, https://substackcdn.com/image/fetch/$s_!-4Wt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff319f09d-539d-4d8c-9351-c4fdf3fd337a_1930x470.png 848w, https://substackcdn.com/image/fetch/$s_!-4Wt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff319f09d-539d-4d8c-9351-c4fdf3fd337a_1930x470.png 1272w, https://substackcdn.com/image/fetch/$s_!-4Wt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff319f09d-539d-4d8c-9351-c4fdf3fd337a_1930x470.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>With the v2.12 release, Hummingbot now fully supports HIP-3 markets on Hyperliquid, enabling access to markets for equity and RWA perps on Hyperliquid.</p><ul><li><p>Full HIP-3 integration with unique trading pair format support</p></li><li><p>Complete candlestick and order book data feeds</p></li><li><p>Rate source integration for accurate mid-price calculations</p></li></ul><p>To find HIP-3 pairs, enter the issuer prefix and the pair, separated by a colon, like <code>XYZ:TSLA-USD</code>.</p><div><hr></div><h3><strong>&#128241; Condor Focus Group</strong></h3><p>We&#8217;re starting a focus group for users interested in providing feedback on <a href="https://hummingbot.org/condor/">Condor</a>, our new Telegram interface to Hummingbot API. We&#8217;re seeking users from a variety of backgrounds and trading experience levels.</p><p>If you&#8217;d like to participate and help shape the future of mobile trading with Hummingbot, reach out to a member of the Foundation team on <a href="https://discord.gg/hummingbot">Discord</a> or reply to this email.</p><p></p><div><hr></div><h3>&#128127; Security Reminder</h3><p>Stay vigilant against scammers:</p><ul><li><p>We never DM users first</p></li><li><p>We never sell or airdrop HBOT tokens</p></li><li><p>The only way to get HBOT is by completing bounties</p></li><li><p>Report suspicious activity in our #scam-reports Discord channel</p></li></ul><p>Happy trading! &#129302;</p><p></p><div><hr></div><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://hummingbot.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Hummingbot Newsletter! Subscribe for free to get notified of each monthly release.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Hummingbot Newsletter - December 2025]]></title><description><![CDATA[&#128640; Shipped Hummingbot v2.11 | &#128242; New Condor Telegram Bot UI | &#128051; New Orca Solana DEX Connector | &#9742;&#65039; Dec 2025 Community Call]]></description><link>https://hummingbot.substack.com/p/hummingbot-newsletter-december-2025</link><guid isPermaLink="false">https://hummingbot.substack.com/p/hummingbot-newsletter-december-2025</guid><dc:creator><![CDATA[Hummingbot Foundation]]></dc:creator><pubDate>Thu, 18 Dec 2025 04:50:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0DPg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae998fb2-0863-47b9-9603-0b16866efaac_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><h1><strong>Hummingbot v2.11: Control Your Bots from Anywhere</strong></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0DPg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae998fb2-0863-47b9-9603-0b16866efaac_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0DPg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae998fb2-0863-47b9-9603-0b16866efaac_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!0DPg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae998fb2-0863-47b9-9603-0b16866efaac_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!0DPg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae998fb2-0863-47b9-9603-0b16866efaac_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!0DPg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae998fb2-0863-47b9-9603-0b16866efaac_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0DPg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae998fb2-0863-47b9-9603-0b16866efaac_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ae998fb2-0863-47b9-9603-0b16866efaac_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1731967,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hummingbot.substack.com/i/181949861?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae998fb2-0863-47b9-9603-0b16866efaac_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0DPg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae998fb2-0863-47b9-9603-0b16866efaac_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!0DPg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae998fb2-0863-47b9-9603-0b16866efaac_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!0DPg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae998fb2-0863-47b9-9603-0b16866efaac_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!0DPg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae998fb2-0863-47b9-9603-0b16866efaac_1024x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>GM to all the Hummingbot users around the world &#127758;</p><p>Hummingbot v2.11 introduces <strong>Condor</strong>, a brand-new Telegram-based UI that lets you execute trades and control your trading bots from anywhere &#8212; both phone and desktop. Combined with the new <strong>Orca DEX connector</strong> and<strong> HyperLiquid API key support</strong>, this release makes Hummingbot more accessible and powerful than ever.</p><p>As we wrap up 2025, I&#8217;m incredibly proud of how far Hummingbot has come. It&#8217;s been almost 7 years since the first Github release and 4 years since the Hummingbot Foundation was established. In next Tuesday&#8217;s monthly community call, I&#8217;ll recap the Hummingbot journey, explain how it has become a self-sustainable open source project, and proposed a simplification to the Hummingbot Foundation governance system that should make it easier to utilize by the entire global community, from traders to developers to exchanges.</p><p>Michael Feng<br>Co-founder, Hummingbot</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://hummingbot.org/release-notes/2.11.0/&quot;,&quot;text&quot;:&quot;v2.11 Release Notes&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://hummingbot.org/release-notes/2.11.0/"><span>v2.11 Release Notes</span></a></p><div><hr></div><p></p><h2><strong>&#128242; Introducing Condor &#8212; the Telegram-based companion to Hummingbot API</strong></h2><p><strong>Condor</strong> is a new <strong>Telegram-based control center</strong> for Hummingbot, giving traders a fast and intuitive way to monitor bots, execute trades, manage liquidity, and interact with Gateway &#8212; all directly from their phone.</p><p>Built on the Hummingbot API, Condor provides a streamlined interface for both CEX and DEX operations, offering real-time dashboards, interactive menus, and a unified configuration system.</p><p><strong>Key Features:</strong></p><ul><li><p>&#128202; <strong>Portfolio:</strong> View your real-time P&amp;L across all your CEX and DEX positions</p></li><li><p>&#129302; <strong>Bot Management:</strong> Configure, deploy, and monitor multiple Hummingbot instances</p></li><li><p><strong>&#128257; CEX &amp; DEX Trading:</strong> Execute trades on any spot CEX, perp DEX, and AMM DEX</p></li><li><p>&#128167; <strong>Liquidity Management:</strong> Browse pools, open LP positions, and harvest fees</p></li><li><p>&#9881;&#65039; <strong>Multiple Servers:</strong> Manage multiple Hummingbot API servers</p></li></ul><p>Condor makes Hummingbot more accessible than ever &#8212; perfect for traders running bots across multiple environments who want lightweight, remote monitoring and execution without needing a desktop terminal.</p><p>&#128640; <strong>Get Started:</strong> Watch Friday&#8217;s livestream below where our CTO Fede will show how to set up Condor alongside Hummingbot API. </p><div id="youtube2-h2wwudwetcU" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;h2wwudwetcU&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/h2wwudwetcU?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Alternatively follow the new <a href="https://hummingbot.org/installation/hummingbot-api/) for step-by-step Condor setup instructions!">Hummingbot API Quickstart Guide</a> which includes Condor setup.</p><p></p><div><hr></div><h2><strong>&#128051; New Orca Connector for Solana DEX Trading</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-36r!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2eeaf1a-f190-4cf4-84b1-56bb4e75eccf_2494x1456.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-36r!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2eeaf1a-f190-4cf4-84b1-56bb4e75eccf_2494x1456.png 424w, https://substackcdn.com/image/fetch/$s_!-36r!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2eeaf1a-f190-4cf4-84b1-56bb4e75eccf_2494x1456.png 848w, https://substackcdn.com/image/fetch/$s_!-36r!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2eeaf1a-f190-4cf4-84b1-56bb4e75eccf_2494x1456.png 1272w, https://substackcdn.com/image/fetch/$s_!-36r!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2eeaf1a-f190-4cf4-84b1-56bb4e75eccf_2494x1456.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-36r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2eeaf1a-f190-4cf4-84b1-56bb4e75eccf_2494x1456.png" width="1456" height="850" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d2eeaf1a-f190-4cf4-84b1-56bb4e75eccf_2494x1456.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:850,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:282108,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hummingbot.substack.com/i/181949861?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2eeaf1a-f190-4cf4-84b1-56bb4e75eccf_2494x1456.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-36r!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2eeaf1a-f190-4cf4-84b1-56bb4e75eccf_2494x1456.png 424w, https://substackcdn.com/image/fetch/$s_!-36r!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2eeaf1a-f190-4cf4-84b1-56bb4e75eccf_2494x1456.png 848w, https://substackcdn.com/image/fetch/$s_!-36r!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2eeaf1a-f190-4cf4-84b1-56bb4e75eccf_2494x1456.png 1272w, https://substackcdn.com/image/fetch/$s_!-36r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2eeaf1a-f190-4cf4-84b1-56bb4e75eccf_2494x1456.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Hummingbot v2.11 also introduces a <strong>brand-new <a href="https://www.orca.so/">Orca</a> connector</strong>, bringing one of Solana&#8217;s most trusted DEXs into the Hummingbot ecosystem. This integration enables traders to execute swaps and manage concentrated liquidity positions using standardized endpoints in Hummingbot Gateway.</p><p>This connector was developed through our <strong><a href="https://hummingbot.org/bounties/">connector bounties program</a></strong>, in which Hummingbot Foundation works with exchanges to fund high-quality integrations built by experience Hummingbot community developers.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://hummingbot.org/exchanges/gateway/orca/&quot;,&quot;text&quot;:&quot;Orca Connector Docs&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://hummingbot.org/exchanges/gateway/orca/"><span>Orca Connector Docs</span></a></p><p></p><div><hr></div><h2><strong>&#128197; Join Our December Community Call - Next Tuesday!</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bkpT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8e792d-b187-4298-96c8-05258fc11b22_1374x532.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bkpT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8e792d-b187-4298-96c8-05258fc11b22_1374x532.png 424w, https://substackcdn.com/image/fetch/$s_!bkpT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8e792d-b187-4298-96c8-05258fc11b22_1374x532.png 848w, https://substackcdn.com/image/fetch/$s_!bkpT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8e792d-b187-4298-96c8-05258fc11b22_1374x532.png 1272w, https://substackcdn.com/image/fetch/$s_!bkpT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8e792d-b187-4298-96c8-05258fc11b22_1374x532.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bkpT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8e792d-b187-4298-96c8-05258fc11b22_1374x532.png" width="1374" height="532" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9c8e792d-b187-4298-96c8-05258fc11b22_1374x532.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:532,&quot;width&quot;:1374,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:661123,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hummingbot.substack.com/i/181949861?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8e792d-b187-4298-96c8-05258fc11b22_1374x532.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bkpT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8e792d-b187-4298-96c8-05258fc11b22_1374x532.png 424w, https://substackcdn.com/image/fetch/$s_!bkpT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8e792d-b187-4298-96c8-05258fc11b22_1374x532.png 848w, https://substackcdn.com/image/fetch/$s_!bkpT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8e792d-b187-4298-96c8-05258fc11b22_1374x532.png 1272w, https://substackcdn.com/image/fetch/$s_!bkpT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c8e792d-b187-4298-96c8-05258fc11b22_1374x532.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Save the date for <strong>Tuesday, December 17</strong> &#8212; this month&#8217;s community call will be a special one!</p><p>At <strong>7am PST / 11am EST / 11pm Singapore time</strong>, join us on Discord in the <strong>#community-video-calls</strong> channel.</p><p><strong>This month, I&#8217;ll be covering:</strong></p><p>&#128640; <strong>The Hummingbot Journey:</strong> How Hummingbot has evolved into a self-sustainable open source project powered by community usage across the exchange landscape</p><p>&#127963;&#65039; <strong>Governance Simplification: </strong>A proposed simplification to the Hummingbot Foundation governance system that should make it easier to utilize by the entire global community &#8212; from traders to developers to exchanges</p><p>&#128739;&#65039; Technical Roadmap: A preview of what&#8217;s ahead for the Hummingbot ecosystem in 2026</p><p>Join on Discord to get your questions answered, or watch the recording, which will be published on YouTube afterwards.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://discord.gg/e7zVVU6P?event=1449041183308255364&quot;,&quot;text&quot;:&quot;Join Discord Event&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://discord.gg/e7zVVU6P?event=1449041183308255364"><span>Join Discord Event</span></a></p><p></p><div><hr></div><p></p><h2>&#128127; Security Reminder</h2><p>Stay vigilant against scammers:</p><ul><li><p>We never DM users first</p></li><li><p>We never sell or airdrop HBOT tokens</p></li><li><p>The only way to get HBOT is by completing bounties</p></li><li><p>Report suspicious activity in our #scam-reports Discord channel</p></li></ul><p>Happy trading! &#129302;</p><p></p><div><hr></div><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://hummingbot.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Hummingbot Newsletter! Subscribe for free to get notified of each monthly release.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Hummingbot Newsletter - November 2025]]></title><description><![CDATA[&#128640; Shipped Hummingbot v2.10 | &#129514; Improved Hummingbot AI Capabilities | &#11088;&#65039; Updated Bitget Connectors]]></description><link>https://hummingbot.substack.com/p/hummingbot-newsletter-november-2025</link><guid isPermaLink="false">https://hummingbot.substack.com/p/hummingbot-newsletter-november-2025</guid><dc:creator><![CDATA[Hummingbot Foundation]]></dc:creator><pubDate>Wed, 05 Nov 2025 01:50:59 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!OlTW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a97d640-f5e1-4b62-a941-f68742e3326a_1082x1068.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><h1>Hummingbot v2.10: AI-Powered Trading Bots</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OlTW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a97d640-f5e1-4b62-a941-f68742e3326a_1082x1068.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OlTW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a97d640-f5e1-4b62-a941-f68742e3326a_1082x1068.png 424w, https://substackcdn.com/image/fetch/$s_!OlTW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a97d640-f5e1-4b62-a941-f68742e3326a_1082x1068.png 848w, https://substackcdn.com/image/fetch/$s_!OlTW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a97d640-f5e1-4b62-a941-f68742e3326a_1082x1068.png 1272w, https://substackcdn.com/image/fetch/$s_!OlTW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a97d640-f5e1-4b62-a941-f68742e3326a_1082x1068.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OlTW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a97d640-f5e1-4b62-a941-f68742e3326a_1082x1068.png" width="1082" height="1068" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7a97d640-f5e1-4b62-a941-f68742e3326a_1082x1068.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1068,&quot;width&quot;:1082,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1650832,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hummingbot.substack.com/i/178027881?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a97d640-f5e1-4b62-a941-f68742e3326a_1082x1068.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OlTW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a97d640-f5e1-4b62-a941-f68742e3326a_1082x1068.png 424w, https://substackcdn.com/image/fetch/$s_!OlTW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a97d640-f5e1-4b62-a941-f68742e3326a_1082x1068.png 848w, https://substackcdn.com/image/fetch/$s_!OlTW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a97d640-f5e1-4b62-a941-f68742e3326a_1082x1068.png 1272w, https://substackcdn.com/image/fetch/$s_!OlTW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a97d640-f5e1-4b62-a941-f68742e3326a_1082x1068.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>GM to all the &#129302; Hummingbot traders and developers around the &#127758; globe!</p><p>This release integrates Gateway into Hummingbot API, adding DEX trading and liquidity provision to its already-extensive capabilities. We&#8217;ve also significantly improved Hummingbot MCP, making it easier for you to control local or remote API servers using Claude, ChatGPT and other AI assistants.</p><p>As someone who tries to spend his life outdoors in nature, I&#8217;ve always dreamed of being able to control my trading bots and react to changing market conditions from the extreme wilderness. With the Hummingbot v2.10 release (and other technologies like Starlink), that vision is closer to reality than ever!</p><p>Michael Feng<br>Co-founder, Hummingbot</p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://hummingbot.org/release-notes/2.10.0/&quot;,&quot;text&quot;:&quot;See v.2.10 Release Notes&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://hummingbot.org/release-notes/2.10.0/"><span>See v.2.10 Release Notes</span></a></p><p></p><div><hr></div><p></p><h2><strong>&#129302; Building AI-Powered Trading Agents with Claude Code &amp; Hummingbot</strong></h2><div id="youtube2-eq8EfiOEcFM" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;eq8EfiOEcFM&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/eq8EfiOEcFM?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Watch our CTO Federico show how to use AI to execute trades, create LP positions, and deploy automate strategies across CEX and DEX:</p><p>&#10024; Install and configure Hummingbot API + MCP Server</p><p>&#129504; Connect Claude Code, Gemini, ChatGPT, and other AI assistants</p><p>&#128260; Execute trades on Solana and deploy Meteora LP ranges with natural language</p><p>&#127760; Manage both CEX and DEX operations through AI</p><p><strong>Get Started: </strong>Follow our updated <a href="https://hummingbot.org/mcp/">Hummingbot MCP documentation</a> to connect your AI assistant in minutes!</p><p></p><div><hr></div><p></p><h2><strong>&#128279; Gateway &#215; Hummingbot API Integration</strong></h2><p>We&#8217;ve integrated Gateway directly with the Hummingbot API, creating a single control plane for both centralized and decentralized exchange operations. </p><p>Now you can manage CEX/DEX trading and liquidity provision through one unified interface, store all the trades and positions you create, and control everything with AI!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!C9aF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76ea1104-924e-41ac-9a7b-f4eed783c23d_2444x1198.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!C9aF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76ea1104-924e-41ac-9a7b-f4eed783c23d_2444x1198.png 424w, https://substackcdn.com/image/fetch/$s_!C9aF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76ea1104-924e-41ac-9a7b-f4eed783c23d_2444x1198.png 848w, https://substackcdn.com/image/fetch/$s_!C9aF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76ea1104-924e-41ac-9a7b-f4eed783c23d_2444x1198.png 1272w, https://substackcdn.com/image/fetch/$s_!C9aF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76ea1104-924e-41ac-9a7b-f4eed783c23d_2444x1198.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!C9aF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76ea1104-924e-41ac-9a7b-f4eed783c23d_2444x1198.png" width="1456" height="714" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/76ea1104-924e-41ac-9a7b-f4eed783c23d_2444x1198.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:714,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:252196,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hummingbot.substack.com/i/178027881?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76ea1104-924e-41ac-9a7b-f4eed783c23d_2444x1198.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!C9aF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76ea1104-924e-41ac-9a7b-f4eed783c23d_2444x1198.png 424w, https://substackcdn.com/image/fetch/$s_!C9aF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76ea1104-924e-41ac-9a7b-f4eed783c23d_2444x1198.png 848w, https://substackcdn.com/image/fetch/$s_!C9aF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76ea1104-924e-41ac-9a7b-f4eed783c23d_2444x1198.png 1272w, https://substackcdn.com/image/fetch/$s_!C9aF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76ea1104-924e-41ac-9a7b-f4eed783c23d_2444x1198.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#128218; <a href="https://hummingbot.org/hummingbot-api/installation/">Install Hummingbot API</a> and start running a powerful CEX/DEX trading command center!</p><p></p><div><hr></div><p></p><h2><strong>&#128260; Updated Bitget Connectors</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UqZI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e71293e-c6a0-46b2-8b4c-b77d2a9a8308_512x269.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UqZI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e71293e-c6a0-46b2-8b4c-b77d2a9a8308_512x269.png 424w, https://substackcdn.com/image/fetch/$s_!UqZI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e71293e-c6a0-46b2-8b4c-b77d2a9a8308_512x269.png 848w, https://substackcdn.com/image/fetch/$s_!UqZI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e71293e-c6a0-46b2-8b4c-b77d2a9a8308_512x269.png 1272w, https://substackcdn.com/image/fetch/$s_!UqZI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e71293e-c6a0-46b2-8b4c-b77d2a9a8308_512x269.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UqZI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e71293e-c6a0-46b2-8b4c-b77d2a9a8308_512x269.png" width="512" height="269" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2e71293e-c6a0-46b2-8b4c-b77d2a9a8308_512x269.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:269,&quot;width&quot;:512,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Bitget-Trade smarter&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Bitget-Trade smarter" title="Bitget-Trade smarter" srcset="https://substackcdn.com/image/fetch/$s_!UqZI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e71293e-c6a0-46b2-8b4c-b77d2a9a8308_512x269.png 424w, https://substackcdn.com/image/fetch/$s_!UqZI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e71293e-c6a0-46b2-8b4c-b77d2a9a8308_512x269.png 848w, https://substackcdn.com/image/fetch/$s_!UqZI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e71293e-c6a0-46b2-8b4c-b77d2a9a8308_512x269.png 1272w, https://substackcdn.com/image/fetch/$s_!UqZI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e71293e-c6a0-46b2-8b4c-b77d2a9a8308_512x269.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We&#8217;ve introduced a <strong>new Bitget Spot connector</strong> and completely refactored the <strong>Perpetual connector</strong> to align with Bitget&#8217;s latest API specifications, strengthening our partnership with Bitget. See <a href="https://www.bitget.com/blog/articles/bitget-expands-partnership-hummingbot">this link</a> for the announcement, and look forward to co-marketing campaigns announced in the Hummingbot Discord and Twitter soon!</p><p>&#10024; <strong>New Spot Connector:</strong> Full integration for Bitget Spot trading</p><p>&#128260; <strong>Perpetual Refactor:</strong> Migrated to newest API endpoints for improved reliability</p><p>&#128202; <strong>Candles Feed Support:</strong> Added candle feeds for both Spot and Perpetual markets</p><p>See &#128218; <a href="https://hummingbot.org/exchanges/bitget/">Bitget Connector</a> for more info!</p><p></p><div><hr></div><p></p><h2><strong>&#129374; PancakeSwap Solana CLMM Connector</strong></h2><p>This release introduces a new Gateway DEX connector: <strong>PancakeSwap Solana</strong>, bringing professional market making tools to Solana&#8217;s fastest-growing DEX.</p><p>&#128167; <strong>Full CLMM Support:</strong> Open/close positions, add/remove liquidity, and collect fees on PancakeSwap Solana V3 pools</p><p>&#9889; <strong>Native Solana Integration:</strong> Built on Solana&#8217;s high-performance blockchain infrastructure</p><p>See &#128218; <a href="https://hummingbot.org/exchanges/gateway/pancakeswap">Pancakeswap Connector</a> for more info!</p><p></p><div><hr></div><p></p><h2>&#128197; Join our November Community Call Tomorrow</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!U1Kq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0092e938-cb1e-41b5-829b-9bc25885bc86_1378x530.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!U1Kq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0092e938-cb1e-41b5-829b-9bc25885bc86_1378x530.png 424w, https://substackcdn.com/image/fetch/$s_!U1Kq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0092e938-cb1e-41b5-829b-9bc25885bc86_1378x530.png 848w, https://substackcdn.com/image/fetch/$s_!U1Kq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0092e938-cb1e-41b5-829b-9bc25885bc86_1378x530.png 1272w, https://substackcdn.com/image/fetch/$s_!U1Kq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0092e938-cb1e-41b5-829b-9bc25885bc86_1378x530.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!U1Kq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0092e938-cb1e-41b5-829b-9bc25885bc86_1378x530.png" width="1378" height="530" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0092e938-cb1e-41b5-829b-9bc25885bc86_1378x530.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:530,&quot;width&quot;:1378,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:448389,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hummingbot.substack.com/i/178027881?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0092e938-cb1e-41b5-829b-9bc25885bc86_1378x530.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!U1Kq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0092e938-cb1e-41b5-829b-9bc25885bc86_1378x530.png 424w, https://substackcdn.com/image/fetch/$s_!U1Kq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0092e938-cb1e-41b5-829b-9bc25885bc86_1378x530.png 848w, https://substackcdn.com/image/fetch/$s_!U1Kq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0092e938-cb1e-41b5-829b-9bc25885bc86_1378x530.png 1272w, https://substackcdn.com/image/fetch/$s_!U1Kq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0092e938-cb1e-41b5-829b-9bc25885bc86_1378x530.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Save the date for <strong>Wednesday, November 5</strong>! </p><p>At 7am PST / 11am EST / 11pm Singapore time, join our monthly community call on <a href="http://discord.gg/hummingbot">Discord</a> in the <strong>#community-video-calls</strong> channel.</p><p>Perfect for community members and developers interested in:</p><ul><li><p>Technical roadmap updates</p></li><li><p>Dev bounty opportunities</p></li><li><p>Architecture deep-dives</p></li><li><p>Strategy framework discussions</p></li></ul><p>The recording will be published on YouTube afterwards.</p><p></p><div><hr></div><p></p><h2>&#128127; Security Reminder</h2><p>Stay vigilant against scammers:</p><ul><li><p>We never DM users first</p></li><li><p>We never sell or airdrop HBOT tokens</p></li><li><p>The only way to get HBOT is by completing bounties</p></li><li><p>Report suspicious activity in our #scam-reports Discord channel</p></li></ul><p>Happy trading! &#129302;</p><p></p><div><hr></div><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://hummingbot.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Hummingbot Newsletter! Subscribe for free to get notified of each monthly release.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Hummingbot Newsletter - September 2025]]></title><description><![CDATA[&#128640; Shipped Hummingbot v2.9 | &#129514; Revamped Quants Lab | &#129374; PancakeSwap Returns | &#129302; MCP + API Tutorial Series]]></description><link>https://hummingbot.substack.com/p/hummingbot-newsletter-september-2025</link><guid isPermaLink="false">https://hummingbot.substack.com/p/hummingbot-newsletter-september-2025</guid><dc:creator><![CDATA[Hummingbot Foundation]]></dc:creator><pubDate>Thu, 25 Sep 2025 19:30:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!FcYk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b9a7b93-94d4-48fa-9940-bf93907479eb_1920x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FcYk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b9a7b93-94d4-48fa-9940-bf93907479eb_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FcYk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b9a7b93-94d4-48fa-9940-bf93907479eb_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!FcYk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b9a7b93-94d4-48fa-9940-bf93907479eb_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!FcYk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b9a7b93-94d4-48fa-9940-bf93907479eb_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!FcYk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b9a7b93-94d4-48fa-9940-bf93907479eb_1920x1080.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FcYk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b9a7b93-94d4-48fa-9940-bf93907479eb_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7b9a7b93-94d4-48fa-9940-bf93907479eb_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:265724,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hummingbot.substack.com/i/174558024?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b9a7b93-94d4-48fa-9940-bf93907479eb_1920x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!FcYk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b9a7b93-94d4-48fa-9940-bf93907479eb_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!FcYk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b9a7b93-94d4-48fa-9940-bf93907479eb_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!FcYk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b9a7b93-94d4-48fa-9940-bf93907479eb_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!FcYk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b9a7b93-94d4-48fa-9940-bf93907479eb_1920x1080.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1>Hummingbot v2.9.0 is Here!</h1><p>GM to all the &#129302; Hummingbot traders and developers around the &#127758; globe!</p><p>We&#8217;re excited to announce the release of <strong>Hummingbot v2.9.0</strong>, featuring a revamped Quants Lab for research and data collection, return of the PancakeSwap connector, and powerful RPC provider integrations:</p><div><hr></div><h2>&#129514; Revamped Quants Lab for Trading R&amp;D</h2><p>We&#8217;ve completely overhauled the <a href="https://github.com/hummingbot/quants-lab">Quants Lab repository,</a> transforming it into a comprehensive platform for quantitative trading research:</p><p>&#128202; <strong>Data Collection &amp; Processing</strong>: Collect and process market data from multiple sources for systematic analysis</p><p>&#128300; <strong>Strategy Development</strong>: Build custom screeners, develop trading strategies, and backtest using the Hummingbot Python library</p><p>&#9200; <strong>Task Orchestration</strong>: Automate scheduled execution of Jupyter notebooks and custom tasks</p><p>&#128241; <strong>Multi-Channel Notifications</strong>: Schedule automated reports via email, Telegram, Slack, and Discord</p><p>&#128218; <strong>Quick Start Notebooks</strong>: New research notebooks to help you get started faster</p><p></p><div><hr></div><h2>&#129374; PancakeSwap Returns to Gateway</h2><p>The PancakeSwap connector has been updated for the modernized Gateway architecture! Trade and provide liquidity on BNB Chain&#8217;s largest DEX and its instances other EVM chains:</p><p>&#10024; <strong>Router</strong>: Swap using optimal trade routing across all PancakeSwap pools</p><p>&#128167; <strong>AMM + CLMM</strong>: Swap and add liquidity to individual V2 and V3 pools</p><p>&#127760; <strong>Multi-Chain</strong>: BNB Chain, Ethereum, Arbitrum, Base, Polygon, and zkSync</p><p></p><div><hr></div><h2>&#9889; RPC Provider Abstraction System</h2><p>The Gateway DEX middleware now features a flexible RPC provider system for optimized blockchain connectivity, along with dedicated integrations to Helius and Infura.</p><p>&#127775; <strong>Helius Integration</strong>: Leading Solana validator with WebSocket RPC, regional endpoints, and Jito support</p><p>&#128311; <strong>Infura Integration</strong>: Enhanced reliability across 8+ EVM networks with automatic endpoint resolution</p><p>&#128295; <strong>Easy Configuration</strong>: Simple <code>gateway config &lt;provider&gt; update</code> commands to add API keys</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://hummingbot.org/release-notes/2.9.0/&quot;,&quot;text&quot;:&quot;See Release Notes&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://hummingbot.org/release-notes/2.9.0/"><span>See Release Notes</span></a></p><p></p><div><hr></div><h2>&#129302; Master Hummingbot MCP + API Server</h2><p>Learn how to supercharge your trading with AI assistants! We&#8217;ve created a comprehensive tutorial playlist showing how to install the Hummingbot MCP and using it to control the Hummingbot API server with AI:</p><p>&#128250; <strong>Watch the Tutorial Playlist</strong>: </p><div id="youtube2-Ex27d6vtjVQ" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;Ex27d6vtjVQ&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/Ex27d6vtjVQ?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>What You&#8217;ll Learn:</p><ul><li><p>Set up MCP server with Hummingbot API</p></li><li><p>Connect Claude, Gemini, and other LLMs to control your bots</p></li><li><p>Execute trades and deploy strategies through conversational interfaces</p><p></p></li></ul><div><hr></div><h2>&#128167; XRPLiquid Reaches $25M Volume Milestone</h2><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cvN6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2070f51d-fd83-449e-85e0-e21ad84d9233_1878x364.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cvN6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2070f51d-fd83-449e-85e0-e21ad84d9233_1878x364.png 424w, https://substackcdn.com/image/fetch/$s_!cvN6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2070f51d-fd83-449e-85e0-e21ad84d9233_1878x364.png 848w, https://substackcdn.com/image/fetch/$s_!cvN6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2070f51d-fd83-449e-85e0-e21ad84d9233_1878x364.png 1272w, https://substackcdn.com/image/fetch/$s_!cvN6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2070f51d-fd83-449e-85e0-e21ad84d9233_1878x364.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cvN6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2070f51d-fd83-449e-85e0-e21ad84d9233_1878x364.png" width="1456" height="282" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2070f51d-fd83-449e-85e0-e21ad84d9233_1878x364.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:282,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:157022,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hummingbot.substack.com/i/174558024?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2070f51d-fd83-449e-85e0-e21ad84d9233_1878x364.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cvN6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2070f51d-fd83-449e-85e0-e21ad84d9233_1878x364.png 424w, https://substackcdn.com/image/fetch/$s_!cvN6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2070f51d-fd83-449e-85e0-e21ad84d9233_1878x364.png 848w, https://substackcdn.com/image/fetch/$s_!cvN6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2070f51d-fd83-449e-85e0-e21ad84d9233_1878x364.png 1272w, https://substackcdn.com/image/fetch/$s_!cvN6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2070f51d-fd83-449e-85e0-e21ad84d9233_1878x364.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Exciting news from the <a href="https://xrpliquid.com/">XRPLiquid</a> market maker rewards platform! The community has achieved an impressive milestone with over <strong>$25 million in volume</strong> and <strong>623,000+ rewarded orders</strong>.</p><p>&#127942; <strong>Season 1 Reward Pool</strong>: Join the inaugural season and compete for your share of <strong>$100,000</strong> in total rewards</p><p>&#128176; <strong>Weekly Rewards</strong>: Earn <strong>400 XRP per week</strong> through trading in eligible XRPL pairs</p><p>&#128200; <strong>Track Your Progress</strong>: Climb the leaderboard and earn weekly XRP reward checks</p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://hummingbot.org/blog/#using-xrp-ledger-with-hummingbot&quot;,&quot;text&quot;:&quot;How to Run Hummingbot on XRP Ledger&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://hummingbot.org/blog/#using-xrp-ledger-with-hummingbot"><span>How to Run Hummingbot on XRP Ledger</span></a></p><p></p><div><hr></div><h2>&#128197; October Community Call</h2><p>Save the date for <strong>Wednesday, October 8</strong>! </p><p>At 8am PST / 11am EST / 11pm Singapore time, join our monthly community call on <a href="http://discord.gg/hummingbot">Discord</a> in the <strong>#community-video-calls</strong> channel.</p><p>Perfect for community members and developers interested in:</p><ul><li><p>Technical roadmap updates</p></li><li><p>Dev bounty opportunities</p></li><li><p>Architecture deep-dives</p></li><li><p>Strategy framework discussions</p></li></ul><p>Recording will be published on YouTube afterwards.</p><p></p><div><hr></div><h2>&#128127; Security Reminder</h2><p>Stay vigilant against scammers:</p><ul><li><p>We never DM users first</p></li><li><p>We never sell or airdrop HBOT tokens</p></li><li><p>The only way to get HBOT is by completing bounties</p></li><li><p>Report suspicious activity in our #scam-reports Discord channel</p></li></ul><p>Happy trading! &#129302;</p><p></p><div><hr></div><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://hummingbot.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Hummingbot Newsletter! Subscribe for free to get notified of each monthly release.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Hummingbot Newsletter - August 2025]]></title><description><![CDATA[&#128640; Shipped Hummingbot v2.8 | &#11088;&#65039; Gateway Refactor Completed | &#128268; New Hummingbot MCP Server | &#127891; Botcamp Cohort 12 Starting Soon]]></description><link>https://hummingbot.substack.com/p/hummingbot-newsletter-august-2025</link><guid isPermaLink="false">https://hummingbot.substack.com/p/hummingbot-newsletter-august-2025</guid><dc:creator><![CDATA[Hummingbot Foundation]]></dc:creator><pubDate>Thu, 21 Aug 2025 17:09:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!XIb9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1402f3f-8397-4fd1-ab8f-30b226ef6fa3_1484x838.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><h3>&#128640; Hummingbot v2.8.0 is Here!</h3><p>GM to all the &#129302; Hummingbot users around the &#127758; globe!</p><p>We're thrilled to announce the release of Hummingbot v2.8.0, featuring newly refactored Gateway DEX middleware and groundbreaking AI integration capabilities:</p><h2>&#128279; Gateway 2.8.0 - Major Architecture Refactor</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XIb9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1402f3f-8397-4fd1-ab8f-30b226ef6fa3_1484x838.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XIb9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1402f3f-8397-4fd1-ab8f-30b226ef6fa3_1484x838.png 424w, https://substackcdn.com/image/fetch/$s_!XIb9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1402f3f-8397-4fd1-ab8f-30b226ef6fa3_1484x838.png 848w, https://substackcdn.com/image/fetch/$s_!XIb9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1402f3f-8397-4fd1-ab8f-30b226ef6fa3_1484x838.png 1272w, https://substackcdn.com/image/fetch/$s_!XIb9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1402f3f-8397-4fd1-ab8f-30b226ef6fa3_1484x838.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XIb9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1402f3f-8397-4fd1-ab8f-30b226ef6fa3_1484x838.png" width="1456" height="822" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f1402f3f-8397-4fd1-ab8f-30b226ef6fa3_1484x838.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:822,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:122714,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hummingbot.substack.com/i/171569792?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1402f3f-8397-4fd1-ab8f-30b226ef6fa3_1484x838.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XIb9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1402f3f-8397-4fd1-ab8f-30b226ef6fa3_1484x838.png 424w, https://substackcdn.com/image/fetch/$s_!XIb9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1402f3f-8397-4fd1-ab8f-30b226ef6fa3_1484x838.png 848w, https://substackcdn.com/image/fetch/$s_!XIb9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1402f3f-8397-4fd1-ab8f-30b226ef6fa3_1484x838.png 1272w, https://substackcdn.com/image/fetch/$s_!XIb9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1402f3f-8397-4fd1-ab8f-30b226ef6fa3_1484x838.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This release completes the Gateway refactor approved by the community in <a href="https://snapshot.box/#/s:hbot-ncp.eth/proposal/0x5cc3540ee219787d5c842bc1ccdb11aab46203bb7f0be658b6b40858501a8e4c">NCP-22</a> and introduces a completely revamped architecture that transforms how you interact with DEXs:</p><p><strong>&#9889; Modernized DEX Infrastructure</strong>: Standardized schemas across all connectors with native Gateway commands directly in Hummingbot</p><p><strong>&#128260; Updated Connectors</strong>: Fresh implementations for Uniswap, Raydium, Meteora, and Jupiter with improved performance and reliability</p><p><strong>&#128176; Active Bounties</strong>: Help upgrade PancakeSwap, Curve and other legacy connectors - <a href="https://github.com/orgs/hummingbot/projects/7">bounties now open</a>!</p><p><strong>&#127899;&#65039; New Trading Commands</strong>: Execute swaps and manage LP positions directly from the Hummingbot CLI</p><pre><code><code>&gt;&gt;&gt; gateway swap jupiter/router SOL-USDC BUY 0.01

Fetching swap quote for SOL-USDC from jupiter/router... 

=== Swap Transaction ===
Token In: SOL (EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v)
Token Out: USDC (So11111111111111111111111111111111111111112)
Price: 186.61700000000002 USDC/SOL
Slippage: 1%
Price Impact: 0.00%

Do you want to execute this swap? (y/n) &gt;&gt;&gt;</code></code></pre><p><strong>&#128272; Hardware Wallet Support</strong>: Enhanced security with Ledger integration</p><p><strong>&#9989; Full Compatibility</strong>: Works seamlessly with existing scripts and strategies - no migration needed</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://hummingbot.org/release-notes/2.8.0/&quot;,&quot;text&quot;:&quot;See release notes&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://hummingbot.org/release-notes/2.8.0/"><span>See release notes</span></a></p><div><hr></div><h2>&#129302; Hummingbot MCP Server</h2><p>We're introducing the <a href="https://github.com/hummingbot/mcp">Hummingbot MCP (Model Context Protocol) Server</a> - a game-changing module that connects Hummingbot API with AI agents, automation frameworks, and external tools via the MCP standard.</p><p>This opens up entirely new possibilities for algorithmic trading:</p><ul><li><p>Control Hummingbot through Claude, Gemini, and other LLMs</p></li><li><p>Build AI-powered trading workflows</p></li><li><p>Create custom automation with natural language commands</p></li><li><p>Deploy and manage bots through conversational interfaces</p><p></p></li></ul><div><hr></div><h2>&#127909; Hummingbot Live: Using AI for Trading</h2><p><strong>Join us Friday, August 22</strong> for a special livestream showcasing the new MCP capabilities:</p><p>&#128197; <strong>When</strong>: Friday, August 22<br>&#128279; <strong>Where</strong>: <a href="https://youtube.com/live/Tvun-Zn-ii0?feature=share">youtube.com/live/Tvun-Zn-ii0</a></p><p><strong>Agenda:</strong></p><ul><li><p>&#9939;&#65039;&#8205;&#128165; Hummingbot MCP + API: What is a MCP server and why should you use it with Hummingbot API?</p></li><li><p>&#129302; MCP Demo: Use Claude, Gemini, and other LLMs to execute trades and deploy bots on any Hummingbot exchange</p></li><li><p>&#10067; Live Q&amp;A: We'll answer all your questions!</p></li></ul><h2></h2><div><hr></div><h2>&#128197; August Community Call</h2><p><strong>Tuesday, August 27</strong> - Join our monthly community call on <a href="https://discord.gg/hummingbot">Discord</a> in the <strong>#community-video-calls</strong> channel.</p><p>Perfect for community members and developers interested in:</p><ul><li><p>Technical roadmap updates</p></li><li><p>Dev bounty opportunities</p></li><li><p>Gateway architecture deep-dives</p></li><li><p>V2 Framework discussions</p></li></ul><p>Recording will be published on YouTube afterwards.</p><h2></h2><div><hr></div><h2>&#127891; Botcamp Cohort 12 Info Session</h2><p><strong>Right after the Community Call on August 27</strong>, we'll host a special info session about Botcamp Cohort 12:</p><p>&#128250; <strong>Watch Live</strong>: <a href="https://youtube.com/live/KCFZsTuOsm4?feature=share">youtube.com/live/KCFZsTuOsm4</a></p><p><strong>What We'll Cover:</strong></p><ul><li><p>&#127891; What You'll Learn: Deep dive into the skills and strategies that will empower you</p></li><li><p>&#128467;&#65039; The Full Cohort Schedule: Plan your 4-week journey to level up your trading prowess</p></li><li><p>&#10024; What's NEW in Cohort 12: Discover the latest features and upgrades to the program!</p><p></p></li></ul><div><hr></div><h2>&#128640; Botcamp Cohort 12 Starting September 9</h2><p>The next cohort of our intensive algorithmic trading bootcamp is just around the corner!</p><p><strong>Program Details:</strong></p><ul><li><p><strong>Start Date</strong>: September 9, 2025</p></li><li><p><strong>Duration</strong>: 4-week intensive program</p></li><li><p><strong>Format</strong>: 12+ live online sessions with lifetime recording access</p></li><li><p><strong>Instructors</strong>: Direct teaching from Hummingbot co-founders</p></li><li><p><strong>Certification</strong>: Official certification upon completion</p></li><li><p><strong>Demo Day</strong>: Present your strategy to the community</p></li></ul><p>&#128218; <strong>Full Schedule</strong>: <a href="https://www.botcamp.xyz/cohorts">botcamp.xyz/cohorts</a></p><p>Don't miss this opportunity to master the V2 Framework, Hummingbot API, and now the new MCP Server capabilities!</p><div><hr></div><p></p><h2>&#128127; Security Reminder</h2><p>Stay vigilant against scammers:</p><ul><li><p>We never DM users first</p></li><li><p>We never sell or airdrop HBOT tokens</p></li><li><p>The only way to get HBOT is by completing bounties</p></li><li><p>Report suspicious activity in our #scam-reports Discord channel</p></li></ul><p>Happy trading! &#129302;</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://hummingbot.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Hummingbot Newsletter! Subscribe for free to get notified of each monthly release.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Hummingbot Newsletter - July 2025]]></title><description><![CDATA[&#128640; Shipped Hummingbot v2.7 | &#128268; Introducing Hummingbot API | &#129504; New Headless Mode | &#128166; XRPLiquid Beta Crosses $4M Volume | &#127891; Botcamp Cohort 12 Starting Soon]]></description><link>https://hummingbot.substack.com/p/hummingbot-newsletter-july-2025</link><guid isPermaLink="false">https://hummingbot.substack.com/p/hummingbot-newsletter-july-2025</guid><dc:creator><![CDATA[Hummingbot Foundation]]></dc:creator><pubDate>Thu, 17 Jul 2025 18:00:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!8UzQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cca44f5-a837-4c83-ad60-3da73462a346_1408x838.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><h3>&#128640; Hummingbot v2.7.0 is Here!</h3><p>GM to all the &#129302; Hummingbot users around the &#127758; globe!</p><p>We're excited to announce the release of Hummingbot v2.7.0, featuring major architectural improvements and new capabilities:</p><h4>&#128268; Hummingbot API (formerly backend-api)</h4><p>The biggest update in v2.7.0 is the complete revamp of our API infrastructure. The <code>backend-api</code> has been renamed to <code>hummingbot-api</code> with significant improvements:</p><ul><li><p><strong>&#9881;&#65039; Production-Ready Architecture</strong>: Standardized API for managing bots, executing trades, and monitoring multi-exchange portfolios</p></li><li><p><strong>&#128260; Expanded Trading Capabilities</strong>: Direct trading, portfolio rebalancing, and account management&#8212;all via API</p></li><li><p><strong>&#129302; AI-Ready Design</strong>: Built for agentic trading workflows and seamless integration with LLMs like Claude</p></li><li><p><strong>&#128202; Comprehensive Bot Orchestration</strong>: Deploy and manage multiple trading instances through a unified interface</p></li><li><p><strong>&#129520; Modern Python Client</strong>: Asynchronous API client available on PyPI for easy integration</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8UzQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cca44f5-a837-4c83-ad60-3da73462a346_1408x838.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8UzQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cca44f5-a837-4c83-ad60-3da73462a346_1408x838.png 424w, https://substackcdn.com/image/fetch/$s_!8UzQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cca44f5-a837-4c83-ad60-3da73462a346_1408x838.png 848w, https://substackcdn.com/image/fetch/$s_!8UzQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cca44f5-a837-4c83-ad60-3da73462a346_1408x838.png 1272w, https://substackcdn.com/image/fetch/$s_!8UzQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cca44f5-a837-4c83-ad60-3da73462a346_1408x838.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8UzQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cca44f5-a837-4c83-ad60-3da73462a346_1408x838.png" width="1408" height="838" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9cca44f5-a837-4c83-ad60-3da73462a346_1408x838.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:838,&quot;width&quot;:1408,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:111926,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://hummingbot.substack.com/i/168574924?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cca44f5-a837-4c83-ad60-3da73462a346_1408x838.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8UzQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cca44f5-a837-4c83-ad60-3da73462a346_1408x838.png 424w, https://substackcdn.com/image/fetch/$s_!8UzQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cca44f5-a837-4c83-ad60-3da73462a346_1408x838.png 848w, https://substackcdn.com/image/fetch/$s_!8UzQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cca44f5-a837-4c83-ad60-3da73462a346_1408x838.png 1272w, https://substackcdn.com/image/fetch/$s_!8UzQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cca44f5-a837-4c83-ad60-3da73462a346_1408x838.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The new architecture uses FastAPI server, PostgreSQL database, and EMQX message broker to provide a robust foundation for building custom trading applications, dashboards, and AI-powered trading workflows.</p><h4>&#129504; Headless Mode</h4><p>Run Hummingbot without the graphical interface, reducing memory usage by up to 40%. Perfect for VPS deployments and resource-constrained environments:</p><pre><code><code>./bin/hummingbot_quickstart --headless -p PASSWORD -f STRATEGY_CONFIG_FILE
</code></code></pre><h4>&#128295; Enhanced Stability</h4><ul><li><p><strong>XRPL Connector Fixes</strong>: Resolved memory leak issues in WebSocket connections</p></li><li><p><strong>Memory Optimization</strong>: Improved cleanup of asynchronous tasks across the codebase</p></li><li><p><strong>Gateway Improvements</strong>: Better error handling and gas management for Uniswap and Jupiter connectors</p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://hummingbot.org/release-notes/2.7.0/&quot;,&quot;text&quot;:&quot;See Release Notes&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://hummingbot.org/release-notes/2.7.0/"><span>See Release Notes</span></a></p><p></p></li></ul><div><hr></div><h3>&#128166; XRPLiquid Crosses $4M During Beta</h3><p>XRPLiquid, a third-party rewards program operated by Botcamp Inc., has crossed <strong>$4M in total volume</strong> with <strong>1,250 XRP distributed</strong> to market makers across 6 active trading pairs.</p><p>&#127909; Watch the launch presentation at XRPL Apex:</p><div id="youtube2-2cxhqyY_5Y4" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;2cxhqyY_5Y4&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/2cxhqyY_5Y4?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>The current pool is <strong>200 XRP</strong> shared among participating market makers each week, and will increase after the beta program ends.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LuVO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84343e5a-033c-42a8-86a7-0d5d46d7fd03_2116x1540.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LuVO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84343e5a-033c-42a8-86a7-0d5d46d7fd03_2116x1540.png 424w, https://substackcdn.com/image/fetch/$s_!LuVO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84343e5a-033c-42a8-86a7-0d5d46d7fd03_2116x1540.png 848w, https://substackcdn.com/image/fetch/$s_!LuVO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84343e5a-033c-42a8-86a7-0d5d46d7fd03_2116x1540.png 1272w, https://substackcdn.com/image/fetch/$s_!LuVO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84343e5a-033c-42a8-86a7-0d5d46d7fd03_2116x1540.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LuVO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84343e5a-033c-42a8-86a7-0d5d46d7fd03_2116x1540.png" width="1456" height="1060" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/84343e5a-033c-42a8-86a7-0d5d46d7fd03_2116x1540.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1060,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:401916,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://hummingbot.substack.com/i/168574924?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84343e5a-033c-42a8-86a7-0d5d46d7fd03_2116x1540.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!LuVO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84343e5a-033c-42a8-86a7-0d5d46d7fd03_2116x1540.png 424w, https://substackcdn.com/image/fetch/$s_!LuVO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84343e5a-033c-42a8-86a7-0d5d46d7fd03_2116x1540.png 848w, https://substackcdn.com/image/fetch/$s_!LuVO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84343e5a-033c-42a8-86a7-0d5d46d7fd03_2116x1540.png 1272w, https://substackcdn.com/image/fetch/$s_!LuVO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84343e5a-033c-42a8-86a7-0d5d46d7fd03_2116x1540.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Now, you can earn rewards in all 6 available markets via AMM trading using the XRPLiquid app, or by connecting your Hummingbot to XRPL for automated market making.</p><p>Register with your XRPL wallet and start earning at <a href="https://xrpliquid.com/">xrpliquid.com</a>!</p><p></p><div><hr></div><h2>&#127891; Botcamp Cohort 12 Starting Soon</h2><p>Botcamp Cohort 12 is launching in September! This intensive 4-week program teaches you to build algorithmic trading strategies using Hummingbot's V2 Framework <strong>and the new Hummingbot API!</strong></p><h3>Program Highlights:</h3><ul><li><p><strong>Duration</strong>: 4-week intensive bootcamp starting September 9, 2025</p></li><li><p><strong>Format</strong>: 12+ live online sessions with lifetime recording access</p></li><li><p><strong>Instruction</strong>: Direct teaching from Hummingbot co-founders Mike &amp; Fede</p></li><li><p><strong>Certification</strong>: Official certification upon completion</p></li><li><p><strong>Demo Day</strong>: Present your strategy to the community</p></li></ul><h3>&#9200; Early Bird Pricing Ends August 1</h3><p>Secure your spot at the early bird rate before the deadline. Limited spots available!</p><p>&#128279; <strong>Learn more and register</strong>: <a href="http://botcamp.xyz/cohorts">botcamp.xyz/cohorts</a></p><p></p><div><hr></div><h2>&#127909; Hummingbot Live: Gateway Series</h2><p>Our Gateway series showcases ongoing development work for the upcoming v2.8 release, with technical deep-dives into new architecture and capabilities:</p><h3>Recent Episodes and Upcoming Streams:</h3><ul><li><p><strong>Published:</strong> <strong><a href="https://www.youtube.com/watch?v=aZsrNEBOVI0">Gateway v2.8 Installation and Setup</a></strong></p><div id="youtube2-aZsrNEBOVI0" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;aZsrNEBOVI0&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/aZsrNEBOVI0?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div></li><li><p><strong>Livestreaming July 18</strong>: <strong><a href="https://www.youtube.com/watch?v=3cEDITKbLEc">Gateway v2.8 Architecture Overview</a></strong> - Introduction to the standardized API design</p></li><li><p><strong>Livestreaming July 25</strong>: <strong>Managing LP Positions with Gateway v2.8</strong> - Upcoming episode on liquidity management features</p></li></ul><p>These sessions provide insights into active development work and upcoming improvements to Gateway's DEX integration capabilities. Each episode covers work-in-progress features that will be included in the v2.8 release in August.</p><p></p><div><hr></div><h3>&#128127; Security Reminder</h3><p>We've noticed increased scammer activity, particularly around fake HBOT token sales. Please remember:</p><ul><li><p>We never DM users first</p></li><li><p>We never sell or airdrop HBOT tokens</p></li><li><p>The only way to get HBOT is by completing bounties</p></li><li><p>Report suspicious activity in our #scam-reports Discord channel</p></li></ul><p>Happy trading! &#129302;</p><p>Thanks for reading the Hummingbot Newsletter! Subscribe for free to get notified of each monthly release.</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://hummingbot.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Hummingbot Newsletter! Subscribe for free to get notified of each monthly release.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>