Skip to content
Consumer fintechSoftware only

Trading terminal and analytics software testing

FintechAssuranceLabs tests trading terminals, charting, and analytics subscriptions, products like TradingView and trading journal apps. Trading tool testing covers real-time and delayed market data entitlements, exchange usage reporting, chart and indicator math, backtest fills, subscription gating, and order handoff to broker APIs, with the evidence exchanges, brokers, and enterprise buyers request.

What breaks in trading tools and what it costs

A trading tool earns subscription revenue, and its real-time tiers carry per-subscriber display fees payable to exchanges or plan administrators, so one entitlement or order defect hits revenue and the fee bill at once.

  • Nonprofessional status taken from one checkbox. Signup asks once whether the user is a professional, and company plans report every seat as a nonprofessional. The real-time add-on is priced on nonprofessional fees, so each misclassified seat loses the fee difference. Under the UTP Plan data policies (published September 2023), reduced nonprofessional rates apply to individuals using data for personal reasons, and a nonprofessional subscriber that is not a natural person, or that is engaged as an investment adviser, is misclassified and billable at professional rates. A Market Data Review can extrapolate the liability from a sample error rate, covers the three years before the review, and adds interest to the back billing.
  • Free tier that is not delayed. The free tier reads from the same quote cache as the paid tier, a cache miss falls through to the live feed, and the mobile widget renders without a delay label. Free users see real-time prices without buying the upgrade, and the vendor distributes real-time data it does not report. The UTP policies set a 15-minute Delay Interval, treat data disseminated before it as real-time, and state that a delay message must appear prominently on all displays of delayed data, including mobile devices.
  • Entitlement that outlives the payment. A cancellation or failed renewal stops billing, but the webhook that revokes the data entitlement is dropped, or one login streams on three devices. If usage reports come from entitlement records, the vendor pays display fees for users who no longer pay. If usage reports come from billing records, the report under-counts, and the gap returns as back billing with interest. The UTP policies prohibit simultaneous access by one user ID unless the vendor records, tracks, and reports the sessions, and give only two months after the due date to revise a report for retroactive credits.
  • Backtest filled on the bar that produced the signal. The strategy engine generates a signal from a bar's close and fills the order at that same close, or it reads a higher-timeframe value that was not final at that historical bar. The tier sold on backtesting then reports returns no live account reproduces, which turns into refunds and cancellations. For an enterprise buyer that is a registered investment adviser, a backtest shown in an advertisement is hypothetical performance under SEC Marketing Rule 206(4)-1(e)(8), and paragraph (d)(6)(ii) requires information that lets the audience understand the criteria and assumptions. An undocumented fill assumption blocks that disclosure and the enterprise renewal.
  • Chart order sent twice to the broker. The chart trading panel posts an order to the broker's REST API, the response times out, and the retry sends a new request without the original client order ID. The user now holds twice the intended position. SEC Rule 15c3-5(c)(1)(ii) requires a broker with market access to have controls reasonably designed to reject orders that indicate duplicative orders, so a broker that sees repeated duplicates from one integration can suspend it and remove chart trading from the product.

Licence flag and the evidence buyers, exchanges, and brokers ask for

Trading tools carry licence flag "no": the software displays data and hands orders to a licensed broker, so evidence requests come from enterprise buyers, exchange data teams, and integrating brokers.

Enterprise buyers

Firms that roll a trading tool out to staff send a security questionnaire, ask for the vendor's SOC 2 report, and in the EU add GDPR questions about journals and watchlists. Evidence we produce:

  • authentication, session expiry, and role tests for team workspaces and shared layouts
  • tenant isolation tests showing one firm's scripts, watchlists, and journals stay invisible to another firm
  • backtest method documentation: fill timing, commission and slippage inputs, and data adjustments, for buyers that publish hypothetical performance

United States

The UTP Plan requires vendors to submit usage reports no later than 15 days after the end of each service period, and a Market Data Review asks the vendor to demonstrate its entitlement systems, usage reporting procedures, and data display. Brokers that place an order ticket next to a chart read Rule 603(c) of Regulation NMS, which bars a securities information processor, broker, or dealer from displaying NMS stock quotes or trades where a trading or order-routing decision can be implemented without an equivalent consolidated display. Signal features raise the adviser question: section 202(a)(11)(D) of the Advisers Act excludes the publisher of a bona fide financial publication of general and regular circulation, and Lowe v. SEC (10 June 1985) found newsletters excluded because they did not offer "individualized advice attuned to any specific portfolio or to any client's particular needs". Whether a feature stays within the exclusion is a legal question. Evidence we produce:

  • entitlement, delay, and classification reconciliation per subscriber per month, traceable to the usage report file
  • feed source tests for every quote shown next to an order ticket
  • duplicate order, retry, and client order ID tests for each broker API integration
  • tests showing that signals and alerts on one plan return the same output for every user, whatever the user's holdings

European Union

Regulation (EU) No 596/2014 (MAR) Article 3(1)(35) defines investment recommendations as information recommending or suggesting an investment strategy, intended for distribution channels or for the public. Article 20(1) requires persons who produce or disseminate them to take reasonable care that the information is objectively presented and to disclose interests or conflicts. Delegated Regulation (EU) 2016/958 Article 3(1) requires producers to distinguish facts from opinions, label projections and price targets, and show the date and time production was completed. Where published ideas or signals meet the MAR definition, evidence we produce: rendering tests showing producer identity, completion date and time, and projection labels on every published idea.

Regulatory and exchange policy sources in this section were checked on 2026-09-16.

Backtesting, charting, and data entitlement test scenarios

We run these scenarios with calculation checks from financial calculation testing and plan and renewal checks from subscription billing testing:

  1. Sign up an individual, a company seat, and a user who later reports a registration, and check each professional flag and usage report row.
  2. Request free-tier charts on a cache miss, a reconnect, and a symbol change, and measure price age against the 15-minute Delay Interval on web, mobile, widgets, and shared images.
  3. Upgrade, downgrade, cancel, refund, charge back, and fail a renewal, then compare entitlements, billing, and the usage report for each day.
  4. Log in with one user ID on several devices, and verify that the session limit holds or each session reaches the usage report.
  5. Calculate SMA, EMA, RSI with Wilder smoothing, MACD, and VWAP on synthetic series with gaps and halts, and compare warm-up bars and tick-size rounding with an independent reference model.
  6. Build OHLCV bars from trade ticks across daylight saving changes, extended hours, and corrected trades, and recalculate indicators across split and dividend adjustments.
  7. Replay a strategy bar by bar with next-open fills, higher-timeframe values released only at their close, commissions, slippage, and delisted symbols, and match the backtest report to the replay.
  8. Fire price and indicator alerts through feed gaps and failover, and check duplicates, misses, and latency under performance testing load.
  9. Time out a broker order request, retry with the same client order ID, send quantities in shares, lots, and contracts, roll a futures symbol, and expire the OAuth token mid-order.
  10. Import broker statements with duplicate rows, partial fills, and fees, and reconcile journal profit and loss per trade to the statement.

Integrations and protocols to cover

  • Consolidated and direct feeds: UTP and CTA consolidated data, direct exchange feeds, and vendor WebSocket streams, with sequence numbers, gap recovery, and heartbeats.
  • Entitlement and usage reporting: entitlement services, subscriber agreement records, and monthly usage report files.
  • Broker order APIs: REST and WebSocket order endpoints with OAuth 2.0 tokens, and FIX NewOrderSingle and ExecutionReport messages where a broker offers FIX. Broker-side routing and margin belong to trading and investment platform testing and the investing and trading app segment.
  • Subscription billing: billing provider webhooks and app store purchase notifications that switch data tiers.
  • User scripting runtimes: indicator and strategy languages, and version upgrades that change calculated values.

Sample deliverable

Sample, synthetic data

rule and threshold test matrixRule and threshold test matrix: transaction monitoring, disputes, collections, expense, market data, and claims rules
Rule and threshold test matrix: transaction monitoring, disputes, collections, expense, market data, and claims rules
Rule IDRule and referenceTest values below, at, and above the boundaryExpected outcomeActual outcomeResult
TM-STR-01Transaction monitoring structuring rule: open an alert when one customer makes two or more cash deposits on one business day, each below USD 10,000.00, that total more than USD 10,000.00. Built on 31 CFR 1010.313(b): multiple currency transactions shall be treated as a single transaction if the institution knows they are by or on behalf of any person and total more than $10,000 during any one business dayBelow: two cash deposits totalling USD 9,999.99; at: two cash deposits totalling USD 10,000.00; above: two cash deposits totalling USD 10,000.01The USD 9,999.99 and USD 10,000.00 totals open no structuring alert; the USD 10,000.01 total opens a structuring alert and a currency transaction report flagThe USD 9,999.99 and USD 10,000.00 totals opened no structuring alert; the USD 10,000.01 total opened a structuring alert and a currency transaction report flagPassed, 3 of 3 test values, run 2026-09-14
SAN-SCORE-01Sanctions name-match score threshold: open a screening alert and hold the payment when the name match score against a sanctions list entry is 85 or higher. Configured screening policy; no regulation sets the scoreBelow: match score 84; at: match score 85; above: match score 86, each for a synthetic customer name against a synthetic list entryMatch score 84 opens no alert; match scores 85 and 86 open a screening alert and hold the paymentMatch scores 84 and 85 opened no alert and released the payment; match score 86 opened a screening alert and held the paymentFailed: the comparator uses greater than 85 instead of 85 or higher; defect DEF-2210, critical severity, blocks release
CBK-DL-13.1Chargeback response deadline for Visa Dispute Condition 13.1 (Merchandise/Services Not Received): block submission of the response package after the network time limit. Visa Core Rules and Visa Product and Service Rules, 18 April 2026 edition, section 11.2.3, Table 11-2: the Dispute Response time limit is 30 calendar days from the Dispute Processing Date, with listed regional exceptions for some domestic transactionsBelow: calendar day 29 after the Dispute Processing Date; at: calendar day 30; above: calendar day 31, all dates counted in UTCCalendar days 29 and 30 accept the response package for submission; calendar day 31 blocks submission and marks the dispute case as expiredCalendar days 29 and 30 accepted the response package for submission; calendar day 31 blocked submission and marked the dispute case as expiredPassed, 3 of 3 test values, run 2026-09-14
COL-CALL-01Regulation F call frequency: block a further collection call to a person about a particular debt after seven calls within seven consecutive days. 12 CFR 1006.14(b)(2)(i)(A) and (b)(2)(ii): subject to the exclusions in (b)(3), a debt collector is presumed to comply if it places a telephone call to a particular person about a particular debt not more than seven times within seven consecutive days, and is presumed to violate the rule if it places calls in excess of that frequencyBelow: sixth call to one person about one debt within seven consecutive days; at: seventh call; above: eighth callThe sixth and seventh calls are placed; the eighth call is blocked by the dialer and rescheduled after the seven-consecutive-day periodThe sixth and seventh calls were placed; the eighth call was blocked by the dialer and rescheduled after the seven-consecutive-day periodPassed, 3 of 3 test values, run 2026-09-14
EXP-RCPT-01Expense policy receipt threshold: require a receipt before submission of a non-lodging expense of USD 75.00 or more. 26 CFR 1.274-5(c)(2)(iii)(A)(2): except as provided in (c)(2)(iii)(B), documentary evidence is required for any expenditure other than lodging of $75 or more, except that documentary evidence for transportation charges is not required if not readily availableBelow: meal expense of USD 74.99; at: meal expense of USD 75.00; above: meal expense of USD 75.01The USD 74.99 meal expense submits without a receipt; the USD 75.00 and USD 75.01 meal expenses are blocked until a receipt is attachedThe USD 74.99 and USD 75.00 meal expenses submitted without a receipt; the USD 75.01 meal expense was blocked until a receipt was attachedFailed: the rule uses greater than USD 75.00 instead of USD 75.00 or more; defect DEF-2213, medium severity, fix scheduled for the next release and does not block this release
MD-ENT-01Market data non-professional subscriber entitlement: grant the non-professional entitlement only to a natural person who is not registered or qualified in any capacity with the SEC, the CFTC, any state securities agency, or any securities exchange or association; not engaged as an investment adviser under Section 202(a)(11) of the Investment Advisers Act of 1940, whether or not registered; and not employed by an exempt bank or organization to perform functions that would require registration. Nasdaq Equity 7, Section 147(d)(4)(A), as quoted in SEC Release No. 34-94466 of 18 March 2022Below: natural person with no registration and no adviser role; at: natural person acting as an unregistered investment adviser; above: subscriber account opened in a company nameOnly the natural person with no registration and no adviser role receives the non-professional entitlement; the unregistered investment adviser and the company account receive the professional entitlementThe natural person with no registration and the unregistered investment adviser received the non-professional entitlement; the company account received the professional entitlementFailed: the status attestation checks registration only, so subscriber counts reported to the exchange are wrong; defect DEF-2211, high severity, blocks release
CLM-AUTO-01Claim auto-approval limit: approve a claim without adjuster review when the payable amount after the deductible is XTS 2,500.00 or less. Configured claims authority limit; no regulation sets the amountBelow: payable amount of XTS 2,499.99; at: payable amount of XTS 2,500.00; above: payable amount of XTS 2,500.01The XTS 2,499.99 and XTS 2,500.00 claims are approved automatically and queued for payment; the XTS 2,500.01 claim goes to adjuster review with no payment queuedThe XTS 2,499.99 and XTS 2,500.00 claims were approved automatically and queued for payment; the XTS 2,500.01 claim went to adjuster review with no payment queuedPassed, 3 of 3 test values, run 2026-09-14

Rule IDs, defect IDs, customers, claims, and run dates are synthetic, USD appears only where a regulation states the threshold in USD while configured limits use XTS (the ISO 4217 test code), and rule references were checked on 2026-09-16 against eCFR, the Visa Core Rules and Visa Product and Service Rules of 18 April 2026, and SEC Release No. 34-94466.

Questions

How to backtest a trading strategy?

To backtest a trading strategy, write the entry, exit, and position sizing rules before looking at results, then run the rules over historical prices adjusted for splits and dividends. Each simulated order should fill only on prices available after the signal, such as the next bar's open. A credible backtest deducts commissions and slippage, keeps delisted symbols in the universe, and holds back a later period for out-of-sample validation.

How to test a trading strategy?

A trading strategy is tested in three stages: a backtest on historical prices, an out-of-sample or walk-forward test on data the rules were not tuned on, and forward testing with paper trades on live prices. A trading strategy that stays profitable across all three stages after commissions and slippage is less likely to reflect overfitting to one historical period.

What is a non professional subscriber?

A nonprofessional subscriber is a natural person who uses market data solely for personal, non-business purposes and is not registered or qualified with the SEC, the CFTC, a state securities agency, or any securities or commodities exchange or association, and is not engaged as an investment adviser. The UTP Plan data policies published in September 2023 apply lower fees to nonprofessional subscribers than to professionals.

Scope testing for your trading tool

Send your data feeds, subscription tiers, and broker integrations, and we return a test scope with the evidence exchange data teams, brokers, and enterprise buyers read.

Scope your testing