The Dojo for Bot Builders

Forge your bot.
Prove it in the dojo.

ScriptSamurai is where retail traders turn their own strategies into trading bots — then forward-test and rank them against everyone else's.

ScriptSamurai logo
Script Samurai
What it is

Traders are using AI to encode their own edge into automated bots. The problem isn't building them — it's knowing if they actually work, and whose work best. ScriptSamurai isn't a marketplace for buying scripts (the good ones never get sold anyway). It's a community for builders: learn the craft, forward-test honestly, and earn your rank.

Featured Guide

Build a Polymarket Trading Bot

A step-by-step tutorial on building an automated prediction-market bot using Python and the CLOB API. From setup to live execution.

Read the guide
How it works

Three steps. No shortcuts.

01

Build

Encode your trading strategy into a bot, with the community and AI tooling to help you do it.

02

Prove

Forward-test your bot under standardized, real conditions — no cherry-picked backtests.

03

Compete

Climb the ranked leaderboard. Compare with other builders. Let the results talk.

Scoring

How the leaderboard ranks bots

Raw return is not enough. Every bot is scored on a composite that rewards consistency and punishes hidden risk — all computed from the same standardized feed and the same 90-day window.

Risk-adjusted returnAnnualized return ÷ annualized volatility. Normalized to 0-100, then × 0.40.40%

Annualized return divided by annualized volatility. Rewards builders who earn smoothly, not via spikes.

Sharpe ratio(Bot return − risk-free rate) ÷ return standard deviation. Normalized to 0-100, then × 0.25.25%

Excess return per unit of total risk. The classic measure of reward relative to drawdowns.

Max drawdown(1 − max drawdown %) × 100. A 6 % drawdown scores 94 before weighting, then × 0.20.20%

Largest peak-to-trough decline in the window. Smaller drawdowns score higher.

Win rate & consistencyProfitable-day % minus a variance penalty. Normalized to 0-100, then × 0.15.15%

Percentage of profitable days, with a penalty for high variance in daily returns.

Minimum test: 30 days · Ranking window: 90 days · Daily EOD marks at 00:00 UTC
Example bot — MomentumBot #07 · 90-day windowRank #1
Risk-adj. returnNormalized score × 0.401.42
SharpeNormalized score × 0.252.10
Max drawdownNormalized score × 0.20-6.3%
Win rateNormalized score × 0.1558%
Weighted scoreEach metric is normalized to 0–100, then weighted: risk-adj return 1.42 → 72.5 × 0.40 = 29.0; Sharpe 2.10 → 85.0 × 0.25 = 21.25; drawdown –6.3% → 90.0 × 0.20 = 18.0; win rate 58% → 58.0 × 0.15 = 8.7. Total = 91.2.91.2
Exact formula
// Raw 90-day inputs for MomentumBot #07
riskAdjReturn = 1.42; sharpe = 2.10; maxDrawdown = -6.3%; winRate = 58%;

// Normalize each metric to 0–100 using season high/low bounds
normRiskAdj = 72.5; normSharpe = 85.0; normDrawdown = 90.0; normWinRate = 58.0;

// Composite score = 40/25/20/15 weighted sum
score = (normRiskAdj × 0.40) + (normSharpe × 0.25) + (normDrawdown × 0.20) + (normWinRate × 0.15)
score = (72.5 × 0.40) + (85.0 × 0.25) + (90.0 × 0.20) + (58.0 × 0.15)
score = 29.00 + 21.25 + 18.00 + 8.70 = 91.20
Score breakdown — MomentumBot #07
Risk-adj. returnHow it's calculatedMin-max normalised against the season’s best and worst risk-adjusted returns. 1.42 sits at 72.5 / 100. Then multiplied by the 40 % weight.
Raw value1.42
Normalized72.5
Weight40%
Contribution29.00
SharpeHow it's calculatedMin-max normalised against the season’s best and worst Sharpe ratios. 2.10 sits at 85.0 / 100. Then multiplied by the 25 % weight.
Raw value2.10
Normalized85.0
Weight25%
Contribution21.25
Max drawdownHow it's calculatedInverted min-max normalisation: a drawdown closer to 0 is better. –6.3 % scores 90.0 / 100. Then multiplied by the 20 % weight.
Raw value-6.3%
Normalized90.0
Weight20%
Contribution18.00
Win rateHow it's calculatedMin-max normalised against the season’s best and worst win rates. 58 % sits at 58.0 / 100. Then multiplied by the 15 % weight.
Raw value58%
Normalized58.0
Weight15%
Contribution8.70
Weighted score91.20

Normalization maps each metric to a 0–100 scale using the season’s best and worst observed values. The contribution is the normalized score multiplied by its weight. The weighted score is the sum of all four contributions.

Risk-adjusted return

Annualized return divided by volatility. Higher is better — it means the bot earned more per unit of risk taken.

Sharpe ratio

Return above the risk-free rate divided by standard deviation of returns. A Sharpe above 1.0 is considered strong; above 2.0 is exceptional.

Max drawdown

The largest peak-to-trough decline during the window. A smaller (less negative) number means smoother equity and better capital preservation.

Win rate

Percentage of profitable trading days. Higher win rates suggest consistent edge, though they must be read alongside drawdown size.

Tournaments

Sponsored tournaments.
Real prize pools.

Regular seasons where the best forward-tested bots compete for sponsored prize pools. Every entry is verified under a standardized forward-testing protocol — no cherry-picked backtests, no curated screenshots, no hidden filters. The leaderboard ranks bots by live, continuous metrics: net return, Sharpe ratio, maximum drawdown, and win rate, all drawn from the same shared data feed so the results speak for themselves.

FAQ

Tournament rules & verification

No cherry-picked results
Every metric is pulled from a continuous, unbroken forward-test stream. You cannot submit a backtest, a screenshot, or a hand-selected date range. The leaderboard only counts what the bot produced in real time from the moment it went live.
How submissions are validated
Submissions must use the standardized data feed and API keys we provide. All signals are timestamped and logged by our servers. We verify capital consistency, slippage accounting, and that the same logic executed on every trade. Independent reviewers can request a full replay of any run.
What disqualifies a run
A run is disqualified if the bot uses a different data source, alters logic mid-test, hides fees or slippage, or fails to trade for a required minimum period. Any attempt to manipulate timestamps, capital sizes, or trade history results in permanent removal from the leaderboard.
The ethos

Anyone can claim returns. Almost no one can prove them. ScriptSamurai is built around verified, forward-tested performance — so a rank here means something.

The dojo over the casino.

The first cohort of builders
is forming on Discord.