<?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"><channel><title><![CDATA[DeskBot Blog]]></title><description><![CDATA[DeskBot Blog]]></description><link>https://deskbotstore.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Sat, 07 Nov 2026 11:44:29 GMT</lastBuildDate><atom:link href="https://deskbotstore.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Kalshi Position Sizing: The Kelly Criterion for Prediction Market Contracts]]></title><description><![CDATA[Originally published on the DeskBot blog. Most traders spend their time on the question "should I take this trade?" and very little on the question that…]]></description><link>https://deskbotstore.hashnode.dev/kalshi-position-sizing-the-kelly-criterion-for-prediction-market-contracts</link><guid isPermaLink="true">https://deskbotstore.hashnode.dev/kalshi-position-sizing-the-kelly-criterion-for-prediction-market-contracts</guid><category><![CDATA[algorithms]]></category><category><![CDATA[trading, ]]></category><category><![CDATA[finance]]></category><category><![CDATA[Math]]></category><category><![CDATA[Python]]></category><dc:creator><![CDATA[DeskBot]]></dc:creator><pubDate>Sun, 01 Nov 2026 06:19:17 GMT</pubDate><content:encoded><![CDATA[<p><em>Originally published on the <a href="https://deskbot.store/blogs/news/kalshi-position-sizing-kelly-criterion">DeskBot blog</a>.</em></p>
<p>Most traders spend their time on the question "should I take this trade?" and very little on the question that decides whether a good idea survives a bad week: "how big?" On Kalshi, where every contract pays $1 or nothing, position sizing has a clean bit of math behind it called the Kelly criterion. This guide shows the formula for Kalshi contracts, works through examples with fees included, and explains why almost everyone who uses it bets a fraction of what it says.</p>
<h2>Why sizing matters more on 15-minute markets</h2>
<p>On a 15-minute market a bot can face dozens of decisions a day. Even a setup with a real edge will hit losing streaks, and if each trade is too large a streak can shrink the account so far that it never recovers, even if the edge was real. Sizing is the rule that keeps a normal losing streak from turning into the end of the experiment. It works alongside a <a href="https://deskbot.store/blogs/news/kalshi-bot-daily-loss-limit">daily loss limit</a>, not instead of one.</p>
<h2>The Kelly formula for a Kalshi contract</h2>
<p>A Kalshi contract is a simple binary bet. If you buy one contract at price <strong>p</strong> (in dollars, so 70¢ is 0.70):</p>
<ul>
<li>If it settles in your favor you get $1, a profit of 1 − p.</li>
<li>If it doesn't, you lose what you paid, p.</li>
</ul>
<p>Call <strong>q</strong> your own estimate of the probability that the contract wins. The Kelly fraction, the share of your bankroll to put on this trade, is:</p>
<p><strong>Kelly fraction = (q − p) ÷ (1 − p)</strong></p>
<p>Two things fall out of this right away:</p>
<ul>
<li>If your estimate q is not above the price p, the answer is zero or negative. Kelly says don't trade. The price already reflects the market's probability, and you need to believe the true chance is higher, as explained in our <a href="https://deskbot.store/blogs/news/kalshi-odds-implied-probability-expected-value">implied probability and expected value guide</a>.</li>
<li>The size depends on the gap between your estimate and the price, not on how confident the price itself looks. An 85¢ contract you think is an 86% shot is a tiny edge, not a "safe" trade.</li>
</ul>
<h2>Worked examples (made-up numbers)</h2>
<p><strong>Example 1, a favorite.</strong> Price 70¢, your estimate 75%. Kelly = (0.75 − 0.70) ÷ 0.30 ≈ 16.7% of bankroll. That's a lot for one 15-minute trade, which is the first hint that full Kelly is aggressive.</p>
<p><strong>Example 2, a longshot.</strong> Price 20¢, your estimate 25%. Kelly = (0.25 − 0.20) ÷ 0.80 = 6.25% of bankroll. The same 5-point edge gives a smaller bet, because a longshot loses most of the time.</p>
<p>These numbers are illustrations only. They are not results and not a recommendation.</p>
<h2>Put fees in before you size</h2>
<p>Kalshi charges a trading fee on fills, so your real cost per contract is the price plus the fee. Kalshi's general taker fee is based on 0.07 × contracts × price × (1 − price), rounded up to the cent; check the current fee schedule, since rates and rounding can change. Our <a href="https://deskbot.store/blogs/news/kalshi-fees-explained">Kalshi fees guide</a> walks through it.</p>
<p>Back to Example 1. At 70¢ the fee works out to about 1.5¢ per contract, so the effective cost is about 71.5¢. Kelly becomes (0.75 − 0.715) ÷ 0.285 ≈ 12.3%. A fee of one and a half cents cut the suggested size by about a quarter. On thin edges, fees can take the answer all the way to zero. The <a href="https://deskbot.store/blogs/news/kalshi-fees-break-even-win-rate">break-even win-rate table</a> shows how quickly that happens at high prices.</p>
<h2>The catch: your probability estimate is a guess</h2>
<p>Kelly is only as good as q. If you think a contract is a 75% shot and it's really 70%, Example 1 has no edge at all, and after fees it loses money on average. Full Kelly on an overestimated edge is one of the fastest ways to shrink an account. That's why most traders who use Kelly use a fraction of it:</p>
<ul>
<li><strong>Half Kelly</strong> gives up a little long-run growth in exchange for much smaller swings.</li>
<li><strong>Quarter Kelly</strong> or less is common when the probability estimate comes from a model that hasn't been tested on much live data.</li>
<li><strong>A hard cap</strong> per trade, for example a fixed maximum number of contracts, sits on top of whatever the formula says.</li>
</ul>
<p>If you don't have a tested way to estimate q at all, Kelly can't help you yet. A small fixed size while you collect data is the honest choice. Our guide on <a href="https://deskbot.store/blogs/news/how-to-backtest-kalshi-trading-bot">how to backtest a Kalshi bot</a> covers how to check an estimate before trusting it.</p>
<h2>Practical rules for a bot</h2>
<ol>
<li><strong>Size from the current bankroll,</strong> not the starting one, so position size shrinks after losses.</li>
<li><strong>Use the fee-adjusted price</strong> in the formula.</li>
<li><strong>Use a fraction of Kelly</strong> and a hard maximum contracts per trade.</li>
<li><strong>Count open positions.</strong> If several 15-minute markets are open at once, they share one bankroll, and crypto markets often move together.</li>
<li><strong>Skip trades where Kelly is zero or tiny.</strong> A trade that only qualifies at full Kelly with optimistic inputs usually isn't worth taking. See <a href="https://deskbot.store/blogs/news/when-to-skip-a-kalshi-trade">when to skip a Kalshi trade</a>.</li>
</ol>
<h2>How DeskBot handles sizing</h2>
<p><strong>DeskBot for Kalshi</strong> is a desktop app for Windows and Intel Mac that trades Kalshi's 15-minute markets on your own account through your own API key. You set the size per trade, a maximum price per contract and a daily loss limit, and it starts in demo mode so you can watch your settings work before going live. Every trade and every skip is logged with a reason. The current offer is <a href="https://deskbot.store/products/deskbot-kalshi-bot?selling_plan=8219295972&amp;utm_source=hashnode&amp;utm_medium=crosspost&amp;utm_campaign=dollar1&amp;utm_content=kalshi-position-sizing-kelly-criterion">first month $1, then $19.99/month, cancel anytime</a>. It does not guarantee profits or win rates.</p>
<h2>FAQ</h2>
<h3>What is the Kelly criterion on Kalshi?</h3>
<p>It's a formula for how much of your bankroll to put on a trade. For a contract bought at price p that you think wins with probability q, the Kelly fraction is (q − p) ÷ (1 − p).</p>
<h3>Should I use full Kelly?</h3>
<p>Most traders don't. Full Kelly assumes your probability estimate is exactly right. Half or quarter Kelly, plus a hard cap per trade, is far more forgiving when the estimate is off.</p>
<h3>Do fees change the Kelly size?</h3>
<p>Yes. Use the price plus the fee as your cost. On small edges the fee can cut the suggested size a lot, or remove the edge entirely.</p>
<h3>Does Kelly sizing guarantee growth?</h3>
<p>No. It only maximizes long-run growth if your probability estimates are accurate. With wrong estimates it can lose money, and even with a real edge you can lose money over many trades.</p>
<h3>Is DeskBot affiliated with Kalshi or Polymarket?</h3>
<p>No. DeskBot is independent software that uses the public APIs on the customer's own account.</p>
<h2>Try DeskBot</h2>
<p>DeskBot for Kalshi is a desktop app for Windows and Intel-based Macs. It trades Kalshi's 15-minute crypto markets on your own Kalshi account with your own API key. You set the markets, the size and a daily loss limit, start in paper mode, and switch markets to live when you choose. The first month is $1, then $19.99/month; cancel anytime.</p>
<p><a href="https://deskbot.store/products/deskbot-kalshi-bot?selling_plan=8219295972&amp;utm_source=hashnode&amp;utm_medium=crosspost&amp;utm_campaign=dollar1&amp;utm_content=kalshi-position-sizing-kelly-criterion"><strong>Try DeskBot for $1 for the first month →</strong></a></p>
<p>Want the short version first? Read the <a href="https://deskbot.store/pages/kalshi-bot-facts">DeskBot facts page</a> (price, setup, limits) or the <a href="https://deskbot.store/blogs/news/kalshi-trading-bot-comparison">Kalshi trading bot comparison</a>.</p>
<p><em>Risk: Trading can lose money. Nothing here guarantees profits, returns, win rates or income. Past results don't guarantee future results, and the example numbers in this article are illustrations, not results. This article is general education, not legal, tax or investment advice. Not affiliated with Kalshi or Polymarket. Fees, rules and market schedules change, so check Kalshi's current documents before you rely on any detail.</em></p>
]]></content:encoded></item><item><title><![CDATA[Why I built DeskBot as local Kalshi desk automation (and a quick Capital vote ask)]]></title><description><![CDATA[I'm Joshua, solo maker of DeskBot Multi15 — a Mac/Windows desktop app that automates Kalshi desk workflows locally, using the trader's own API key. Keys…]]></description><link>https://deskbotstore.hashnode.dev/why-i-built-deskbot-as-local-kalshi-desk-automation-and-a-quick-capital-vote-ask</link><guid isPermaLink="true">https://deskbotstore.hashnode.dev/why-i-built-deskbot-as-local-kalshi-desk-automation-and-a-quick-capital-vote-ask</guid><dc:creator><![CDATA[DeskBot]]></dc:creator><pubDate>Sat, 31 Oct 2026 16:36:09 GMT</pubDate><content:encoded><![CDATA[<p>I'm Joshua, solo maker of DeskBot Multi15 — a Mac/Windows desktop app that automates Kalshi desk workflows <strong>locally</strong>, using the trader's own API key. Keys stay on your machine.</p>
<h2>What it is</h2>
<ul>
<li>Local automation for Kalshi desk workflows (not a hosted black box)</li>
<li>Your own API key</li>
<li>$1 first month, then $19.99/mo (not a free trial)</li>
<li>Store download is Multi15</li>
</ul>
<h2>Why local</h2>
<p>Prediction-market tooling often wants your keys in the cloud. I wanted the opposite: run on your Mac/Windows, keep credentials local, and stay honest about risk.</p>
<h2>Capital this week</h2>
<p>DeskBot is in this week's <a href="https://aitoolscapital.com/the-capital?utm_source=capital_share&amp;utm_medium=outreach&amp;utm_campaign=week_2026-10-26&amp;utm_content=deskbot">AI Tools Capital</a> vote (closes Sunday morning ET). If the local-first angle resonates, an upvote helps a solo maker a lot.</p>
<p>Also on Dev.to: <a href="https://dev.to/deskbot_store/why-i-built-deskbot-as-local-kalshi-desk-automation-and-a-quick-capital-vote-ask-5453">https://dev.to/deskbot_store/why-i-built-deskbot-as-local-kalshi-desk-automation-and-a-quick-capital-vote-ask-5453</a></p>
<p>Product: <a href="https://deskbot.store/?utm_source=hashnode&amp;utm_medium=community&amp;utm_campaign=get-deskbot">deskbot.store</a></p>
<p><strong>Trading involves full risk of loss. Not affiliated with Kalshi.</strong></p>
]]></content:encoded></item><item><title><![CDATA[Kalshi Odds, Implied Probability and Fees: The Expected-Value Math]]></title><description><![CDATA[Originally published on the DeskBot blog. A Kalshi price is a probability written in cents. A Yes contract at 70¢ means the market, at that moment, is…]]></description><link>https://deskbotstore.hashnode.dev/kalshi-odds-implied-probability-expected-value</link><guid isPermaLink="true">https://deskbotstore.hashnode.dev/kalshi-odds-implied-probability-expected-value</guid><category><![CDATA[trading, ]]></category><category><![CDATA[finance]]></category><category><![CDATA[Math]]></category><category><![CDATA[Python]]></category><dc:creator><![CDATA[DeskBot]]></dc:creator><pubDate>Sat, 31 Oct 2026 08:23:25 GMT</pubDate><content:encoded><![CDATA[<p><em>Originally published on the <a href="https://deskbot.store/blogs/news/kalshi-odds-implied-probability-expected-value">DeskBot blog</a>.</em></p>
<p>A Kalshi price is a probability written in cents. A Yes contract at 70¢ means the market, at that moment, is pricing the Yes outcome at roughly a 70% chance. That one idea explains how Kalshi "odds" work, how to compare a price with your own estimate, and why fees decide whether a trade is worth anything at all. This guide works through the math with real numbers from Kalshi's fee schedule: implied probability, the Yes/No relationship, the spread, the fee, break-even win rate and expected value. It explains the mechanics. It does not tell you what to trade.</p>
<p><strong>DeskBot for Kalshi</strong> runs your own rules on Kalshi's 15-minute markets, with your own account and API key. <strong><a href="https://deskbot.store/products/deskbot-kalshi-bot?selling_plan=8219295972&amp;utm_source=hashnode&amp;utm_medium=crosspost&amp;utm_campaign=dollar1&amp;utm_content=kalshi-odds-implied-probability-expected-value-top">Try it for $1</a></strong>: first month $1, then $19.99/month, cancel anytime. Card required. Trading can lose money; nothing guarantees profits.</p>
<h2>Short answer</h2>
<p>Every Kalshi binary contract pays <strong>$1</strong> if it settles in your favor and <strong>$0</strong> if it does not. So a price of <em>P</em> dollars is the market's implied probability of that outcome. A Yes price of 70¢ implies about 70% for Yes and about 30% for No. To profit on average you need your real chance of winning to be higher than the price <em>plus</em> the fee. With Kalshi's taker fee at a 70¢ price, the break-even is about <strong>71.5%</strong>, not 70%. Expected value per contract is your probability minus the price minus the fee. If you can't honestly say your probability beats that number, the trade has negative expected value. Trading can lose money.</p>
<h2>Why a Kalshi price is a probability</h2>
<p>Kalshi's help center describes the price as directly tied to the market's perceived probability of the event: when the perceived chance of Yes rises, the Yes price rises and the No price falls. The reason is the $1 payout. If a contract pays $1 when an event happens, and the event happens 70% of the time, then on average the contract is worth $0.70. A price far from that would invite someone to trade against it until it moved back.</p>
<p>So you can read any Kalshi price this way:</p>
<ul>
<li>Yes at 20¢ → the market implies about a 20% chance of Yes.</li>
<li>Yes at 50¢ → about a coin flip.</li>
<li>Yes at 93¢ → about 93%, a strong favorite, and only 7¢ of upside per contract.</li>
</ul>
<p>"About" matters. The price is a market estimate, set by whoever is trading right now, and it is not a guarantee of anything. Prices also include the spread and the effect of fees, covered below.</p>
<h2>Yes plus No equals $1</h2>
<p>Kalshi matches a Yes buyer with a No buyer, and its help center states that their combined investment must equal $1. If Yes trades at 70¢, the matching No side is 30¢. One of the two will be paid $1 at settlement; the other gets $0. This is why every Kalshi market has two mirror-image prices, and why buying No at 30¢ is economically the same position as selling Yes at 70¢.</p>
<p>It also means "odds" on Kalshi don't need converting. A sportsbook line of -233 or a decimal price of 1.43 both mean roughly 70% before the bookmaker's margin. On Kalshi the 70¢ already is the probability, and the platform's cut shows up as an explicit trading fee instead of being baked into the odds.</p>
<h2>Bid, ask and the spread: which price is "the" probability?</h2>
<p>A live market has two prices on each side. The <strong>ask</strong> is the lowest price someone will sell at; the <strong>bid</strong> is the highest price someone will buy at. If Yes shows a bid of 68¢ and an ask of 71¢, the market's probability is somewhere around the middle, about 69.5%. But you don't trade at the middle:</p>
<ul>
<li>Buying Yes immediately costs the ask, 71¢.</li>
<li>Selling Yes immediately gets the bid, 68¢.</li>
</ul>
<p>That 3¢ gap is a real cost of trading immediately, on top of the fee. Our guide on <a href="https://deskbot.store/blogs/news/how-to-read-kalshi-order-book">how to read the Kalshi order book</a> shows why Kalshi's book lists bids on both sides and how the ask is implied from the other side's bids. For probability math, use the price you will actually pay, not the headline number.</p>
<h2>The fee: Kalshi's formula with worked numbers</h2>
<p>Kalshi's fee schedule (the July 2026 update) gives the general trading fee as:</p>
<p><strong>fee = round up(M × 0.07 × C × P × (1 − P))</strong></p>
<p>where C is the number of contracts, P is the price in dollars, and M is a multiplier set in the schedule. The schedule says the rounding brings fee plus position cost up to a centicent (a hundredth of a cent). For resting maker orders, where a maker fee applies, the coefficient is 0.0175 instead of 0.07. The schedule also says there is <strong>no settlement fee</strong>: holding to the end costs nothing extra.</p>
<p>Because of the P × (1 − P) term, the fee is largest at 50¢ and shrinks toward the extremes. Here is the taker fee assuming a multiplier of 1 (check the schedule for the market you trade):</p>
<table>
<thead>
<tr>
<th>Price</th>
<th>Fee per contract</th>
<th>Fee on 100 contracts</th>
<th>Fee as % of price</th>
</tr>
</thead>
<tbody><tr>
<td>10¢</td>
<td>$0.0063</td>
<td>$0.63</td>
<td>6.3%</td>
</tr>
<tr>
<td>30¢</td>
<td>$0.0147</td>
<td>$1.47</td>
<td>4.9%</td>
</tr>
<tr>
<td>50¢</td>
<td>$0.0175</td>
<td>$1.75</td>
<td>3.5%</td>
</tr>
<tr>
<td>70¢</td>
<td>$0.0147</td>
<td>$1.47</td>
<td>2.1%</td>
</tr>
<tr>
<td>90¢</td>
<td>$0.0063</td>
<td>$0.63</td>
<td>0.7%</td>
</tr>
</tbody></table>
<p>In absolute dollars the fee peaks at 50¢. As a share of what you put up, it is heaviest on cheap contracts. Our <a href="https://deskbot.store/blogs/news/kalshi-fees-explained">Kalshi fees explained</a> and <a href="https://deskbot.store/blogs/news/kalshi-maker-vs-taker-fees">maker vs taker fees</a> guides cover the details.</p>
<h2>Break-even win rate: the number that matters</h2>
<p>If you buy one contract at price P and pay fee f, you spend P + f. You get $1 back only when you win. To break even on average, your win rate has to equal what you spend:</p>
<p><strong>break-even win rate = P + f</strong> (with both in dollars per contract)</p>
<table>
<thead>
<tr>
<th>Buy price</th>
<th>Taker break-even</th>
<th>Maker break-even (0.0175)</th>
</tr>
</thead>
<tbody><tr>
<td>30¢</td>
<td>31.47%</td>
<td>30.37%</td>
</tr>
<tr>
<td>50¢</td>
<td>51.75%</td>
<td>50.44%</td>
</tr>
<tr>
<td>70¢</td>
<td>71.47%</td>
<td>70.37%</td>
</tr>
<tr>
<td>90¢</td>
<td>90.63%</td>
<td>90.16%</td>
</tr>
</tbody></table>
<p>Read the 70¢ row this way: if the market is right that Yes is 70%, buying Yes at 70¢ as a taker loses about 1.5¢ per contract on average. You are only ahead if your real chance of winning is above 71.47%. If you pay the ask instead of the midpoint, add the half-spread too. With a 68¢/71¢ market and a midpoint of 69.5%, buying at 71¢ needs about 72.4% to break even, three points above what the market implies.</p>
<p>This is the core reason most "the price is roughly right" trades lose money after costs. When your estimate agrees with the market, you pay the fee and the spread and get nothing for it. Our <a href="https://deskbot.store/blogs/news/kalshi-fees-break-even-win-rate">fees and break-even win rate</a> article goes deeper on this.</p>
<h2>Expected value per contract</h2>
<p>Expected value (EV) is what a trade earns on average if you could repeat it many times:</p>
<p><strong>EV per contract = p − P − f</strong></p>
<p>where p is your honest probability of winning. A worked example: Yes asks 70¢, you estimate 75%, and you buy 100 contracts as a taker.</p>
<ul>
<li>Cost: 100 × $0.70 = $70.00, plus a $1.47 fee, total $71.47.</li>
<li>If Yes wins: you receive $100.00, a $28.53 gain.</li>
<li>If Yes loses: you receive $0, a $71.47 loss.</li>
<li>EV: 0.75 × $28.53 − 0.25 × $71.47 = $21.40 − $17.87 = about <strong>+$3.53</strong>, or 3.53¢ per contract.</li>
</ul>
<p>Two things stand out. First, the edge is small compared with what's at risk: you put up $71.47 to earn $3.53 on average, and one wrong outcome costs twenty times that. Second, the whole result rests on the 75%. If the true chance is 71%, the same trade has an EV of about −$0.47. If it's 65%, about −$6.47. A probability estimate that is a few points too confident turns a positive trade into a losing one. Positive EV also says nothing about any single trade: a 75% outcome still loses one time in four.</p>
<h2>Buying No is the same math from the other side</h2>
<p>If Yes asks 70¢, the No side costs about 30¢ (Yes plus No is $1, before the spread). Your probability for No is 1 minus your probability for Yes. If you think Yes is only 60%, then No is 40% to you, and buying No at 30¢ as a taker has an EV of 0.40 − 0.30 − 0.0147 = about +8.5¢ per contract. The fee is the same at 30¢ as at 70¢, because P × (1 − P) is symmetric. Pick whichever side your estimate favors after costs, and price it with the side's own ask.</p>
<h2>Selling before settlement</h2>
<p>You don't have to hold to the end. Selling at the bid locks in about the bid minus a second fee. Holding is worth your probability, with no settlement fee. So the same comparison applies: if your current probability is above the bid minus the sell fee, holding has the higher expected value; if it's below, selling does. What you originally paid doesn't change that. Our guide to <a href="https://deskbot.store/blogs/news/sell-kalshi-contract-before-settlement">selling a Kalshi contract before settlement</a> works through it.</p>
<h2>How this applies to 15-minute crypto markets</h2>
<p>Kalshi's 15-minute crypto markets ask whether a price index will be above a level at the close of a short window. The settlement source and close time are fixed in the market rules (see <a href="https://deskbot.store/blogs/news/how-kalshi-markets-settle">how Kalshi markets settle</a> and <a href="https://deskbot.store/blogs/news/cf-benchmarks-brti-explained-kalshi">CF Benchmarks BRTI explained</a>). The price math above is identical. What changes is speed: prices move fast near the close, the spread can widen, and many favorites trade at 85¢ to 95¢, where the upside per contract is small and a single loss erases many wins. At a 93¢ buy, for example, the taker break-even is about 93.5%. Being right "most of the time" isn't enough at those prices. You need to be right more often than the price already assumes. Our <a href="https://deskbot.store/blogs/news/kalshi-15-minute-markets-explained">15-minute markets explained</a> guide and <a href="https://deskbot.store/blogs/news/do-kalshi-15-minute-crypto-bots-work">do Kalshi 15-minute crypto bots work?</a> cover the specifics.</p>
<h2>Where automation fits</h2>
<p>None of this math needs software. It needs discipline: compute the break-even before every order, use the price you'll actually pay, and skip trades where your edge is smaller than the costs. Software helps with consistency. It can apply the same fee and break-even check on every market, every window, without getting tired or chasing. It can't make an estimate more accurate than the data and rules behind it, and it pays the same fees and spread a person does. If you automate, keep a written record of win rate against break-even, not just profit and loss. See <a href="https://deskbot.store/blogs/news/how-to-automate-kalshi-trades-safely">how to automate Kalshi trades safely</a> and <a href="https://deskbot.store/blogs/news/when-to-skip-a-kalshi-trade">when to skip a Kalshi trade</a>.</p>
<p>DeskBot for Kalshi is desktop software that runs rules-based trading on Kalshi through your own account and an API key you create on kalshi.com. <strong><a href="https://deskbot.store/products/deskbot-kalshi-bot?selling_plan=8219295972&amp;utm_source=hashnode&amp;utm_medium=crosspost&amp;utm_campaign=dollar1&amp;utm_content=kalshi-odds-implied-probability-expected-value">Try DeskBot for Kalshi for $1</a></strong>: first month $1, then $19.99/month, cancel anytime. A card is required, and the plan renews at $19.99/month unless you cancel. Prefer to look first? Read <a href="https://deskbot.store/blogs/news/kalshi-paper-trading-vs-live">paper trading vs live on Kalshi</a> or the <a href="https://deskbot.store/blogs/news/kalshi-trading-bot-windows-vs-mac-setup">Windows and Mac setup guide</a>.</p>
<h2>FAQ</h2>
<h3>What do Kalshi prices mean?</h3>
<p>A price is the cost of a contract that pays $1 if its outcome happens and $0 if it doesn't. So the price in cents reads as the market's implied probability: 70¢ means about a 70% chance.</p>
<h3>How do you convert Kalshi prices to odds?</h3>
<p>You don't need to. The price in dollars is the implied probability. To get decimal odds, divide 1 by the price: 70¢ is about 1.43. Kalshi's fee is charged separately, so add it to the price before comparing with a sportsbook line.</p>
<h3>Why do Yes and No add up to $1?</h3>
<p>Kalshi pairs a Yes buyer with a No buyer, and their combined stake equals the $1 that one of them will be paid at settlement. The bid-ask spread can make the two quoted asks add to slightly more than $1.</p>
<h3>What win rate do I need to break even on Kalshi?</h3>
<p>Your buy price plus the fee per contract. As a taker at 70¢ that is about 71.47%; at 50¢ it is about 51.75%; at 90¢ about 90.63%. Paying the ask instead of the midpoint raises it further.</p>
<h3>How do I calculate expected value on a Kalshi trade?</h3>
<p>EV per contract = your probability of winning − the price you pay − the fee. Multiply by the number of contracts. If the result is zero or negative, the trade loses money on average.</p>
<h3>Is the fee higher on cheap or expensive contracts?</h3>
<p>In dollars, the fee is highest at 50¢ and falls toward 1¢ and 99¢. As a percentage of the price, it is heaviest on cheap contracts.</p>
<h3>Is there a fee if I hold to settlement?</h3>
<p>No. Kalshi's fee schedule states there is no settlement fee. You pay a trading fee when you buy, and again only if you sell before the end.</p>
<h3>Is DeskBot affiliated with Kalshi?</h3>
<p>No. DeskBot is independent software and is not affiliated with, endorsed by, or sponsored by Kalshi or Polymarket.</p>
<p><em>Educational content, not financial advice. Trading event contracts can lose money. DeskBot does not guarantee profits, returns, win rates or income. DeskBot is independent software and is not affiliated with, endorsed by, or sponsored by Kalshi. The fee formula, maker coefficient, rounding rule and the no-settlement-fee rule come from Kalshi's fee schedule (July 2026 update); the price-as-probability and Yes-plus-No-equals-$1 descriptions come from Kalshi's help center ("How are prices determined?"), both checked October 30, 2026. Fee tables assume a multiplier of 1. Check Kalshi's current documents before trading.</em></p>
]]></content:encoded></item><item><title><![CDATA[How to Backtest a Kalshi Trading Bot (and Why Backtests Overstate Results)]]></title><description><![CDATA[Settled markets, fees, ask-side fills, forward tests and the five ways backtests lie]]></description><link>https://deskbotstore.hashnode.dev/how-to-backtest-a-kalshi-trading-bot-and-why-backtests-overstate-results</link><guid isPermaLink="true">https://deskbotstore.hashnode.dev/how-to-backtest-a-kalshi-trading-bot-and-why-backtests-overstate-results</guid><category><![CDATA[Python]]></category><category><![CDATA[trading, ]]></category><category><![CDATA[algorithmic trading]]></category><category><![CDATA[Data Science]]></category><category><![CDATA[Tutorial]]></category><dc:creator><![CDATA[DeskBot]]></dc:creator><pubDate>Sat, 31 Oct 2026 02:25:41 GMT</pubDate><content:encoded><![CDATA[<p><em>Originally published on the</em> <a href="https://deskbot.store/blogs/news/how-to-backtest-kalshi-trading-bot"><em>DeskBot blog</em></a><em>.</em></p>
<p>A backtest replays your trading rules against markets that have already settled, so you can see how those rules would have behaved before you risk money. For Kalshi's short-dated markets, such as the 15-minute crypto series, a backtest is the cheapest way to find out whether an idea is worth paper trading at all. It is also the easiest place to fool yourself. This guide walks through how to build one honestly and where backtests usually overstate results.</p>
<p><strong>DeskBot for Kalshi</strong> runs your own rules on Kalshi's 15-minute markets, with your own account and API key. <a href="https://deskbot.store/products/deskbot-kalshi-bot?selling_plan=8219295972&amp;utm_source=hashnode&amp;utm_medium=crosspost&amp;utm_campaign=dollar1&amp;utm_content=how-to-backtest-kalshi-trading-bot-top"><strong>Try it for $1</strong></a>: first month $1, then $19.99/month, cancel anytime. Card required. Trading can lose money; nothing guarantees profits.</p>
<h2>1. Start with settled markets, not just prices</h2>
<p>Every Kalshi market ends with a result: Yes or No. A backtest needs three things for each market you test: the time it opened and closed, the prices that were actually available while it was open, and the final result. Kalshi's public API exposes settled markets and historical candlesticks, and our guide to the <a href="https://deskbot.store/blogs/news/kalshi-historical-data-api">Kalshi historical data API</a> covers the endpoints and cutoffs. Store everything you pull in a file or small database so every test runs on the same frozen data.</p>
<h2>2. Write the rules down before you look at results</h2>
<p>Decide the entry rule (for example, "buy the favored side when its ask is at or under my max price with at least 3 minutes left"), the size, and the exit or hold rule first. If you adjust the rules after every run until the numbers look good, you are fitting the past, not testing an idea. Keep a short log of every rule change and why you made it.</p>
<h2>3. Charge fees on every simulated fill</h2>
<p>Kalshi's trading fee depends on price and contract count, and it is largest near 50c. A strategy that looks slightly positive before fees can be negative after them. Apply the same fee formula to every simulated trade; our <a href="https://deskbot.store/blogs/news/kalshi-fees-explained">Kalshi fees explainer</a> and <a href="https://deskbot.store/blogs/news/kalshi-fees-break-even-win-rate">break-even win rate table</a> show the math.</p>
<h2>4. Use the ask you could have paid, not the last price</h2>
<p>The most common backtest mistake is assuming you bought at the last traded price or the midpoint. In live trading you buy at the ask, and the size available at that ask may be small. If your data only has candlesticks, assume you paid the worse side of the spread, and skip any market where the book was too thin for your size. Our guide on <a href="https://deskbot.store/blogs/news/how-to-read-kalshi-order-book">reading the Kalshi order book</a> explains why the No bid sets the Yes ask.</p>
<h2>5. Count losses at their full size</h2>
<p>High-priced favorites win often, but one loss can erase many wins. Buying at 90c makes about 10c per contract when right and loses 90c when wrong, so you need a win rate above roughly 90% plus fees just to break even. Report the worst losing streak and the largest single-day loss next to the win rate, not just the total.</p>
<h2>6. Split the data and test forward</h2>
<p>Build the rules on one stretch of dates, then run them unchanged on a later stretch you never looked at. If results fall apart on the second stretch, the edge was probably noise. After that, paper trade live for a while; our article on <a href="https://deskbot.store/blogs/news/kalshi-paper-trading-vs-live">paper trading vs live</a> covers why live fills still differ from paper.</p>
<h2>7. Log the trades you skipped</h2>
<p>A good bot explains why it stayed out of a market: price above the limit, too little time left, a stale order book, or a daily loss pause. Logging skips in the backtest lets you see whether a filter is protecting you or just removing good trades.</p>
<h2>Why backtests overstate results</h2>
<ul>
<li>Fills at prices that were never really available.</li>
<li>Rules tuned on the same data they are scored on.</li>
<li>Missing fees, or fees charged at the wrong price.</li>
<li>Ignoring periods when markets were paused or not listed.</li>
<li>Survivorship: only testing the coins or series that later became popular.</li>
</ul>
<h2>Where DeskBot fits</h2>
<p>DeskBot is a desktop app for Windows and Intel Mac that runs rule-based trading on Kalshi's 15-minute markets from your own account. Every setting in this guide is a visible control: max entry price, minimum time left, stale order book skip, daily loss pause, and a logged reason for every trade and every skip. It also includes combos and parlays, multi-account support and the S2 strategy, and it runs in paper mode until you switch it to live. Pricing is $1 for the first month, then $19.99/month, cancel anytime.</p>
<p><a href="https://deskbot.store/products/deskbot-kalshi-bot?selling_plan=8219295972&amp;utm_source=hashnode&amp;utm_medium=crosspost&amp;utm_campaign=dollar1&amp;utm_content=backtest-cta">Try DeskBot for $1: first month $1, then $19.99/mo, cancel anytime</a></p>
<p><em>Trading can lose money. Past results don't guarantee future results. DeskBot does not promise profits. Not financial advice. DeskBot is not affiliated with, endorsed by, or sponsored by Kalshi or Polymarket.</em></p>
]]></content:encoded></item></channel></rss>