Regime

Checks crypto trading claims on real data: leverage, drawdown, stop-loss, seasonality, luck.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
100%
Vollständigkeit des Schemas
100%
Qualität der Benennung
85%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~8,386Tokens (Tool-Definitionen)
~6.2 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (6.55% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "regime": {
      "url": "https://feed.regimetoken.xyz/mcp"
    }
  }
}

Remote-Endpunkte

https://feed.regimetoken.xyz/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (12)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢strategy_grid_lookup(coin, family, drop, target, stop, ...)

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. Use when someone quotes a specific dip-buying or moving-average rule ("buy 10% dips, take 5%") and you want its real backtest. For leverage use leverage_survival; for a stop on a plain buy-and-hold, stop_loss_check; to judge a win rate you were shown, overfitting_odds.

Eingabe-Schema

{
  "type": "object",
  "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."
    },
    "family": {
      "type": "string",
      "description": "dip (buy when it falls) or cross (moving average crossover). Defaults to dip.",
      "enum": [
        "dip",
        "cross"
      ],
      "default": "dip"
    },
    "drop": {
      "type": "number",
      "description": "dip only: how far below its recent high to buy, in %."
    },
    "target": {
      "type": "number",
      "description": "dip only: take profit, in %."
    },
    "stop": {
      "type": "number",
      "description": "dip only: stop loss, in %."
    },
    "hours": {
      "type": "number",
      "description": "dip only: give up after this many hours."
    },
    "fast": {
      "type": "number",
      "description": "cross only: fast average."
    },
    "slow": {
      "type": "number",
      "description": "cross only: slow average."
    },
    "candles": {
      "type": "string",
      "description": "cross only: 1d or 4h.",
      "enum": [
        "1d",
        "4h"
      ]
    }
  },
  "required": [
    "coin"
  ],
  "description": "Which exact version of the strategy you want looked up."
}

Ausgabe-Schema

{
  "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."
    },
    "rule": {
      "type": "string",
      "description": "The rule in plain English."
    },
    "return_pct": {
      "type": "number",
      "description": "What it returned, after fees."
    },
    "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."
    },
    "trades": {
      "type": "number",
      "description": "How many trades it took."
    },
    "win_rate_pct": {
      "type": "number",
      "description": "Share of winners."
    },
    "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."
    },
    "source": {
      "type": "string",
      "description": "The public file these numbers come from."
    }
  },
  "description": "What that exact rule did in the judging half, with what doing nothing did next to it."
}
🟢overfitting_odds(wins, losses, trades, tries, baseline)

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. Use when you are shown a win rate, a backtest or a signal channel's record and need to know whether luck explains it. Needs no coin. For what a named rule did on real prices use strategy_grid_lookup; to place a return among real accounts, leaderboard_rank_check.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "wins": {
      "type": "number",
      "description": "Winning trades."
    },
    "losses": {
      "type": "number",
      "description": "Losing trades. Give this or trades."
    },
    "trades": {
      "type": "number",
      "description": "Total 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.",
      "default": 1
    },
    "baseline": {
      "type": "number",
      "description": "Probability a single trade wins by chance. Defaults to 0.5.",
      "default": 0.5
    }
  },
  "required": [
    "wins",
    "trades"
  ],
  "description": "The track record you were shown, and how much searching went into finding it."
}

Ausgabe-Schema

{
  "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."
    },
    "odds_one_try": {
      "type": "number",
      "description": "P(at least this many wins) for a single attempt. Exact binomial, not simulated."
    },
    "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."
    },
    "win_rate_pct": {
      "type": "number",
      "description": "The win rate."
    },
    "reading": {
      "type": "string",
      "description": "The same three numbers in one sentence."
    }
  },
  "description": "The exact odds, for one try and for the best of N."
}
🟢leverage_survival(coin, side, leverage, days)

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. Use when the question involves leverage, perpetuals or liquidation. For the fall an unleveraged holder sits through use drawdown_check; for two or three coins at once, coin_comparison.

Eingabe-Schema

{
  "type": "object",
  "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."
    },
    "side": {
      "type": "string",
      "description": "long or short. Defaults to long.",
      "enum": [
        "long",
        "short"
      ],
      "default": "long"
    },
    "leverage": {
      "type": "number",
      "description": "2, 3, 5, 10, 20, 25, 50 or 100.",
      "enum": [
        2,
        3,
        5,
        10,
        20,
        25,
        50,
        100
      ]
    },
    "days": {
      "type": "number",
      "description": "How long it is held: 1, 7, 30 or 90.",
      "enum": [
        1,
        7,
        30,
        90
      ]
    }
  },
  "required": [
    "coin",
    "leverage",
    "days"
  ],
  "description": "The leveraged trade you want opened on every day there has been."
}

Ausgabe-Schema

{
  "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."
    },
    "attempts": {
      "type": "number",
      "description": "Starting days tested. A position still open when the history ends is not counted."
    },
    "liquidated_pct": {
      "type": "number",
      "description": "Share of them that ended with nothing left."
    },
    "median_days_to_liquidation": {
      "type": "number",
      "description": "How fast, when it happened."
    },
    "median_return_pct": {
      "type": "number",
      "description": "The middle outcome, on the margin."
    },
    "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."
    },
    "best_pct": {
      "type": "number",
      "description": "The best day. It is the one you were shown, and it is not hidden here."
    },
    "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."
    },
    "source": {
      "type": "string",
      "description": "The public file these numbers come from."
    }
  },
  "description": "How that trade ended, across every possible starting day."
}
🟢drawdown_check(coin, days)

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. Use when a return is quoted for holding a coin ("BTC did +150% in a year") and you want the fall endured on the way. With leverage use leverage_survival; to test a stop that cuts the fall, stop_loss_check.

Eingabe-Schema

{
  "type": "object",
  "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.",
      "enum": [
        30,
        90,
        365,
        730
      ]
    }
  },
  "required": [
    "coin",
    "days"
  ],
  "description": "The hold you want opened on every day there has been."
}

Ausgabe-Schema

{
  "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."
    },
    "starts": {
      "type": "number",
      "description": "Start days tested. Fewer than 120 and we refuse to give a percentage."
    },
    "median_worst_fall_pct": {
      "type": "number",
      "description": "The middle start's worst fall from its own entry price within the hold."
    },
    "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."
    },
    "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_return_pct": {
      "type": "number",
      "description": "How the middle start ended."
    },
    "share_in_profit_pct": {
      "type": "number",
      "description": "Share of starts that ended up."
    },
    "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."
    },
    "asset_max_drawdown": {
      "type": "object",
      "description": "The coin's own biggest top-to-bottom fall, with dates and days to recover, for comparison."
    },
    "model": {
      "type": "string",
      "description": "The assumptions, stated."
    },
    "source": {
      "type": "string",
      "description": "The public file these numbers come from."
    }
  },
  "description": "What holding that coin for that long cost, across every possible starting day."
}
🟢diversification_check(coins, days)

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. Use when a basket of two or more coins is called diversified or hedged. For one coin use drawdown_check; for two or three coins side by side on every check, coin_comparison.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "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."
    },
    "days": {
      "type": "number",
      "description": "Window ending on the last day of the data: 90, 365 or 730. Defaults to 365.",
      "enum": [
        90,
        365,
        730
      ],
      "default": 365
    }
  },
  "required": [
    "coins",
    "days"
  ],
  "description": "The basket you want measured."
}

Ausgabe-Schema

{
  "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."
    },
    "average_pair_correlation": {
      "type": "number",
      "description": "Pearson correlation of daily log returns, averaged over every pair in the basket."
    },
    "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."
    },
    "correlation_with_btc": {
      "type": "object",
      "description": "Each coin's correlation with bitcoin in the window."
    },
    "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."
    },
    "all_coins_we_hold": {
      "type": "object",
      "description": "What every coin we hold, at equal weights, adds up to — the ceiling, for comparison."
    },
    "model": {
      "type": "string",
      "description": "The assumptions, stated."
    },
    "source": {
      "type": "string",
      "description": "The public file these numbers come from."
    }
  },
  "description": "What that basket adds up to, and what it did on the bad days."
}
🟢averaging_in_check(coin, days, instalments)

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. Use for dollar-cost averaging versus lump sum on one coin. For claims about particular days or months use best_days_check or calendar_check; for the fall after a single buy, drawdown_check.

Eingabe-Schema

{
  "type": "object",
  "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.",
      "enum": [
        90,
        365,
        730
      ]
    },
    "instalments": {
      "type": "string",
      "description": "How often a slice goes in: weekly or monthly. Defaults to weekly.",
      "enum": [
        "weekly",
        "monthly"
      ],
      "default": "weekly"
    }
  },
  "required": [
    "coin",
    "days",
    "instalments"
  ],
  "description": "The coin and the window you want compared."
}

Ausgabe-Schema

{
  "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."
    },
    "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."
    },
    "spreading_won_pct": {
      "type": "number",
      "description": "The same as a share of starts."
    },
    "median_lump_sum_pct": {
      "type": "number",
      "description": "Middle start, all in on day one."
    },
    "median_spread_pct": {
      "type": "number",
      "description": "Middle start, spread out."
    },
    "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."
    },
    "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."
    },
    "p05_lump_sum_pct": {
      "type": "number",
      "description": "Fifth percentile of starts, lump sum: one worst day is an anecdote."
    },
    "p05_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."
    },
    "share_in_profit_spread_pct": {
      "type": "number",
      "description": "The same for spreading."
    },
    "model": {
      "type": "string",
      "description": "The assumptions, stated: cash not yet in earns nothing (against spreading), no fees (in favour of spreading)."
    },
    "source": {
      "type": "string",
      "description": "The public file these numbers come from."
    }
  },
  "description": "What each way of entering did, over every possible start day."
}
🟢stop_loss_check(coin, days, stop)

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. Use when asked whether a stop-loss protects a spot buy-and-hold. For leveraged positions, where liquidation is the stop, use leverage_survival; for a rule with a stop and a take-profit, strategy_grid_lookup.

Eingabe-Schema

{
  "type": "object",
  "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.",
      "enum": [
        30,
        90,
        365,
        730
      ]
    },
    "stop": {
      "type": "number",
      "description": "How far below the entry, in percent: 5, 10, 15, 20 or 30. 0.05 is read as 5.",
      "enum": [
        5,
        10,
        15,
        20,
        30
      ]
    }
  },
  "required": [
    "coin",
    "days",
    "stop"
  ],
  "description": "The coin, how long you meant to hold, and the stop."
}

Ausgabe-Schema

{
  "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."
    },
    "buys": {
      "type": "number",
      "description": "Start days tested. Fewer than 120 and we refuse to give a percentage."
    },
    "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."
    },
    "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."
    },
    "stop_beat_holding": {
      "type": "number",
      "description": "Buys on which the stop ended strictly ahead of holding."
    },
    "stop_beat_holding_pct": {
      "type": "number",
      "description": "The same as a share of buys."
    },
    "median_with_stop_pct": {
      "type": "number",
      "description": "Middle buy, with the stop."
    },
    "median_without_stop_pct": {
      "type": "number",
      "description": "Middle buy, just holding. The alternative, always."
    },
    "mean_with_stop_pct": {
      "type": "number",
      "description": "Average buy, with the stop."
    },
    "mean_without_stop_pct": {
      "type": "number",
      "description": "Average buy, holding. Skewed by a few huge winners."
    },
    "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."
    },
    "worst_without_stop_pct": {
      "type": "number",
      "description": "The same, holding."
    },
    "p05_with_stop_pct": {
      "type": "number",
      "description": "Fifth percentile, with the stop: what the stop actually buys."
    },
    "p05_without_stop_pct": {
      "type": "number",
      "description": "The same, holding."
    },
    "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."
    },
    "median_days_to_fire": {
      "type": "number",
      "description": "Among the buys it fired on. Null when it never fired."
    },
    "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."
    },
    "source": {
      "type": "string",
      "description": "The public file these numbers come from."
    }
  },
  "description": "What the stop did to every possible buy, next to holding."
}
🟢copy_trading_check(ranked_by, top_pct)

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. Use when someone proposes copying top traders, a leaderboard or signal leaders. Takes no account address. To place one specific return on the leaderboard use leaderboard_rank_check; to ask whether luck explains a record, overfitting_odds.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "ranked_by": {
      "type": "string",
      "description": "return (default) or profit.",
      "enum": [
        "return",
        "profit"
      ],
      "default": "return"
    },
    "top_pct": {
      "type": "number",
      "description": "10 (default) or 1. 0.1 is read as 10.",
      "enum": [
        10,
        1
      ],
      "default": 10
    }
  },
  "required": [
    "ranked_by",
    "top_pct"
  ],
  "description": "Which ranking and which top group. Both optional."
}

Ausgabe-Schema

{
  "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."
    },
    "times_in_top": {
      "type": "number",
      "description": "Times an account finished a month in the top group."
    },
    "repeated": {
      "type": "number",
      "description": "Of those, times it was in the top again next month."
    },
    "repeated_pct": {
      "type": "number",
      "description": "The same as a share."
    },
    "chance_pct": {
      "type": "number",
      "description": "What picking accounts at random gives. The alternative, always."
    },
    "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."
    },
    "stopped_trading": {
      "type": "number",
      "description": "Counted as not repeating."
    },
    "model": {
      "type": "string",
      "description": "The method, stated."
    },
    "source": {
      "type": "string",
      "description": "The public file these numbers come from."
    }
  },
  "description": "What one month's top did the next month, next to chance."
}
🟢leaderboard_rank_check(return_pct, window)

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. Use when a trader or an ad quotes a return ("+340% this month") and you want to know how rare it is. Hyperliquid accounts only. Whether last month's top accounts stay on top is copy_trading_check; whether luck explains a win rate, overfitting_odds.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "return_pct": {
      "type": "number",
      "description": "In percent: 340 means +340%."
    },
    "window": {
      "type": "string",
      "description": "day, week, month (default) or allTime.",
      "enum": [
        "day",
        "week",
        "month",
        "allTime"
      ],
      "default": "month"
    }
  },
  "required": [
    "return_pct",
    "window"
  ],
  "description": "The return you were shown, and over what window."
}

Ausgabe-Schema

{
  "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."
    },
    "accounts_that_traded": {
      "type": "number",
      "description": "The denominator."
    },
    "same_or_better": {
      "type": "number",
      "description": "Accounts at that return or above."
    },
    "one_in": {
      "type": "number",
      "description": "One account in how many."
    },
    "percentile": {
      "type": "number",
      "description": "Share of accounts below it."
    },
    "median_return_pct": {
      "type": "number",
      "description": "The middle account, same window."
    },
    "share_in_profit_pct": {
      "type": "number",
      "description": "Accounts in profit, same window."
    },
    "model": {
      "type": "string",
      "description": "The method, stated."
    },
    "source": {
      "type": "string",
      "description": "The public file these numbers come from."
    }
  },
  "description": "Where that return lands among every account that traded."
}
🟢calendar_check(coin, calendar)

'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. Tests whether one day of the week, month of the year or hour of the day really beats the rest for a coin. Use for seasonality claims (Uptober, Monday dips, Sell in May). For the claim about missing the market's best days use best_days_check; for when to spread an entry, averaging_in_check.

Eingabe-Schema

{
  "type": "object",
  "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.",
      "enum": [
        "day_of_week",
        "month_of_year",
        "hour_of_day"
      ]
    }
  },
  "required": [
    "coin",
    "calendar"
  ],
  "description": "The coin and which calendar: weekday, month or hour."
}

Ausgabe-Schema

{
  "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."
    },
    "best_bucket": {
      "type": "string",
      "description": "The best bucket by average move, named."
    },
    "best_mean_pct": {
      "type": "number",
      "description": "Its average move. On its own, this is the advertisement."
    },
    "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."
    },
    "worst_bucket": {
      "type": "string",
      "description": "The other end."
    },
    "worst_mean_pct": {
      "type": "number",
      "description": "Its average move."
    },
    "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_best_p95_pct": {
      "type": "number",
      "description": "What chance reaches in one shuffle out of twenty."
    },
    "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."
    },
    "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."
    },
    "shuffles": {
      "type": "number",
      "description": "How many shuffled worlds were tested."
    },
    "round_trip_cost_pct": {
      "type": "number",
      "description": "What entering and exiting once costs, so the edge can be compared with it."
    },
    "edge_covers_cost": {
      "type": "boolean",
      "description": "Whether the average move of the best bucket is bigger than that cost. Usually it is not."
    },
    "buckets": {
      "type": "array",
      "description": "Every bucket: its name, observations, times occurred, mean, median and share of up days."
    },
    "observations": {
      "type": "number",
      "description": "Moves measured across all buckets."
    },
    "history": {
      "type": "object",
      "description": "From, to, days held and which tape."
    },
    "model": {
      "type": "string",
      "description": "The test, stated, including why a monthly p-value flatters itself."
    },
    "page": {
      "type": "string",
      "description": "The page with these exact numbers already in."
    },
    "source": {
      "type": "string",
      "description": "The public file these numbers come from."
    }
  },
  "description": "The bucket, and what chance produces next to it."
}
🟢best_days_check(coin, days, best_days)

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. Use when someone argues for staying invested because missing the best days ruins returns, or for timing the market to dodge the worst ones. Which weekday or month does best is calendar_check.

Eingabe-Schema

{
  "type": "object",
  "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.",
      "enum": [
        90,
        365,
        730
      ]
    },
    "best_days": {
      "type": "number",
      "description": "How many days are missed: 1, 5, 10 or 20. Defaults to 10, the number in the claim.",
      "enum": [
        1,
        5,
        10,
        20
      ],
      "default": 10
    }
  },
  "required": [
    "coin",
    "days",
    "best_days"
  ],
  "description": "The coin, the window, and how many days you would miss."
}

Ausgabe-Schema

{
  "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."
    },
    "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."
    },
    "median_without_best_pct": {
      "type": "number",
      "description": "The same window without its best days. This is the half of the claim you get shown."
    },
    "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."
    },
    "cost_of_missing_best_pp": {
      "type": "number",
      "description": "Percentage points the best days were worth."
    },
    "gift_of_missing_worst_pp": {
      "type": "number",
      "description": "Percentage points dodging the worst days would have paid."
    },
    "share_in_profit_pct": {
      "type": "number",
      "description": "Windows that ended in profit, lived whole."
    },
    "share_in_profit_without_best_pct": {
      "type": "number",
      "description": "The same, without the best days."
    },
    "share_in_profit_without_worst_pct": {
      "type": "number",
      "description": "The same, without the worst 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."
    },
    "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."
    },
    "next_to_means_within_days": {
      "type": "number",
      "description": "What «next to» means, in days."
    },
    "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."
    },
    "history": {
      "type": "object",
      "description": "From, to, days held and which tape."
    },
    "model": {
      "type": "string",
      "description": "What missing a day means here, and what is not charged."
    },
    "page": {
      "type": "string",
      "description": "The page with these exact numbers already in."
    },
    "source": {
      "type": "string",
      "description": "The public file these numbers come from."
    }
  },
  "description": "Both halves of the claim, over the same windows."
}
🟢coin_comparison(coins, days, leverage)

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. Use when two or three coins are being compared or chosen between. For one coin or one question the specific check gives more detail: drawdown_check, leverage_survival, averaging_in_check, stop_loss_check, diversification_check.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "coins": {
      "type": "string",
      "description": "Two or three tickers, comma-separated: BTC,ETH,SOL. Kept in the order sent."
    },
    "days": {
      "type": "number",
      "description": "90, 365 (default) or 730.",
      "enum": [
        90,
        365,
        730
      ],
      "default": 365
    },
    "leverage": {
      "type": "number",
      "description": "For the leverage row. Default 25.",
      "default": 25
    }
  },
  "required": [
    "coins",
    "days",
    "leverage"
  ],
  "description": "The coins, and optionally the window and the leverage."
}

Ausgabe-Schema

{
  "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."
    },
    "rows": {
      "type": "array",
      "description": "Per coin: the drawdown, leverage, averaging-in and stop-loss answers, and its correlation with bitcoin (null for bitcoin itself)."
    },
    "model": {
      "type": "string",
      "description": "The method, stated."
    },
    "source": {
      "type": "string",
      "description": "The public files these numbers come from."
    }
  },
  "description": "One row per coin, in the order sent."
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet12 Tools