{
  "version": "2026-10-17.1",
  "checked": "2026-10-17",
  "scope": "10 selected named backtesting workflows; documented capabilities, not a whole-market ranking or speed benchmark.",
  "tools": [
    {
      "id": "tradingview",
      "name": "TradingView",
      "edition": "Pine strategy workflow; plan-dependent",
      "mode": "Code",
      "environment": "Browser",
      "costModel": "Freemium",
      "price": null,
      "priceCurrency": "USD",
      "billing": "Check chosen subscription; exchange data extra",
      "assets": {
        "stocks": true,
        "forex": true,
        "futures": true,
        "options": null
      },
      "features": {
        "costs": true,
        "resultExport": true
      },
      "data": "Chart-provider symbol history; plan and exchange entitlement limits",
      "summary": "Useful for chart-based Pine strategy development with a visible order/trade report. A strategy is different from an indicator that only draws historical signals.",
      "limits": "History length, intrabar tools and exports can depend on plan. An option-symbol chart does not establish multi-leg chain, expiry or assignment simulation.",
      "verificationTask": "Use a synthetic gap and verify whether a close-generated signal fills on the following bar. Record emulator settings, commission, slippage and exported tab.",
      "sources": [
        "tv-strategy",
        "tv-export",
        "tv-price"
      ],
      "exportNote": "See named documentation and current entitlement; no native export acceptance test performed."
    },
    {
      "id": "quantconnect",
      "name": "QuantConnect",
      "edition": "Cloud backtesting with LEAN",
      "mode": "Code",
      "environment": "Cloud",
      "costModel": "Tiered",
      "price": null,
      "priceCurrency": "USD",
      "billing": "Cloud compute and data entitlements separate",
      "assets": {
        "stocks": true,
        "forex": true,
        "futures": true,
        "options": true
      },
      "features": {
        "costs": true,
        "resultExport": true
      },
      "data": "Provider datasets and configurable brokerage/reality models",
      "summary": "Code-first multi-asset research in Python or C#, with downloadable orders, trades, result JSON and logs documented separately.",
      "limits": "LEAN source availability does not make cloud compute or every dataset free. Options coverage does not guarantee every exercise/fill/margin assumption matches a broker.",
      "verificationTask": "Run one order in each intended asset class, inspect fill/fee/model configuration and compare GUI timestamps with the UTC export.",
      "sources": [
        "qc-assets",
        "qc-results",
        "qc-models"
      ],
      "exportNote": "See named documentation and current entitlement; no native export acceptance test performed."
    },
    {
      "id": "amibroker",
      "name": "AmiBroker",
      "edition": "Professional new-user licence",
      "mode": "Code",
      "environment": "Windows desktop",
      "costModel": "Paid",
      "price": 379,
      "priceCurrency": "USD",
      "billing": "One-time perpetual licence;24 months updates; data/add-ons extra",
      "assets": {
        "stocks": true,
        "forex": true,
        "futures": true,
        "options": null
      },
      "features": {
        "costs": true,
        "resultExport": null
      },
      "data": "Imported/vendor feeds; subscriptions separate",
      "summary": "AFL portfolio research and backtesting with explicit price variables, delays and account settings. Professional differs from Standard and the Ultimate bundle.",
      "limits": "The 379 USD Professional licence is not the 499 USD UltimatePack. Data-provider coverage and symbol adjustments remain your responsibility; report export format is unverified here.",
      "verificationTask": "Test the same signal with a one-bar delay, compare gross/net results and inspect position sizing and commission settings before batch optimization.",
      "sources": [
        "ami-price",
        "ami-test",
        "ami-products"
      ],
      "exportNote": "See named documentation and current entitlement; no native export acceptance test performed."
    },
    {
      "id": "metatrader5",
      "name": "MetaTrader5",
      "edition": "Desktop Strategy Tester",
      "mode": "Code",
      "environment": "Desktop",
      "costModel": "Zero licence",
      "price": 0,
      "priceCurrency": "USD",
      "billing": "Desktop software free; broker/data/cloud/Market costs separate",
      "assets": {
        "stocks": true,
        "forex": true,
        "futures": true,
        "options": null
      },
      "features": {
        "costs": true,
        "resultExport": true
      },
      "data": "Broker symbol history and selected tick-generation model",
      "summary": "MQL 5 Expert Advisor testing, visual replay and a chronological forward split are documented in the desktop tester.",
      "limits": "Broker symbol/history quality and modeled-tick settings matter. Web/mobile trading access is not the full desktop tester. Options-chain testing not established.",
      "verificationTask": "Record tick mode, history period, spread and commission. Compare one EA run with the same configured forward period and inspect its report.",
      "sources": [
        "mt-free",
        "mt-test",
        "mt-report",
        "mt-save"
      ],
      "exportNote": "See named documentation and current entitlement; no native export acceptance test performed."
    },
    {
      "id": "ninjatrader",
      "name": "NinjaTrader",
      "edition": "Desktop 8 Strategy Analyzer",
      "mode": "Code",
      "environment": "Windows desktop",
      "costModel": "Entitlement-dependent",
      "price": null,
      "priceCurrency": "USD",
      "billing": "Check current platform licence, broker and data terms",
      "assets": {
        "stocks": null,
        "forex": null,
        "futures": true,
        "options": null
      },
      "features": {
        "costs": true,
        "resultExport": null
      },
      "data": "Provider history or local database; local-only setting",
      "summary": "NinjaScript automated strategy backtests, optimization and walk-forward analysis with explicit historical data and commission settings.",
      "limits": "Current futures focus does not establish present equity/Forex entitlement. Live and historical fills can differ, and a saved log is not necessarily an exported full trade ledger.",
      "verificationTask": "Enable the intended commission template, use local-only data for repeatability and save strategy parameters/code revision with the test.",
      "sources": [
        "nt-test",
        "nt-analyzer",
        "nt-home"
      ],
      "exportNote": "See named documentation and current entitlement; no native export acceptance test performed."
    },
    {
      "id": "forex-tester",
      "name": "ForexTester",
      "edition": "Desktop, selected package",
      "mode": "Replay",
      "environment": "Windows desktop",
      "costModel": "Paid",
      "price": null,
      "priceCurrency": "USD",
      "billing": "Desktop licence plus optional data subscription; tax/promo dependent",
      "assets": {
        "stocks": null,
        "forex": true,
        "futures": null,
        "options": null
      },
      "features": {
        "costs": null,
        "resultExport": null
      },
      "data": "Basic versus paid SuperData package; different symbol/tick depth",
      "summary": "Manual Forex replay alongside automated testing in the desktop product. Keep this edition separate from ForexTester Online.",
      "limits": "Trial time/save restrictions and data-package depth can dominate a price comparison. A replay log is not proof of native automated option/futures contract accounting.",
      "verificationTask": "Replay the same interval twice with written entry/exit rules. Record data package, spread assumptions and whether discretionary decisions were changed.",
      "sources": [
        "ft-home",
        "ft-demo"
      ],
      "exportNote": "See named documentation and current entitlement; no native export acceptance test performed."
    },
    {
      "id": "strategyquant",
      "name": "StrategyQuantX",
      "edition": "Visual Builder / selected edition",
      "mode": "Visual builder",
      "environment": "Desktop",
      "costModel": "Paid",
      "price": null,
      "priceCurrency": "USD",
      "billing": "Check edition, package and premium-data entitlements",
      "assets": {
        "stocks": true,
        "forex": true,
        "futures": true,
        "options": null
      },
      "features": {
        "costs": null,
        "resultExport": null
      },
      "data": "Free Forex/CFD data plus edition-dependent premium equities/futures",
      "summary": "Visual and genetic strategy generation, retesting and export of complete source code to supported target platforms.",
      "limits": "Generating many candidates creates selection risk. Code export does not establish identical fills in the target terminal. Premium data inclusion varies by edition.",
      "verificationTask": "Retest a generated rule on untouched dates, then compare its exported source and trade timing in the named target platform with the same data.",
      "sources": [
        "sq-doc",
        "sq-price"
      ],
      "exportNote": "See named documentation and current entitlement; no native export acceptance test performed."
    },
    {
      "id": "backtrader",
      "name": "Backtrader",
      "edition": "Python source library",
      "mode": "Code",
      "environment": "Local Python",
      "costModel": "Zero licence",
      "price": 0,
      "priceCurrency": "USD",
      "billing": "GPL 3 source; data, dependencies and maintenance separate",
      "assets": {
        "stocks": true,
        "forex": null,
        "futures": true,
        "options": null
      },
      "features": {
        "costs": true,
        "resultExport": true
      },
      "data": "You provide and validate historical feeds",
      "summary": "Event-driven Python framework with explicit order lifecycle, commission schemes and configurable slippage. Its quickstart exposes market-order timing.",
      "limits": "Stocklike and futureslike margin/multiplier models differ. Opening slippage defaults must be inspected. CSV/analyzer writer output needs your own setup; library availability is not a hosted service.",
      "verificationTask": "Trace one market order from signal to next-bar fill, enable opening slippage explicitly and verify the analyzer/export records against a hand ledger.",
      "sources": [
        "bt-start",
        "bt-fees",
        "bt-slip",
        "bt-code",
        "bt-writer"
      ],
      "exportNote": "Programmatic analyzer/order records; custom export implementation, not verified one-click GUI CSV."
    },
    {
      "id": "vectorbt",
      "name": "Vectorbt",
      "edition": "Source-available Python edition; PRO excluded",
      "mode": "Code",
      "environment": "Local Python",
      "costModel": "Zero licence",
      "price": 0,
      "priceCurrency": "USD",
      "billing": "Fair-code with CommonsClause; PRO/data separate",
      "assets": {
        "stocks": true,
        "forex": null,
        "futures": null,
        "options": null
      },
      "features": {
        "costs": true,
        "resultExport": true
      },
      "data": "You provide arrays/data; no instrument data licence included",
      "summary": "Array-oriented portfolio research using signal/order functions, fees, fixed fees and slippage. Readable records support reproducible inspection.",
      "limits": "Fair-code terms restrict resale of products mostly consisting of the software. Generic price arrays do not imply full Forex margin, futures multiplier or options lifecycle accounting.",
      "verificationTask": "Shift close-derived signals to the intended execution bar, set the price series explicitly and compare one order record and fee with an independently calculated example.",
      "sources": [
        "vbt-base",
        "vbt-license",
        "vbt-usage"
      ],
      "exportNote": "Programmatic readable records; conversion/export is code-driven, not a hosted CSV workflow."
    },
    {
      "id": "option-omega",
      "name": "OptionOmega",
      "edition": "Essential backtesting",
      "mode": "No-code",
      "environment": "Cloud",
      "costModel": "Paid",
      "price": 49.99,
      "priceCurrency": "USD",
      "billing": "Monthly equivalent billed annually; not month-to-month quote",
      "assets": {
        "stocks": false,
        "forex": false,
        "futures": false,
        "options": true
      },
      "features": {
        "costs": null,
        "resultExport": null
      },
      "data": "Provider options history, finite symbols/regular-session scope",
      "summary": "No-code historical multi-leg options testing. Essential includes backtesting; the cheaper Lite plan is modeling rather than this workflow.",
      "limits": "49.99 USD is an annual-billing monthly equivalent. Trial history/optimization limits differ. Confirm current symbols, bid/ask execution, fees, expirations and assignment handling.",
      "verificationTask": "Create a defined-risk multi-leg example, record exact legs/time/session/fill assumptions and inspect an expiry date. Compare the current supported-symbol list with the setup documentation.",
      "sources": [
        "oo-price",
        "oo-setup"
      ],
      "exportNote": "See named documentation and current entitlement; no native export acceptance test performed."
    }
  ],
  "sources": {
    "tv-strategy": {
      "title": "TradingView Pine strategy concepts",
      "url": "https://www.tradingview.com/pine-script-docs/concepts/strategies/",
      "checked": "2026-10-17",
      "observation": "Pine strategy broker emulator, order timing, commission/slippage and backtesting biases. Chart-symbol history is not an options-chain simulator. Plan/data entitlements still apply.",
      "verification": "Official public documentation; no authenticated/installed provider acceptance test"
    },
    "tv-export": {
      "title": "TradingView strategy report export",
      "url": "https://www.tradingview.com/support/solutions/43000613680-how-to-export-strategy-data/",
      "checked": "2026-10-17",
      "observation": "Documentation describes separate per-tab CSV exports for trades and metrics. Verify current plan entitlement and actual interface; no authenticated export performed.",
      "verification": "Official public documentation; no authenticated/installed provider acceptance test"
    },
    "tv-price": {
      "title": "TradingView subscriptions",
      "url": "https://www.tradingview.com/pricing/",
      "checked": "2026-10-17",
      "observation": "Plan pricing/history/advanced testing entitlements vary; no single monthly amount asserted in this selected workflow comparison.",
      "verification": "Official public documentation; no authenticated/installed provider acceptance test"
    },
    "qc-assets": {
      "title": "QuantConnect asset classes",
      "url": "https://www.quantconnect.com/docs/v2/writing-algorithms/securities/asset-classes",
      "checked": "2026-10-17",
      "observation": "US equity, options, Forex and futures among documented asset classes; datasets and brokerage/reality models determine actual coverage.",
      "verification": "Official public documentation; no authenticated/installed provider acceptance test"
    },
    "qc-results": {
      "title": "QuantConnect backtest results",
      "url": "https://www.quantconnect.com/docs/v2/cloud-platform/backtesting/results",
      "checked": "2026-10-17",
      "observation": "Orders/trades CSV, result JSON, logs and generated reports. GUI times can differ from UTC exports; data access/roles apply.",
      "verification": "Official public documentation; no authenticated/installed provider acceptance test"
    },
    "qc-models": {
      "title": "QuantConnect reality models",
      "url": "https://www.quantconnect.com/docs/v2/writing-algorithms/reality-modeling/key-concepts",
      "checked": "2026-10-17",
      "observation": "Configurable fill, fee, slippage, brokerage and margin models. A model is not evidence of actual fills or profitable execution.",
      "verification": "Official public documentation; no authenticated/installed provider acceptance test"
    },
    "ami-price": {
      "title": "AmiBroker current order page",
      "url": "https://www.amibroker.com/order.html",
      "checked": "2026-10-17",
      "observation": "Professional new-user licence 379 USD perpetual, 24 months included updates. Standard 299 and UltimatePack 499 are different products. Data/add-ons not assumed included.",
      "verification": "Official public documentation; no authenticated/installed provider acceptance test"
    },
    "ami-test": {
      "title": "AmiBroker backtesting guide",
      "url": "https://amibroker.com/guide/h_backtest.html",
      "checked": "2026-10-17",
      "observation": "AFL rules, execution-price variables and high/low range checking. Account settings, delays and commissions determine the model.",
      "verification": "Official public documentation; no authenticated/installed provider acceptance test"
    },
    "ami-products": {
      "title": "AmiBroker products",
      "url": "https://www.amibroker.com/products.html",
      "checked": "2026-10-17",
      "observation": "Stock, futures and Forex analysis with portfolio backtesting; Standard/Professional differ. No options-chain/assignment workflow established here.",
      "verification": "Official public documentation; no authenticated/installed provider acceptance test"
    },
    "mt-free": {
      "title": "MetaTrader5 desktop download",
      "url": "https://www.metatrader5.com/en/download",
      "checked": "2026-10-17",
      "observation": "Free desktop software; Forex/stocks/futures availability depends on broker and symbol data. Market products, cloud compute and broker trading costs are separate.",
      "verification": "Official public documentation; no authenticated/installed provider acceptance test"
    },
    "mt-test": {
      "title": "MetaTrader5 Strategy Tester",
      "url": "https://www.metatrader5.com/en/terminal/help/algotrading/testing",
      "checked": "2026-10-17",
      "observation": "MQL 5 Expert Advisors, visual tests, commission configuration and forward-period splits. Tick model and history quality affect results; mobile/web availability is not proof of full desktop tester.",
      "verification": "Official public documentation; no authenticated/installed provider acceptance test"
    },
    "mt-report": {
      "title": "MetaTrader5 test report",
      "url": "https://www.metatrader5.com/en/terminal/help/algotrading/testing_report",
      "checked": "2026-10-17",
      "observation": "Report includes history quality, modeled ticks, metrics and deals; do not equate history-quality percentage with strategy reliability.",
      "verification": "Official public documentation; no authenticated/installed provider acceptance test"
    },
    "nt-test": {
      "title": "NinjaTrader8 backtest setup",
      "url": "https://static.ninjatrader.com/support/helpGuides/nt8/backtest_a_strategy.htm",
      "checked": "2026-10-17",
      "observation": "NinjaScript strategy, historical data and explicit include-commission setting; local data-only option. Backtest/live discrepancies acknowledged. Export/entitlement not independently established.",
      "verification": "Official public documentation; no authenticated/installed provider acceptance test"
    },
    "nt-analyzer": {
      "title": "NinjaTrader Strategy Analyzer",
      "url": "https://static.ninjatrader.com/support/helpGuides/nt8/strategy_analyzer.htm",
      "checked": "2026-10-17",
      "observation": "Automated strategy analysis, optimization, walk-forward and MonteCarlo workflows. Platform/broker/data entitlement must be checked.",
      "verification": "Official public documentation; no authenticated/installed provider acceptance test"
    },
    "nt-home": {
      "title": "NinjaTrader futures platform",
      "url": "https://ninjatrader.com/",
      "checked": "2026-10-17",
      "observation": "Current provider focus on futures; this directory does not infer current Forex/equity data availability from legacy platform capability.",
      "verification": "Official public documentation; no authenticated/installed provider acceptance test"
    },
    "ft-home": {
      "title": "ForexTester desktop packages",
      "url": "https://desktop.forextester.com/",
      "checked": "2026-10-17",
      "observation": "Desktop manual replay and automated testing. Basic 18 symbol medium-quality history vs paid SuperData; bundles/promotions and VAT complicate a single price. No universal all-in amount asserted.",
      "verification": "Official public documentation; no authenticated/installed provider acceptance test"
    },
    "ft-demo": {
      "title": "ForexTester demo versus registered",
      "url": "https://desktop.forextester.com/demo-vs-registered-version",
      "checked": "2026-10-17",
      "observation": "Trial has time/save restrictions. Basic and SuperData history differ; data subscription and desktop licence are separate components.",
      "verification": "Official public documentation; no authenticated/installed provider acceptance test"
    },
    "sq-doc": {
      "title": "StrategyQuantX current documentation",
      "url": "https://strategyquant.com/doc/strategyquant/",
      "checked": "2026-10-17",
      "observation": "Visual/genetic Builder, retesting and source-code export for MT 4/MT 5/TradeStation/MultiCharts/JForex. Free Forex/CFD data plus edition-dependent premium equities/futures data.",
      "verification": "Official public documentation; no authenticated/installed provider acceptance test"
    },
    "sq-price": {
      "title": "StrategyQuant editions and pricing",
      "url": "https://www.strategyquant.com/pricing/",
      "checked": "2026-10-17",
      "observation": "Edition/package-dependent builder, retester and data terms. Exact checkout price not asserted where current response could not be independently retrieved.",
      "verification": "Official public documentation; no authenticated/installed provider acceptance test"
    },
    "bt-start": {
      "title": "Backtrader quickstart",
      "url": "https://www.backtrader.com/docu/quickstart/quickstart/",
      "checked": "2026-10-17",
      "observation": "Python event-driven strategy examples; normal market order next-bar open and explicit commission setup. Users supply data and implementation.",
      "verification": "Official public documentation; no authenticated/installed provider acceptance test"
    },
    "bt-fees": {
      "title": "Backtrader stock/futures commissions",
      "url": "https://backtrader.com/docu/commission-schemes/commission-schemes/",
      "checked": "2026-10-17",
      "observation": "Stocklike percentage fees versus futures margin/multiplier schemes. A generic price series is not a complete options engine.",
      "verification": "Official public documentation; no authenticated/installed provider acceptance test"
    },
    "bt-slip": {
      "title": "Backtrader slippage",
      "url": "https://www.backtrader.com/docu/slippage/slippage/",
      "checked": "2026-10-17",
      "observation": "Opening-price slippage requires slip_open; high/low matching rules differ by configuration. Read defaults, not just a feature label.",
      "verification": "Official public documentation; no authenticated/installed provider acceptance test"
    },
    "bt-code": {
      "title": "Backtrader source and licence",
      "url": "https://github.com/mementum/backtrader",
      "checked": "2026-10-17",
      "observation": "GPL 3 source project; no software licence fee. Dependencies/data/support have separate maintenance and terms.",
      "verification": "Official public documentation; no authenticated/installed provider acceptance test"
    },
    "bt-writer": {
      "title": "Backtrader WriterFile output",
      "url": "https://backtrader.com/docu/writer/",
      "checked": "2026-10-17",
      "observation": "Configurable CSV stream and analyzer summaries; CSV is not enabled by default. User implementation required.",
      "verification": "Official public documentation; no authenticated/installed provider acceptance test"
    },
    "mt-save": {
      "title": "MetaTrader5 automated tester report output",
      "url": "https://www.metatrader5.com/en/terminal/help/start_advanced/start",
      "checked": "2026-10-17",
      "observation": "Tester Report configuration sets an output filename for test/optimization results; this is distinct from live-account trade history reports.",
      "verification": "Official public documentation; no authenticated/installed provider acceptance test"
    },
    "vbt-usage": {
      "title": "Vectorbt usage examples",
      "url": "https://vectorbt.dev/getting-started/usage/",
      "checked": "2026-10-17",
      "observation": "Stock-price examples and readable records in a Python array workflow; not evidence of a complete derivatives engine.",
      "verification": "Official public documentation; no authenticated/installed provider acceptance test"
    },
    "vbt-base": {
      "title": "Vectorbt portfolio API",
      "url": "https://vectorbt.dev/api/portfolio/base/",
      "checked": "2026-10-17",
      "observation": "Python array/signal/order simulation with fees, fixed_fees and slippage; readable records. Explicit timing and instrument/margin semantics required.",
      "verification": "Official public documentation; no authenticated/installed provider acceptance test"
    },
    "vbt-license": {
      "title": "Vectorbt licence terms",
      "url": "https://vectorbt.dev/terms/",
      "checked": "2026-10-17",
      "observation": "Fair-code Apache 2 with CommonsClause. Free use does not permit selling products/services mostly consisting of the software. Do not label this unrestricted open source or confuse with paid PRO.",
      "verification": "Official public documentation; no authenticated/installed provider acceptance test"
    },
    "oo-price": {
      "title": "OptionOmega current plans",
      "url": "https://optionomega.com/pricing/",
      "checked": "2026-10-17",
      "observation": "Essential backtesting 49.99 USD/month equivalent billed annually; Lite 24.99 annual-equivalent is modeling, not backtesting. Essential/Plus trial 7 days with historical/optimizer limits. Supported symbols finite.",
      "verification": "Official public documentation; no authenticated/installed provider acceptance test"
    },
    "oo-setup": {
      "title": "OptionOmega backtest setup",
      "url": "https://docs.optionomega.com/backtesting/backtest-setup",
      "checked": "2026-10-17",
      "observation": "Options multi-leg tests, regular-session historical data and setup settings. Pricing page current symbol list is broader than older setup list; confirm symbol/date entitlement.",
      "verification": "Official public documentation; no authenticated/installed provider acceptance test"
    }
  },
  "affiliateLinks": false,
  "nativeProviderTests": false
}