MCP 服务器

Regime

xyz.regimetoken/regime
加密货币与 Web3 金融与投资 公开且可连接 MCP 2026-07-28

此 MCP 可以做什么

Backtests cryptocurrency trading claims and strategies, including leverage, drawdowns, stop-losses, averaging, diversification, seasonality, and copy trading.

averaging_in_check
Averaging in check
Whether spreading the entry would have helped, measured. One amount into a coin over a window (90, 365 or 730 days): all of it on day one, or equal instalments weekly or monthly. Both start the same day, move the same money and are valued on the same day, started on every day of the history. You get how often spreading ended ahead, the middle result of each, and the worst start day of each — which is what spreading actually buys and the half nobody shows. Spot tape, no fees, dead coins included.
只读 幂等
输入模式
{'type': 'object', 'required': ['coin', 'days', 'instalments'], 'properties': {'coin': {'type': 'string', 'description': 'Ticker or full pair. An unknown one comes back with the list we hold and the ones left out.'}, 'days': {'type': 'number', 'description': 'The window, in days: 90, 365 or 730.'}, 'instalments': {'type': 'string', 'description': 'How often a slice goes in: weekly or monthly. Defaults to weekly.'}}, 'description': 'The coin and the window you want compared.'}
输出模式
{'type': 'object', 'properties': {'ok': {'type': 'boolean', 'description': 'false when we do not hold that data. Never a zero standing in for an answer.'}, 'error': {'type': 'string', 'description': 'no_data when ok is false.'}, 'model': {'type': 'string', 'description': 'The assumptions, stated: cash not yet in earns nothing (against spreading), no fees (in favour of spreading).'}, 'reason': {'type': 'string', 'description': 'Why, in one sentence, and what we do have instead.'}, 'source': {'type': 'string', 'description': 'The public file these numbers come from.'}, 'starts': {'type': 'number', 'description': 'Start days tested. Fewer than 120 and we refuse to give a percentage.'}, 'instalments': {'type': 'number', 'description': 'How many slices fit in the window.'}, 'spreading_won': {'type': 'number', 'description': 'Start days on which spreading it out ended ahead. A count, not a rate: «100%» is only said when it was all of them.'}, 'p05_spread_pct': {'type': 'number', 'description': 'The same for spreading.'}, 'p05_lump_sum_pct': {'type': 'number', 'description': 'Fifth percentile of starts, lump sum: one worst day is an anecdote.'}, 'worst_spread_pct': {'type': 'number', 'description': 'The same for spreading. This pair is the whole argument for averaging in, and it is the one that never appears next to the advice.'}, 'median_spread_pct': {'type': 'number', 'description': 'Middle start, spread out.'}, 'spreading_won_pct': {'type': 'number', 'description': 'The same as a share of starts.'}, 'median_edge_points': {'type': 'number', 'description': 'Percentage points spreading made over lump sum in the middle case. Negative means lump sum won.'}, 'worst_lump_sum_pct': {'type': 'number', 'description': 'The single worst start day, all in on day one.'}, 'median_lump_sum_pct': {'type': 'number', 'description': 'Middle start, all in on day one.'}, 'share_in_profit_spread_pct': {'type': 'number', 'description': 'The same for spreading.'}, 'share_in_profit_lump_sum_pct': {'type': 'number', 'description': 'Share of starts that ended up, lump sum.'}}, 'description': 'What each way of entering did, over every possible start day.'}
best_days_check
Best days check
The 'miss the ten best days and you get nothing' claim, measured on both sides. The same window of a coin lived four ways: all of it, without its N best days, without its N worst days, and without either, from every start day of the history. You also get how many of those best days landed within a week of a worst one, which is what decides whether the claim means anything. Backtest on spot daily candles, dead coins included.
只读 幂等
输入模式
{'type': 'object', 'required': ['coin', 'days', 'best_days'], 'properties': {'coin': {'type': 'string', 'description': 'Ticker or full pair. An unknown one comes back with the list we hold and the ones left out.'}, 'days': {'type': 'number', 'description': 'Window in days: 90, 365 or 730.'}, 'best_days': {'type': 'number', 'description': 'How many days are missed: 1, 5, 10 or 20. Defaults to 10, the number in the claim.'}}, 'description': 'The coin, the window, and how many days you would miss.'}
输出模式
{'type': 'object', 'properties': {'ok': {'type': 'boolean', 'description': 'false when we do not hold that data. Never a zero standing in for an answer.'}, 'page': {'type': 'string', 'description': 'The page with these exact numbers already in.'}, 'error': {'type': 'string', 'description': 'no_data when ok is false.'}, 'model': {'type': 'string', 'description': 'What missing a day means here, and what is not charged.'}, 'reason': {'type': 'string', 'description': 'Why, in one sentence, and what we do have instead.'}, 'source': {'type': 'string', 'description': 'The public file these numbers come from.'}, 'history': {'type': 'object', 'description': 'From, to, days held and which tape.'}, 'windows': {'type': 'number', 'description': 'Start days tested. Fewer than 120 and we refuse to give a percentage.'}, 'median_pct': {'type': 'number', 'description': 'The middle window, lived whole. The alternative, always.'}, 'biggest_days': {'type': 'object', 'description': 'The biggest up days and down days of the whole history, with their dates, so the clustering can be checked rather than believed.'}, 'share_in_profit_pct': {'type': 'number', 'description': 'Windows that ended in profit, lived whole.'}, 'cost_of_missing_best_pp': {'type': 'number', 'description': 'Percentage points the best days were worth.'}, 'median_without_best_pct': {'type': 'number', 'description': 'The same window without its best days. This is the half of the claim you get shown.'}, 'gift_of_missing_worst_pp': {'type': 'number', 'description': 'Percentage points dodging the worst days would have paid.'}, 'median_without_worst_pct': {'type': 'number', 'description': 'The same window without its WORST days. This is the half nobody shows, and it is just as big.'}, 'median_without_either_pct': {'type': 'number', 'description': 'Without both groups: usually back near the first number, after dodging the days that supposedly decided everything.'}, 'next_to_means_within_days': {'type': 'number', 'description': 'What «next to» means, in days.'}, 'winners_turned_losers_pct': {'type': 'number', 'description': 'Of the windows that ended in profit, the share that end in loss once their best days are removed.'}, 'share_in_profit_without_best_pct': {'type': 'number', 'description': 'The same, without the best days.'}, 'best_days_next_to_a_worst_day_pct': {'type': 'number', 'description': 'Share of the best days that fell within a few days of one of the worst. High means you cannot dodge one without dodging the other.'}, 'share_in_profit_without_worst_pct': {'type': 'number', 'description': 'The same, without the worst days.'}}, 'description': 'Both halves of the claim, over the same windows.'}
calendar_check
Calendar check
'Uptober'. 'Mondays dip'. 'Sell in May'. Any calendar claim on 34 coins, measured against chance. With seven days one has to come first, so the answer is a permutation test: the SAME returns dealt out at random hundreds of times, and how often chance alone produces a bucket that good. Plus how many times the bucket really happened - October is 279 days of bitcoin but nine Octobers - and the round-trip cost. Nine years of daily candles.
只读 幂等
输入模式
{'type': 'object', 'required': ['coin', 'calendar'], 'properties': {'coin': {'type': 'string', 'description': 'Ticker or full pair. An unknown one comes back with the list we hold and the ones left out.'}, 'calendar': {'type': 'string', 'description': 'day_of_week, month_of_year or hour_of_day. The hourly one exists for the 16 coins we hold hourly candles for.'}}, 'description': 'The coin and which calendar: weekday, month or hour.'}
输出模式
{'type': 'object', 'properties': {'ok': {'type': 'boolean', 'description': 'false when we do not hold that data. Never a zero standing in for an answer.'}, 'page': {'type': 'string', 'description': 'The page with these exact numbers already in.'}, 'error': {'type': 'string', 'description': 'no_data when ok is false.'}, 'model': {'type': 'string', 'description': 'The test, stated, including why a monthly p-value flatters itself.'}, 'reason': {'type': 'string', 'description': 'Why, in one sentence, and what we do have instead.'}, 'source': {'type': 'string', 'description': 'The public file these numbers come from.'}, 'buckets': {'type': 'array', 'description': 'Every bucket: its name, observations, times occurred, mean, median and share of up days.'}, 'history': {'type': 'object', 'description': 'From, to, days held and which tape.'}, 'shuffles': {'type': 'number', 'description': 'How many shuffled worlds were tested.'}, 'best_bucket': {'type': 'string', 'description': 'The best bucket by average move, named.'}, 'observations': {'type': 'number', 'description': 'Moves measured across all buckets.'}, 'worst_bucket': {'type': 'string', 'description': 'The other end.'}, 'best_mean_pct': {'type': 'number', 'description': 'Its average move. On its own, this is the advertisement.'}, 'worst_mean_pct': {'type': 'number', 'description': 'Its average move.'}, 'edge_covers_cost': {'type': 'boolean', 'description': 'Whether the average move of the best bucket is bigger than that cost. Usually it is not.'}, 'chance_best_p95_pct': {'type': 'number', 'description': 'What chance reaches in one shuffle out of twenty.'}, 'round_trip_cost_pct': {'type': 'number', 'description': 'What entering and exiting once costs, so the edge can be compared with it.'}, 'beats_chance_at_5pct': {'type': 'boolean', 'description': 'Whether that share is under 0.05. Across all 34 coins, about 5% of these come back true by chance alone, so one true answer on its own is not a finding.'}, 'chance_best_mean_pct': {'type': 'number', 'description': 'What the BEST bucket of a shuffled world averages. Anything below this is less impressive than nothing.'}, 'chance_matches_it_share': {'type': 'number', 'description': 'The p-value: share of shuffles whose best bucket matched or beat the real one. High means no pattern.'}, 'best_bucket_happened_times': {'type': 'number', 'description': 'How many times that bucket has actually occurred. For months this is years, not days: nine Octobers is nine observations however many candles they hold, and it is the number these claims never show.'}}, 'description': 'The bucket, and what chance produces next to it.'}
coin_comparison
Coin comparison
Two or three coins side by side, every check at once: for each, how often a buy fell 30% or more before the window was out and where the middle one ended, how often a leveraged month ended with nothing, whether spreading the entry won, how often a stop-loss sold a buy that ended in profit, and how much it moves with bitcoin. Nothing is ranked and no coin is called better. Spot and perpetual tapes, fees charged.
只读 幂等
输入模式
{'type': 'object', 'required': ['coins', 'days', 'leverage'], 'properties': {'days': {'type': 'number', 'description': '90, 365 (default) or 730.'}, 'coins': {'type': 'string', 'description': 'Two or three tickers, comma-separated: BTC,ETH,SOL. Kept in the order sent.'}, 'leverage': {'type': 'number', 'description': 'For the leverage row. Default 25.'}}, 'description': 'The coins, and optionally the window and the leverage.'}
输出模式
{'type': 'object', 'properties': {'ok': {'type': 'boolean', 'description': 'false when we do not hold that data. Never a zero standing in for an answer.'}, 'rows': {'type': 'array', 'description': 'Per coin: the drawdown, leverage, averaging-in and stop-loss answers, and its correlation with bitcoin (null for bitcoin itself).'}, 'error': {'type': 'string', 'description': 'no_data when ok is false.'}, 'model': {'type': 'string', 'description': 'The method, stated.'}, 'reason': {'type': 'string', 'description': 'Why, in one sentence, and what we do have instead.'}, 'source': {'type': 'string', 'description': 'The public files these numbers come from.'}}, 'description': 'One row per coin, in the order sent.'}
copy_trading_check
Copy trading check
Whether copying the top traders works, measured. Accounts in the top 10% or 1% of Hyperliquid one month, by return or by dollar profit: how many were in the top again the next month, next to chance, how many fell to the bottom instead, and how many made money the month you would have copied them for, next to every active account. 4,000 accounts sampled at random, not today's leaders; about 30 month pairs.
只读 幂等
输入模式
{'type': 'object', 'required': ['ranked_by', 'top_pct'], 'properties': {'top_pct': {'type': 'number', 'description': '10 (default) or 1. 0.1 is read as 10.'}, 'ranked_by': {'type': 'string', 'description': 'return (default) or profit.'}}, 'description': 'Which ranking and which top group. Both optional.'}
输出模式
{'type': 'object', 'properties': {'ok': {'type': 'boolean', 'description': 'false when we do not hold that data. Never a zero standing in for an answer.'}, 'error': {'type': 'string', 'description': 'no_data when ok is false.'}, 'model': {'type': 'string', 'description': 'The method, stated.'}, 'reason': {'type': 'string', 'description': 'Why, in one sentence, and what we do have instead.'}, 'source': {'type': 'string', 'description': 'The public file these numbers come from.'}, 'repeated': {'type': 'number', 'description': 'Of those, times it was in the top again next month.'}, 'chance_pct': {'type': 'number', 'description': 'What picking accounts at random gives. The alternative, always.'}, 'repeated_pct': {'type': 'number', 'description': 'The same as a share.'}, 'times_in_top': {'type': 'number', 'description': 'Times an account finished a month in the top group.'}, 'stopped_trading': {'type': 'number', 'description': 'Counted as not repeating.'}, 'fell_to_bottom_pct': {'type': 'number', 'description': 'Share that fell to the bottom group instead: the size control.'}, 'in_profit_next_month_pct': {'type': 'number', 'description': 'Share that made money the next month.'}, 'in_profit_next_month_all_accounts_pct': {'type': 'number', 'description': 'The same for every active account.'}}, 'description': "What one month's top did the next month, next to chance."}
diversification_check
Diversification check
Diversification check: how many independent bets a basket of coins really is. Give the coins (and optionally the window: 90, 365 or 730 days): you get the average correlation between the pairs on real daily returns, the number of independent bets it works out to, each coin's correlation with bitcoin — and what the equal-weight basket did on the days bitcoin closed 3% or more down: how often it fell too, by how much, and its worst such day. Dead coins included.
只读 幂等
输入模式
{'type': 'object', 'required': ['coins', 'days'], 'properties': {'days': {'type': 'number', 'description': 'Window ending on the last day of the data: 90, 365 or 730. Defaults to 365.'}, 'coins': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tickers or full pairs, e.g. ["BTC", "ETH", "SOL"]. A comma-separated string also works. One we do not hold comes back with the list.'}}, 'description': 'The basket you want measured.'}
输出模式
{'type': 'object', 'properties': {'ok': {'type': 'boolean', 'description': 'false when we do not hold that data. Never a zero standing in for an answer.'}, 'error': {'type': 'string', 'description': 'no_data when ok is false.'}, 'model': {'type': 'string', 'description': 'The assumptions, stated.'}, 'reason': {'type': 'string', 'description': 'Why, in one sentence, and what we do have instead.'}, 'source': {'type': 'string', 'description': 'The public file these numbers come from.'}, 'btc_bad_days': {'type': 'object', 'description': 'The days bitcoin closed 3% or more down: how many, on what share of them the basket fell too, its median and worst move. Diversification that vanishes on those days was never there.'}, 'independent_bets': {'type': 'number', 'description': 'N / (1 + (N-1)*avg_corr). Five coins that move as one are one bet; five that ignore each other are five.'}, 'all_coins_we_hold': {'type': 'object', 'description': 'What every coin we hold, at equal weights, adds up to — the ceiling, for comparison.'}, 'correlation_with_btc': {'type': 'object', 'description': "Each coin's correlation with bitcoin in the window."}, 'average_pair_correlation': {'type': 'number', 'description': 'Pearson correlation of daily log returns, averaged over every pair in the basket.'}}, 'description': 'What that basket adds up to, and what it did on the bad days.'}
drawdown_check
Drawdown check
Drawdown check: what it cost to collect the return you were shown. The coin is bought at the close of every day of its history and held for the period you name: you get the drawdown from the entry before the period was out, the share of starts that fell 30% and 50%, the days spent under water, how it ended — and, among the starts that ended in profit, the drawdown they sat through first. Spot tape, no fees, coins that died included.
只读 幂等
输入模式
{'type': 'object', 'required': ['coin', 'days'], 'properties': {'coin': {'type': 'string', 'description': 'Ticker or full pair. An unknown one comes back with the list we hold and the ones left out.'}, 'days': {'type': 'number', 'description': 'How long it is held: 30, 90, 365 or 730.'}}, 'description': 'The hold you want opened on every day there has been.'}
输出模式
{'type': 'object', 'properties': {'ok': {'type': 'boolean', 'description': 'false when we do not hold that data. Never a zero standing in for an answer.'}, 'error': {'type': 'string', 'description': 'no_data when ok is false.'}, 'model': {'type': 'string', 'description': 'The assumptions, stated.'}, 'reason': {'type': 'string', 'description': 'Why, in one sentence, and what we do have instead.'}, 'source': {'type': 'string', 'description': 'The public file these numbers come from.'}, 'starts': {'type': 'number', 'description': 'Start days tested. Fewer than 120 and we refuse to give a percentage.'}, 'median_return_pct': {'type': 'number', 'description': 'How the middle start ended.'}, 'share_fell_30_pct': {'type': 'number', 'description': 'Share of starts that fell 30% or more from entry first.'}, 'share_fell_50_pct': {'type': 'number', 'description': 'Same, 50% or more.'}, 'asset_max_drawdown': {'type': 'object', 'description': "The coin's own biggest top-to-bottom fall, with dates and days to recover, for comparison."}, 'share_in_profit_pct': {'type': 'number', 'description': 'Share of starts that ended up.'}, 'median_worst_fall_pct': {'type': 'number', 'description': "The middle start's worst fall from its own entry price within the hold."}, 'median_days_under_water': {'type': 'number', 'description': 'Days of the hold spent below the entry price, middle start.'}, 'share_never_recovered_pct': {'type': 'number', 'description': 'Starts that never closed back at their entry price within the hold.'}, 'median_worst_fall_among_winners_pct': {'type': 'number', 'description': 'Among the starts that ended in profit, the median fall they sat through first. The price of the number you were shown. A return without this is advertising.'}}, 'description': 'What holding that coin for that long cost, across every possible starting day.'}
leaderboard_rank_check
Leaderboard rank check
How much company a return has. Send a return (+340%) and a window (day, week, month or all time) and get how many accounts on Hyperliquid's whole public leaderboard did the same or better, out of how many traded, its percentile, and the median account next to it. Every row of the exchange's own table, refreshed daily; the denominator is the accounts that traded, not the ones that sat idle.
只读 幂等
输入模式
{'type': 'object', 'required': ['return_pct', 'window'], 'properties': {'window': {'type': 'string', 'description': 'day, week, month (default) or allTime.'}, 'return_pct': {'type': 'number', 'description': 'In percent: 340 means +340%.'}}, 'description': 'The return you were shown, and over what window.'}
输出模式
{'type': 'object', 'properties': {'ok': {'type': 'boolean', 'description': 'false when we do not hold that data. Never a zero standing in for an answer.'}, 'error': {'type': 'string', 'description': 'no_data when ok is false.'}, 'model': {'type': 'string', 'description': 'The method, stated.'}, 'one_in': {'type': 'number', 'description': 'One account in how many.'}, 'reason': {'type': 'string', 'description': 'Why, in one sentence, and what we do have instead.'}, 'source': {'type': 'string', 'description': 'The public file these numbers come from.'}, 'percentile': {'type': 'number', 'description': 'Share of accounts below it.'}, 'same_or_better': {'type': 'number', 'description': 'Accounts at that return or above.'}, 'median_return_pct': {'type': 'number', 'description': 'The middle account, same window.'}, 'share_in_profit_pct': {'type': 'number', 'description': 'Accounts in profit, same window.'}, 'accounts_that_traded': {'type': 'number', 'description': 'The denominator.'}}, 'description': 'Where that return lands among every account that traded.'}
leverage_survival
Leverage survival
What a leveraged trade actually did, opened on every single day of the history instead of the one day that worked. Give coin, side, leverage and holding period: you get the share of those days that ended liquidated, the median outcome, the best day, and what the same coin did with no leverage at all. Real perpetual tape, with the funding that was actually paid charged daily and eating into margin. Coins that blew up included.
只读 幂等
输入模式
{'type': 'object', 'required': ['coin', 'leverage', 'days'], 'properties': {'coin': {'type': 'string', 'description': 'Ticker or full pair. An unknown one comes back with the list we hold and the ones we do not.'}, 'days': {'type': 'number', 'description': 'How long it is held: 1, 7, 30 or 90.'}, 'side': {'type': 'string', 'description': 'long or short. Defaults to long.'}, 'leverage': {'type': 'number', 'description': '2, 3, 5, 10, 20, 25, 50 or 100.'}}, 'description': 'The leveraged trade you want opened on every day there has been.'}
输出模式
{'type': 'object', 'properties': {'ok': {'type': 'boolean', 'description': 'false when we do not hold that data. Never a zero standing in for an answer.'}, 'error': {'type': 'string', 'description': 'no_data when ok is false.'}, 'model': {'type': 'string', 'description': 'The assumptions, stated: liquidation at exactly 1/leverage with no maintenance margin, funding charged daily, the wick decides not the close.'}, 'reason': {'type': 'string', 'description': 'Why, in one sentence, and what we do have instead.'}, 'source': {'type': 'string', 'description': 'The public file these numbers come from.'}, 'attempts': {'type': 'number', 'description': 'Starting days tested. A position still open when the history ends is not counted.'}, 'best_pct': {'type': 'number', 'description': 'The best day. It is the one you were shown, and it is not hidden here.'}, 'liquidated_pct': {'type': 'number', 'description': 'Share of them that ended with nothing left.'}, 'median_return_pct': {'type': 'number', 'description': 'The middle outcome, on the margin.'}, 'median_days_to_liquidation': {'type': 'number', 'description': 'How fast, when it happened.'}, 'median_return_unlevered_pct': {'type': 'number', 'description': 'What the same coin did with no leverage over the same days. A result without this is advertising.'}}, 'description': 'How that trade ended, across every possible starting day.'}
overfitting_odds
Overfitting odds
Overfitting check: how many attempts plain chance needs to produce the track record you were shown. Give the wins, the losses and how many versions were tried: you get the exact binomial odds of one try reaching it, the odds once somebody shows you the best of N, and how many tries would make it an even bet. Arithmetic only — no market data, no model, no opinion. A 62% win rate over 100 trades is one thing on the first try, nothing on the fiftieth.
只读 幂等
输入模式
{'type': 'object', 'required': ['wins', 'trades'], 'properties': {'wins': {'type': 'number', 'description': 'Winning trades.'}, 'tries': {'type': 'number', 'description': 'How many versions were tried before this one was shown to you. Defaults to 1, which is almost never true.'}, 'losses': {'type': 'number', 'description': 'Losing trades. Give this or trades.'}, 'trades': {'type': 'number', 'description': 'Total trades.'}, 'baseline': {'type': 'number', 'description': 'Probability a single trade wins by chance. Defaults to 0.5.'}}, 'description': 'The track record you were shown, and how much searching went into finding it.'}
输出模式
{'type': 'object', 'properties': {'ok': {'type': 'boolean', 'description': 'false when we do not hold that data. Never a zero standing in for an answer.'}, 'error': {'type': 'string', 'description': 'no_data when ok is false.'}, 'reason': {'type': 'string', 'description': 'Why, in one sentence, and what we do have instead.'}, 'reading': {'type': 'string', 'description': 'The same three numbers in one sentence.'}, 'odds_one_try': {'type': 'number', 'description': 'P(at least this many wins) for a single attempt. Exact binomial, not simulated.'}, 'win_rate_pct': {'type': 'number', 'description': 'The win rate.'}, 'odds_best_of_tries': {'type': 'number', 'description': 'Same result, once you take the best of the attempts made.'}, 'tries_for_even_odds': {'type': 'number', 'description': 'Attempts needed for chance alone to reach it half the time.'}}, 'description': 'The exact odds, for one try and for the best of N.'}
stop_loss_check
Stop loss check
Whether a stop-loss would have helped, measured. The same buy of a coin, held 30, 90, 365 or 730 days, with a stop 5, 10, 15, 20 or 30% below the entry and without one, started on every day of the history. The stop fires on the day's low, not its close, and fees are charged to both. You get how often it fired, how often it sold a buy that would have ended in profit, and the worst case of each. Spot tape, dead coins included.
只读 幂等
输入模式
{'type': 'object', 'required': ['coin', 'days', 'stop'], 'properties': {'coin': {'type': 'string', 'description': 'Ticker or full pair. An unknown one comes back with the list we hold and the ones left out.'}, 'days': {'type': 'number', 'description': 'Holding period in days: 30, 90, 365 or 730.'}, 'stop': {'type': 'number', 'description': 'How far below the entry, in percent: 5, 10, 15, 20 or 30. 0.05 is read as 5.'}}, 'description': 'The coin, how long you meant to hold, and the stop.'}
输出模式
{'type': 'object', 'properties': {'ok': {'type': 'boolean', 'description': 'false when we do not hold that data. Never a zero standing in for an answer.'}, 'buys': {'type': 'number', 'description': 'Start days tested. Fewer than 120 and we refuse to give a percentage.'}, 'error': {'type': 'string', 'description': 'no_data when ok is false.'}, 'model': {'type': 'string', 'description': 'The assumptions, stated: the low triggers, fills at the stop or the gap open, out until the end, same costs both ways.'}, 'reason': {'type': 'string', 'description': 'Why, in one sentence, and what we do have instead.'}, 'source': {'type': 'string', 'description': 'The public file these numbers come from.'}, 'stop_fired': {'type': 'number', 'description': 'Buys on which the stop fired. A count.'}, 'stop_fired_pct': {'type': 'number', 'description': 'The same as a share of buys.'}, 'p05_with_stop_pct': {'type': 'number', 'description': 'Fifth percentile, with the stop: what the stop actually buys.'}, 'stop_beat_holding': {'type': 'number', 'description': 'Buys on which the stop ended strictly ahead of holding.'}, 'mean_with_stop_pct': {'type': 'number', 'description': 'Average buy, with the stop.'}, 'median_days_to_fire': {'type': 'number', 'description': 'Among the buys it fired on. Null when it never fired.'}, 'worst_with_stop_pct': {'type': 'number', 'description': 'The single worst buy, with the stop. Worse than the stop itself only when a day gapped through.'}, 'median_with_stop_pct': {'type': 'number', 'description': 'Middle buy, with the stop.'}, 'p05_without_stop_pct': {'type': 'number', 'description': 'The same, holding.'}, 'mean_without_stop_pct': {'type': 'number', 'description': 'Average buy, holding. Skewed by a few huge winners.'}, 'stop_beat_holding_pct': {'type': 'number', 'description': 'The same as a share of buys.'}, 'worst_without_stop_pct': {'type': 'number', 'description': 'The same, holding.'}, 'median_without_stop_pct': {'type': 'number', 'description': 'Middle buy, just holding. The alternative, always.'}, 'share_in_profit_with_stop_pct': {'type': 'number', 'description': 'Share of buys that ended up, stop.'}, 'share_in_profit_without_stop_pct': {'type': 'number', 'description': 'The same, holding.'}, 'fired_but_would_have_ended_in_profit': {'type': 'number', 'description': 'Buys the stop sold that, held to the end, would have ended in profit after fees. The half nobody shows.'}, 'fired_but_would_have_ended_in_profit_pct': {'type': 'number', 'description': 'The same as a share of ALL buys.'}}, 'description': 'What the stop did to every possible buy, next to holding.'}
strategy_grid_lookup
Strategy grid lookup
Backtest lookup: what one exact version of a strategy actually did. Buy-the-dip and the moving-average cross, every combination of their knobs, computed over nine years of real prices with the exchange's fees charged both ways — sixteen coins, three of which died. Give the coin and the numbers and you get the return, the trades, the worst drawdown, and what buying and holding did over the same window. Read from a file you can download.
只读 幂等
输入模式
{'type': 'object', 'required': ['coin'], 'properties': {'coin': {'type': 'string', 'description': 'BTC, ETH, SOL, DOGE, PEPE, SRM… ticker or full pair. Ask with an unknown one and the answer lists the sixteen we hold.'}, 'drop': {'type': 'number', 'description': 'dip only: how far below its recent high to buy, in %.'}, 'fast': {'type': 'number', 'description': 'cross only: fast average.'}, 'slow': {'type': 'number', 'description': 'cross only: slow average.'}, 'stop': {'type': 'number', 'description': 'dip only: stop loss, in %.'}, 'hours': {'type': 'number', 'description': 'dip only: give up after this many hours.'}, 'family': {'type': 'string', 'description': 'dip (buy when it falls) or cross (moving average crossover). Defaults to dip.'}, 'target': {'type': 'number', 'description': 'dip only: take profit, in %.'}, 'candles': {'type': 'string', 'description': 'cross only: 1d or 4h.'}}, 'description': 'Which exact version of the strategy you want looked up.'}
输出模式
{'type': 'object', 'properties': {'ok': {'type': 'boolean', 'description': 'false when we do not hold that data. Never a zero standing in for an answer.'}, 'rule': {'type': 'string', 'description': 'The rule in plain English.'}, 'error': {'type': 'string', 'description': 'no_data when ok is false.'}, 'reason': {'type': 'string', 'description': 'Why, in one sentence, and what we do have instead.'}, 'source': {'type': 'string', 'description': 'The public file these numbers come from.'}, 'trades': {'type': 'number', 'description': 'How many trades it took.'}, 'return_pct': {'type': 'number', 'description': 'What it returned, after fees.'}, 'win_rate_pct': {'type': 'number', 'description': 'Share of winners.'}, 'buy_and_hold_pct': {'type': 'number', 'description': 'What buying the coin and leaving it alone returned over the same window. A result without this is advertising.'}, 'max_drawdown_pct': {'type': 'number', 'description': 'Worst peak-to-trough fall.'}, 'versions_in_family': {'type': 'number', 'description': 'How many versions of this idea exist.'}, 'versions_beating_buy_and_hold': {'type': 'number', 'description': 'How many of them beat doing nothing. Often zero.'}}, 'description': 'What that exact rule did in the judging half, with what doing nothing did next to it.'}
已添加
coin_comparison
2026年10月2日 02:40
已添加
best_days_check
2026年10月2日 02:40
已添加
calendar_check
2026年10月2日 02:40
已添加
leaderboard_rank_check
2026年10月2日 02:40
已添加
copy_trading_check
2026年10月2日 02:40
已添加
stop_loss_check
2026年10月2日 02:40
已添加
averaging_in_check
2026年10月2日 02:40
已添加
diversification_check
2026年10月2日 02:40
已添加
drawdown_check
2026年10月2日 02:40
已添加
leverage_survival
2026年10月2日 02:40
已添加
overfitting_odds
2026年10月2日 02:40
已添加
strategy_grid_lookup
2026年10月2日 02:40