<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Kobozu Research</title>
    <description>The latest articles on DEV Community by Kobozu Research (@kobozu-research).</description>
    <link>https://dev.to/kobozu-research</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4243746%2F8cdcbc33-c13e-42d0-ae0e-4b9362bebd33.png</url>
      <title>DEV Community: Kobozu Research</title>
      <link>https://dev.to/kobozu-research</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kobozu-research"/>
    <language>en</language>
    <item>
      <title>We Killed 16 Trading Rules Before Risking $3</title>
      <dc:creator>Kobozu Research</dc:creator>
      <pubDate>Sat, 14 Nov 2026 01:58:37 +0000</pubDate>
      <link>https://dev.to/kobozu-research/we-killed-16-trading-rules-before-risking-3-47ol</link>
      <guid>https://dev.to/kobozu-research/we-killed-16-trading-rules-before-risking-3-47ol</guid>
      <description>&lt;h2&gt;
  
  
  Part 1: The auditable agent fund — what we tested, what died, and the machine we built to say "no"
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Kobozu Research. This is the free first installment of a monthly operations record. Every number below comes from our own project files — backtests, pre-registrations, review documents, and a hash-chained ledger. Nothing is backtested fiction dressed as a track record, for a simple reason: there is no track record. We have not yet placed a single directional trade with real money. This article is about why — and why that is the most valuable thing we own.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The setup
&lt;/h3&gt;

&lt;p&gt;We run a small autonomous-agent fund experiment on Solana. The mandate, in one line: grow a bot wallet's funds through short-term trading, with a monthly ceiling of +10% and hard loss limits that outrank everything. The wallet is real. The capital is deliberately tiny — the point of the experiment is not the money, it is whether an agent operation can be run &lt;em&gt;auditably&lt;/em&gt;: every rule fixed in writing before it touches data, every rejection recorded, every real-money movement reconciled by someone other than the agent that made it.&lt;/p&gt;

&lt;p&gt;Seven rounds of structured deliberation between specialized roles (strategy, statistics review, execution, risk approval, audit) govern the project. A rule does not reach real money by being plausible. It reaches real money by surviving all of them.&lt;/p&gt;

&lt;p&gt;So far, none has.&lt;/p&gt;

&lt;h3&gt;
  
  
  The graveyard (abridged, with the actual numbers)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Breakout momentum.&lt;/strong&gt; A 1-hour breakout/momentum system, backtested over 180 days and 461 trades: win rate 33.8%, profit factor 0.752, expectancy &lt;strong&gt;−0.171R per trade&lt;/strong&gt;. Even before costs it was −0.003R — the signal itself had nothing. Six variants were also negative. Dead.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DEX arbitrage.&lt;/strong&gt; We measured it instead of assuming it. Best of 56 Jupiter round trips: &lt;strong&gt;+0.01%&lt;/strong&gt;. Best of 60 triangular routes: &lt;strong&gt;+0.027%&lt;/strong&gt;. Both are noise, and both are before competing with professional MEV infrastructure. Dead.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sell-climax reversal.&lt;/strong&gt; Our strongest candidate ever. On unused holdout data it still lost: net expectancy &lt;strong&gt;−0.0195R&lt;/strong&gt; across 127 trades. The gross edge (+0.078R) was smaller than the cost drag (0.098R per trade). It also failed on concentration — a handful of clusters carried the result. Dead, by the statistics reviewer's signature.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A second pre-registered family.&lt;/strong&gt; One member reached a validation point estimate of +0.056R at an assumed 0.4% cost. Our gate requires +0.15R &lt;em&gt;and&lt;/em&gt; non-negative expectancy at 1.5× measured cost. At 0.8% cost it went negative. Dead.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flow-imbalance follow-through (N1).&lt;/strong&gt; Pre-registered, then measured on development data: median follow-through &lt;strong&gt;−0.245%&lt;/strong&gt; against a hurdle of &lt;strong&gt;+1.095%&lt;/strong&gt;. The effect pointed the wrong way. Dead — and not replaced. Our exposure ledger forbids swapping out a failed candidate for a fresh one in the same slot; that rule exists precisely because "just try another" is how backtests become horoscopes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Liquidity-shock divergence (F1).&lt;/strong&gt; The divergence we needed to harvest turned out to be measurable for only 2 of 7 episodes, with a median around 0.12% against a hurdle near 0.91%. Not dead forever — but frozen behind a pre-registered revival condition that requires minute-level data we do not yet collect. The condition was written down &lt;em&gt;before&lt;/em&gt; anyone saw minute data, so nobody can quietly move it later.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beta-propagation lag (the last candidate standing, checked this week).&lt;/strong&gt; Pre-fixed definition, one qualifying market shock in 35 measurement intervals, median follow-through of &lt;strong&gt;0.0%&lt;/strong&gt;. Dead on arrival, honestly recorded.&lt;/p&gt;

&lt;p&gt;The count depends on how you tally variants, but by our ledger's conservative count: &lt;strong&gt;more than 16 rules tested, zero passed.&lt;/strong&gt; The one candidate still alive is a flow-imbalance rule (F3) whose evidence interval has not started yet — it is registered, frozen, and waiting for its data, not for our optimism. A full dress rehearsal of its screening procedure on development data returned a point estimate of −2.379R, which we publish here precisely because it proves nothing either way: development data is not evidence, and the real screen runs exactly once, on a frozen snapshot, or it does not run at all.&lt;/p&gt;

&lt;h3&gt;
  
  
  The machine that says "no"
&lt;/h3&gt;

&lt;p&gt;Killing rules is easy to fake after the fact. The part we actually built — and the part this series documents — is the machinery that makes the killing &lt;em&gt;checkable&lt;/em&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pre-registration with hashes.&lt;/strong&gt; Every candidate's definition, cost assumptions, and pass thresholds are written and hash-locked before its evidence window opens. The production screening code's hash is registered; the driver refuses to run if the file changes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;An append-only exposure ledger.&lt;/strong&gt; Candidates are numbered sequentially (we are at #20). Failures stay in the ledger forever. There is no delete key.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Separation of duties.&lt;/strong&gt; The role that proposes a rule never reviews it. Kill decisions require two signatures: statistics and risk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A measurement track, honestly labeled.&lt;/strong&gt; The only real-money activity approved so far is a &lt;em&gt;directionless&lt;/em&gt; measurement track: immediate round trips whose sole purpose is to measure real execution cost. Nine trips executed, total realized cost &lt;strong&gt;$0.078&lt;/strong&gt;, cumulative hard stop $3.00, independently audited mid-course with a balance discrepancy of exactly zero. Its results are contractually barred from ever being cited as strategy evidence.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HALT, and what happened when it fired.&lt;/strong&gt; The safety layer has halted the system twice since activation — once for our own accounting-model error (a wrapped-SOL rent treatment), once for a false positive in the reconciliation code itself. Both incidents were investigated, documented, and released by a different role than the one that wrote the code. Both reports are in our files, unedited.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A ratchet, not a hope.&lt;/strong&gt; The balance cap rises only at monthly resets, by a fixed formula, and only up to $200 automatically; beyond that, a human must explicitly approve. Loss limits: $3.00 for measurement, $3.00 maximum for any future one-shot pilot, $6.00 for the entire project. These numbers are small because the evidence is weak. That is the point.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What this series is, and is not
&lt;/h3&gt;

&lt;p&gt;This is not investment advice, and it is not a performance product. The fund has no performance. What it has is a complete, inspectable record of an agent operation refusing to lie to itself — the deliberations, the rejections, the incidents, the reconciliations.&lt;/p&gt;

&lt;p&gt;If you build agents that touch money, that record is a template you can steal.&lt;/p&gt;

&lt;p&gt;Questions and replies: &lt;a href="mailto:kobozu.research@outlook.com"&gt;kobozu.research@outlook.com&lt;/a&gt;, or in the comments. We read everything from people who build agents.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Part 2 will cover the two HALT incidents in full — including the false positive our own watchdog manufactured, and what it cost us in trust before it cost us nothing in money.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>solana</category>
      <category>trading</category>
    </item>
    <item>
      <title>The Round-Trip Cost Index — Sample Issue No. 1</title>
      <dc:creator>Kobozu Research</dc:creator>
      <pubDate>Sat, 14 Nov 2026 01:57:52 +0000</pubDate>
      <link>https://dev.to/kobozu-research/the-round-trip-cost-index-sample-issue-no-1-2i2h</link>
      <guid>https://dev.to/kobozu-research/the-round-trip-cost-index-sample-issue-no-1-2i2h</guid>
      <description>&lt;p&gt;&lt;em&gt;Kobozu Research — a free sample of a weekly index we are preparing to launch.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Every Solana trading bot makes the same silent assumption: that swapping is cheap. It is — for some tokens. For others, a single round trip (buy, then sell back into USDC) quietly deletes more than 2% of your position before your strategy has done anything at all.&lt;/p&gt;

&lt;p&gt;There is no standard public table for this. Price charts are everywhere; liquidity numbers are everywhere. What you pay to get in &lt;em&gt;and back out&lt;/em&gt; is not. So we measure it ourselves: every hour, for 11 liquid Solana tokens at three sizes ($100, $500, $1,000), we record the full round-trip cost implied by Jupiter quotes — slippage, price impact, and fees included — and we publish the time series.&lt;/p&gt;

&lt;p&gt;This sample issue is the complete table from our current measurement window: &lt;strong&gt;36 hourly snapshots, 2026-11-12 12:00 UTC to 2026-11-13 22:00 UTC, 1,180 completed round-trip measurements&lt;/strong&gt; (8 of 1,188 attempted legs failed and are excluded, not interpolated).&lt;/p&gt;

&lt;h3&gt;
  
  
  How to read these numbers
&lt;/h3&gt;

&lt;p&gt;Costs are percentages of the position size. The arithmetic is simply cost × size: a cost of 2.21% on a $1,000 position means the round trip itself costs about $22.10, before any strategy edge is applied.&lt;/p&gt;

&lt;p&gt;One honest disclosure, because it defines what this index is: &lt;strong&gt;these figures are quote-based.&lt;/strong&gt; They are computed from Jupiter quotes captured hourly, not from executed trades — with one exception, SOL, discussed below. A quote is not a fill. Treat these numbers as a lower bound on what a market-order round trip would cost, and as a comparative index across tokens, not as a promise of execution.&lt;/p&gt;

&lt;h3&gt;
  
  
  The table: median round-trip cost (%)
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Token&lt;/th&gt;
&lt;th&gt;$100&lt;/th&gt;
&lt;th&gt;$500&lt;/th&gt;
&lt;th&gt;$1,000&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;IO&lt;/td&gt;
&lt;td&gt;0.77&lt;/td&gt;
&lt;td&gt;1.31&lt;/td&gt;
&lt;td&gt;2.21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;W&lt;/td&gt;
&lt;td&gt;0.65&lt;/td&gt;
&lt;td&gt;0.89&lt;/td&gt;
&lt;td&gt;1.26&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JTO&lt;/td&gt;
&lt;td&gt;0.60&lt;/td&gt;
&lt;td&gt;0.69&lt;/td&gt;
&lt;td&gt;0.80&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RENDER&lt;/td&gt;
&lt;td&gt;0.49&lt;/td&gt;
&lt;td&gt;0.57&lt;/td&gt;
&lt;td&gt;0.64&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PYTH&lt;/td&gt;
&lt;td&gt;0.24&lt;/td&gt;
&lt;td&gt;0.54&lt;/td&gt;
&lt;td&gt;0.61&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WIF&lt;/td&gt;
&lt;td&gt;0.19&lt;/td&gt;
&lt;td&gt;0.49&lt;/td&gt;
&lt;td&gt;0.58&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ORCA&lt;/td&gt;
&lt;td&gt;0.25&lt;/td&gt;
&lt;td&gt;0.36&lt;/td&gt;
&lt;td&gt;0.41&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BONK&lt;/td&gt;
&lt;td&gt;0.05&lt;/td&gt;
&lt;td&gt;0.11&lt;/td&gt;
&lt;td&gt;0.21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RAY&lt;/td&gt;
&lt;td&gt;0.09&lt;/td&gt;
&lt;td&gt;0.12&lt;/td&gt;
&lt;td&gt;0.13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JUP&lt;/td&gt;
&lt;td&gt;0.02&lt;/td&gt;
&lt;td&gt;0.02&lt;/td&gt;
&lt;td&gt;0.03&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SOL&lt;/td&gt;
&lt;td&gt;−0.00&lt;/td&gt;
&lt;td&gt;−0.00&lt;/td&gt;
&lt;td&gt;−0.00&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Read that again: at $1,000, IO costs about &lt;strong&gt;100 times&lt;/strong&gt; what JUP or SOL costs for the same round trip. Both are "major Solana tokens." A strategy backtested on SOL and deployed on IO is not the same strategy.&lt;/p&gt;

&lt;h3&gt;
  
  
  The tail matters: p90 round-trip cost (%)
&lt;/h3&gt;

&lt;p&gt;Medians tell you the typical hour. Bots die in the bad hours. Here is the 90th percentile — the cost you should expect to pay or beat in roughly one hour out of ten.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Token&lt;/th&gt;
&lt;th&gt;$100&lt;/th&gt;
&lt;th&gt;$500&lt;/th&gt;
&lt;th&gt;$1,000&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;IO&lt;/td&gt;
&lt;td&gt;0.78&lt;/td&gt;
&lt;td&gt;1.63&lt;/td&gt;
&lt;td&gt;2.54&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;W&lt;/td&gt;
&lt;td&gt;0.68&lt;/td&gt;
&lt;td&gt;1.02&lt;/td&gt;
&lt;td&gt;1.44&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JTO&lt;/td&gt;
&lt;td&gt;0.62&lt;/td&gt;
&lt;td&gt;0.71&lt;/td&gt;
&lt;td&gt;0.82&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RENDER&lt;/td&gt;
&lt;td&gt;0.54&lt;/td&gt;
&lt;td&gt;0.59&lt;/td&gt;
&lt;td&gt;0.67&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PYTH&lt;/td&gt;
&lt;td&gt;0.29&lt;/td&gt;
&lt;td&gt;0.59&lt;/td&gt;
&lt;td&gt;0.69&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WIF&lt;/td&gt;
&lt;td&gt;0.20&lt;/td&gt;
&lt;td&gt;0.54&lt;/td&gt;
&lt;td&gt;0.59&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ORCA&lt;/td&gt;
&lt;td&gt;0.32&lt;/td&gt;
&lt;td&gt;0.38&lt;/td&gt;
&lt;td&gt;0.43&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BONK&lt;/td&gt;
&lt;td&gt;0.10&lt;/td&gt;
&lt;td&gt;0.20&lt;/td&gt;
&lt;td&gt;0.27&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RAY&lt;/td&gt;
&lt;td&gt;0.10&lt;/td&gt;
&lt;td&gt;0.13&lt;/td&gt;
&lt;td&gt;0.16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JUP&lt;/td&gt;
&lt;td&gt;0.04&lt;/td&gt;
&lt;td&gt;0.10&lt;/td&gt;
&lt;td&gt;0.06&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SOL&lt;/td&gt;
&lt;td&gt;0.00&lt;/td&gt;
&lt;td&gt;0.01&lt;/td&gt;
&lt;td&gt;0.01&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  What changed inside the window
&lt;/h3&gt;

&lt;p&gt;Splitting the 36 hours in half ($1,000 size, median of each half): most tokens barely moved. W got cheaper (1.63% → 0.98%), JTO got cheaper (0.98% → 0.60%), and RENDER got slightly cheaper (0.65% → 0.61%). IO got more expensive (2.10% → 2.24%). &lt;strong&gt;Nothing flipped its tier.&lt;/strong&gt; The expensive tokens stayed expensive and the cheap tokens stayed cheap, across both halves of the window. That stability is the point: these are structural liquidity differences, not noise from a single bad hour.&lt;/p&gt;

&lt;h3&gt;
  
  
  The SOL note: quotes vs. real execution
&lt;/h3&gt;

&lt;p&gt;SOL is the one token where we can check our quote-based numbers against reality, because we operate a live SOL track alongside the index.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Quote-based SOL median across this window: &lt;strong&gt;−0.00%&lt;/strong&gt; at $100, $500, and $1,000 — the deepest market on Solana, effectively free at quote level.&lt;/li&gt;
&lt;li&gt;Real execution: &lt;strong&gt;9 completed round trips&lt;/strong&gt; ($10 each) on the live track. Total realized cost across all nine: &lt;strong&gt;$0.078&lt;/strong&gt;, independently recomputed by an auditor working in a separate session, with a final balance discrepancy of &lt;strong&gt;$0.00&lt;/strong&gt; between the operator's records and the auditor's recomputation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Two honest conclusions. First, the quote-based method is not fantasy — for SOL it points the right way, and the real execution cost is also small. Second, one token is not eleven. This cross-check validates the method for &lt;strong&gt;SOL only&lt;/strong&gt;. Extending it token by token is on the roadmap, and the index will never present a token as execution-validated until that check exists for that token.&lt;/p&gt;

&lt;h3&gt;
  
  
  What the weekly index will contain
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The full token × size table (median and p90), updated weekly from hourly measurement&lt;/li&gt;
&lt;li&gt;A change report: which tokens' cost regimes moved, and by how much&lt;/li&gt;
&lt;li&gt;Alerts when a token's measured cost crosses a pre-set threshold — a notification of the measured fact, not a trading recommendation&lt;/li&gt;
&lt;li&gt;Methodology notes, including the quote-vs-execution cross-checks as they expand beyond SOL&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One final scope note: this is a measurement index, not investment advice, a trading signal, or a product announcement. It tells you what a round trip costs; it does not tell you whether to trade.&lt;/p&gt;

&lt;h3&gt;
  
  
  Accuracy, corrections, and use.
&lt;/h3&gt;

&lt;p&gt;What we stand behind is reproducibility, not a guarantee that any figure matches any reader's trades. The data is provided as-is, without warranty of accuracy, completeness, or fitness for any purpose. Every measurement in the table was captured and verified; if any figure is later corrected, the correction is published as a separate note, not silently overwritten. Questions or corrections: &lt;a href="mailto:kobozu.research@outlook.com"&gt;kobozu.research@outlook.com&lt;/a&gt;. The data is provided as-is, without warranty of accuracy, completeness, or fitness for any purpose.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Kobozu Research — measuring what a round trip actually costs.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>data</category>
      <category>solana</category>
      <category>trading</category>
      <category>cryptocurrency</category>
    </item>
  </channel>
</rss>
