80trust / 100

Tasignal Backtest

by TASignal by AgentGate in Markets & finance

x402 APIPassing, checked 1 h ago

Crypto strategy backtesting API. Backtest a rule-based strategy (sma_cross, ema_cross, rsi_reversion, breakout, macd_cross) on up to 2000 closed candles of any crypto asset: signals on close, next-open fills, fees per side, long-only or long/short. Not financial advice. Past performance does not guarantee future results. Search intents: crypto backtest api, backtest trading strategy, sma crossover backtest, rsi strategy test, trading strategy api, quant backtesting.

GET
https://api.youraitools.co/tasignal/v1/backtest
Price
$0.05
per call in USDC
Uptime
100%
last 30 days
Response time
33 ms
376 ms slowest 5%
Last check
Passed
1 h ago, next any minute now

Run a free test callHow to call it

Reliability

All checks passedSome failedAll failedNot checked

Status and outage history · Atom feed · Watch with other listings

How to call it

GET https://api.youraitools.co/tasignal/v1/backtest

Each call costs $0.05 in USDC on Polygon, paid with the request over x402.

Run a free test callOne unpaid request, the way an agent sends it. You see the payment challenge it gets back. Nothing is charged.

Example request

From the listing.

GET https://api.youraitools.co/tasignal/v1/backtest?fast=20&slow=50&strategy=ema_cross&symbol=SOL&timeframe=4h

Parameters

ParameterTypeRequiredDescription
barsintegerNoCandles to test, 100-2000 (default 500)
directionstringNodefault long_only One of: long_only, long_short.
fastintegerNoFast period (sma_cross/ema_cross default 20, macd_cross 12)
fee_bpsnumberNoFee per side in basis points (default 5)
lowernumberNoRSI entry level for longs (default 30)
periodintegerNoRSI period (default 14) or breakout lookback (default 20)
signalintegerNoMACD signal period (default 9)
slowintegerNoSlow period (sma_cross/ema_cross default 50, macd_cross 26)
strategystringYesStrategy rule One of: sma_cross, ema_cross, rsi_reversion, breakout, macd_cross.
symbolstringYesBase asset ticker, e.g. BTC, ETH, SOL, HYPE (BTC-PERP, ETH-USD and SOLUSDT are accepted too)
timeframestringNoCandle timeframe: 15m, 1h, 4h or 1d (default 1h; risk default 4h) One of: 15m, 1h, 4h, 1d.
uppernumberNoRSI entry level for shorts / exit (default 70)

Example response

The provider's example. We can't check it without paying.

Example response, 85 lines
{
  "candles_used": 500,
  "checked_at": "2026-10-22T19:00:54.904Z",
  "confidence": "high",
  "disclaimer": "Not financial advice. Past performance does not guarantee future results. Technical indicators, risk metrics and backtests describe historical prices only; they are not predictions or trade recommendations. TASignal never trades, holds funds or keys.",
  "market": "SOL",
  "result": {
    "annualized_return_pct": 464.18,
    "assumptions": "Signals on candle close, fills at the next candle open, fees per side as set; no slippage, funding, borrow or liquidity limits; position size 100% of equity, no leverage.",
    "avg_trade_pct": 19.972,
    "buy_and_hold_return_pct": 36.933,
    "current_position": "flat",
    "equity_curve": [
      [
        "2026-08-08T16:00:00.000Z",
        0.99632
      ],
      [
        "2026-08-23T16:00:00.000Z",
        1.24486
      ],
      [
        "2026-09-07T16:00:00.000Z",
        1.36524
      ],
      [
        "2026-09-22T16:00:00.000Z",
        1.45808
      ],
      [
        "2026-10-07T16:00:00.000Z",
        1.42764
      ],
      [
        "2026-10-22T12:00:00.000Z",
        1.42693
      ]
    ],
    "excess_vs_buy_and_hold_pct": 5.759,
    "exposure_pct": 69.78,
    "fees_bps_per_side": 5,
    "last_trades": [
      {
        "entry": 76.373,
        "entry_time": "2026-08-08T16:00:00.000Z",
        "exit": 99.676,
        "exit_time": "2026-09-10T16:00:00.000Z",
        "return_pct": 30.447,
        "side": "long"
      },
      {
        "entry": 105.74,
        "entry_time": "2026-09-18T12:00:00.000Z",
        "exit": 115.84,
        "exit_time": "2026-10-07T20:00:00.000Z",
        "return_pct": 9.497,
        "side": "long"
      }
    ],
    "max_drawdown_pct": -10.327,
    "period": {
      "bars": 450,
      "from": "2026-08-08T16:00:00.000Z",
      "to": "2026-10-22T16:00:00.000Z"
    },
    "profit_factor": null,
    "sharpe_annual": 3.869,
    "total_return_pct": 42.693,
    "trades": 2,
    "win_rate_pct": 100
  },
  "source": "hyperliquid",
  "sources_failed": [],
  "strategy": {
    "direction": "long_only",
    "name": "ema_cross",
    "params": {
      "fast": 20,
      "slow": 50
    }
  },
  "symbol": "SOL",
  "tier": "backtest",
  "timeframe": "4h"
}

Call it from code

The curl command shows the payment challenge. The JavaScript and Python versions pay and call, and never pay more than $0.05.

curl: see the payment challenge
# bash or zsh: see the payment challenge. Nothing is charged.
curl -sS -g -i 'https://api.youraitools.co/tasignal/v1/backtest?fast=20&slow=50&strategy=ema_cross&symbol=SOL&timeframe=4h'

# x402 v2 sends the challenge base64-encoded in the PAYMENT-REQUIRED header (v1 sends it in the body).
# To read the header:
curl -sS -g -o /dev/null -D - 'https://api.youraitools.co/tasignal/v1/backtest?fast=20&slow=50&strategy=ema_cross&symbol=SOL&timeframe=4h' \
  | grep -i '^payment-required:' | cut -d' ' -f2 | tr -d '\r' | base64 --decode
JavaScript: pay and call
// npm i @x402/fetch @x402/evm viem
import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

// Pays at most $0.05 per call.
const client = new x402Client().setSpendControls({ maxAmountPerPayment: "$0.05" });
registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.EVM_PRIVATE_KEY) });
const pay = wrapFetchWithPayment(fetch, client);

// Not sure it's safe to pay? ToolVet checks it first for $0.005. Pay for that from a separate
// client: this one is capped at $0.05 per payment. GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fapi.youraitools.co%2Ftasignal%2Fv1%2Fbacktest
const res = await pay("https://api.youraitools.co/tasignal/v1/backtest?fast=20&slow=50&strategy=ema_cross&symbol=SOL&timeframe=4h");
console.log(res.status, await res.text());
Python: pay and call
# pip install "x402[requests,evm]"
import os
from eth_account import Account
from x402 import x402ClientSync
from x402.http.clients import x402_requests
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact.register import register_exact_evm_client

# Pays at most $0.05 per call.
client = x402ClientSync().set_spend_controls({"max_amount_per_payment": "$0.05"})
register_exact_evm_client(client, EthAccountSigner(Account.from_key(os.environ["EVM_PRIVATE_KEY"])))

with x402_requests(client) as session:
    res = session.get("https://api.youraitools.co/tasignal/v1/backtest?fast=20&slow=50&strategy=ema_cross&symbol=SOL&timeframe=4h")
    print(res.status_code, res.text)

Security scan

No findings

We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTimePrice
1 h agoPassed40219 ms$0.05
9 h agoPassed40225 ms$0.05
17 h agoPassed40220 ms$0.05
24 h agoPassed40233 ms$0.05
32 h agoPassed40218 ms$0.05
Show 9 older checks
39 h agoPassed402376 ms$0.05
47 h agoPassed40218 ms$0.05
2 days agoPassed40253 ms$0.05
3 days agoPassed40243 ms$0.05
3 days agoPassed40245 ms$0.05
3 days agoPassed40289 ms$0.05
3 days agoPassed40267 ms$0.05
4 days agoPassed40218 ms$0.05
4 days agoPassed402165 ms$0.05