TradingView platform reviews

TradingView review for custom indicator and strategy research

TradingView is a practical choice when your research starts with chart data and rules you can express in Pine Script. Its editor, chart plots, simulated strategy report, and exports support a traceable research workflow. The tradeoffs are plan-dependent capacity, separate exchange data entitlements, and a broker emulator whose fills need review. This review includes an account run of both supplied scripts, a downloaded strategy workbook, and a ten-bar indicator calculation check on October 17, 2026. It does not benchmark platform speed or establish investment performance.

See the decision guide

What this review can establish

Pineify publishes this review and offers a separate Pine coding product. The recommendation is a judgment about the documented workflow, without a star rating, speed benchmark, or profitability claim. The evidence has three different levels.

EvidenceStatusWhat it establishes
Official capability and pricing documentsChecked October 17, 2026Published features, limits, export procedures, and a dated localized price observation.
Two Pine v6 source examplesSyntax checks passedThe supplied source passed syntax validation. This does not establish chart behavior or trading performance.
Chart, backtest, and export evaluationExecuted October 17, 2026Both scripts compiled and ran. Ten completed-bar SMA and crossing-event rows matched independent calculations. The workbook contained 31 closed trades; a USD 0.02 aggregate rounding residual remains.

Set up one research case you can repeat

Use NASDAQ:AAPL, standard daily candles, regular trading hours, and the 2025 calendar year as an example dataset. This symbol is a test fixture, not a stock recommendation. Record the actual feed and delay status, chart timezone, adjustment settings, account plan, and test date. Load history before January 2025 for the moving average and after January 2026 for the exit check.

  • Use a five-bar simple moving average of close. A long entry signal occurs when the completed close moves above its average after being at or below it on the preceding bar. Exit on the opposite cross.
  • Keep dividend adjustment off for this protocol and record any split adjustment. Preserve the same settings for the indicator, strategy, and export.
  • Save the source and inputs before running. The strategy uses one share, USD 10,000 initial capital, 0.1% commission per order, and one tick of slippage. These are inspection assumptions, not a broker fee quote.
  • Record whether the full requested date range is available. If bars are missing, narrow and label the test instead of presenting it as a full-year result.

Task 1: write and check the indicator

Create a new indicator in Pine Editor, replace its source with this example, save it, and add it to the chart. Compare Review SMA with the built-in Moving Average set to length 5 and source close. The two extra numeric plots appear in the Data Window and record completed crossing events for inspection.

  • Hand check: hypothetical consecutive closes of 100, 102, 101, 103, and 104 give SMA = 510 / 5 = 102. The current close is above its SMA, but that alone does not prove a crossover; inspect the preceding close and preceding SMA.
  • Check at least ten completed chart bars and their timestamps. With five ordinary closes required, the first four bars of an otherwise empty dataset do not have a five-bar average.
  • On an open bar the average can move with price. The event columns stay zero until the bar is confirmed. A moving line during a live candle is not evidence that a completed-bar event changed.
Pine v6 indicator. Syntax validation and chart execution passed October 17, 2026. Ten completed-bar CSV values were independently checked.pine
//@version=6
indicator("Review: close versus SMA", overlay = true)
int length = input.int(5, "SMA length", minval = 2)
float average = ta.sma(close, length)
bool crossedUp = ta.crossover(close, average)
bool crossedDown = ta.crossunder(close, average)
plot(average, "Review SMA", color = color.blue)
plot(barstate.isconfirmed and crossedUp ? 1 : 0, "Confirmed cross up", display = display.data_window)
plot(barstate.isconfirmed and crossedDown ? 1 : 0, "Confirmed cross down", display = display.data_window)

Task 2: turn the same rule into a strategy

Create a separate strategy with the source below. Its report should let you trace each simulated entry back to the indicator event. Leave the declared calculation and order-processing settings unchanged for this first run. TradingView documents that default bar-close market orders first become eligible for a fill on the next available tick, normally the following bar open.

  • Verify the first three closed trades: signal date, next-bar entry, one-share quantity, exit signal, fill price, and commission. Use the List of Trades or Trades tab in the strategy report.
  • The end date stops new entry signals. An existing position receives a market exit at the close of the first bar whose opening timestamp reaches End, then normally fills on the next bar. It is not a liquidation at the final 2025 close.
  • A missing report is not a zero-return result. Check that a strategy is on the chart, dates are ordered, bars exist in the interval, crossings occur, and capital covers the order. Keep any final open position separate from closed-trade totals.
  • For a hypothetical one-share fill at USD 100.01 and exit at USD 104.99, gross P&L is USD 4.98. At 0.1% on each fill, commission is USD 0.205 and net P&L is USD 4.775 before display rounding. These are assumed fill prices with slippage already included, not measured results.
Inspection strategy, not a trading recommendation. Start must precede End. Entry signals use bar opening timestamps; market fills can occur outside that signal window.pine
//@version=6
strategy("Review: SMA crossover audit", overlay = true, initial_capital = 10000, currency = currency.USD, default_qty_type = strategy.fixed, default_qty_value = 1, pyramiding = 0, commission_type = strategy.commission.percent, commission_value = 0.1, slippage = 1, calc_on_every_tick = false, calc_on_order_fills = false, process_orders_on_close = false)
int length = input.int(5, "SMA length", minval = 2)
int startDate = input.time(timestamp("01 Jan 2025 00:00 +0000"), "Start")
int endDate = input.time(timestamp("01 Jan 2026 00:00 +0000"), "End (exclusive)")
float average = ta.sma(close, length)
bool crossedUp = ta.crossover(close, average)
bool crossedDown = ta.crossunder(close, average)
bool inWindow = time >= startDate and time < endDate
if barstate.isconfirmed and inWindow and crossedUp and strategy.position_size == 0
    strategy.entry("Long", strategy.long)
if barstate.isconfirmed and strategy.position_size > 0 and (crossedDown or time >= endDate)
    strategy.close("Long")
plot(average, "Review SMA", color = color.blue)

Task 3: export a result and reconcile it

Open the strategy report menu and inspect the available download format. The tested account offered Download data as XLSX, producing Performance, Trades analysis, Risk-adjusted performance, Trades, and Properties sheets. Save the source version, inputs, symbol/feed, interval, date range, and test date beside the workbook. If another tool needs CSV, convert the relevant sheet and check its columns; this review did not test a Pineify import. Chart data downloads are a separate CSV workflow. Availability must be checked in your account.

CheckExpected evidenceIf it fails
Correct exportThe downloaded file contains trades, with entry and exit timestamps, prices, quantity, and P&L fields.A performance-summary download and a chart-data CSV serve different tasks. Select the trade export explicitly.
One trade reconciliationMatch a closed trade to the report and calculate price difference times quantity, then account for reported costs.Inspect field definitions and rounding. Do not subtract commission twice if the exported P&L is already net.
Trade count reconciliationCount distinct closed trades, then compare with the report for the same run.Some layouts contain entry and exit rows. Counting every row as a separate trade inflates the count.
Optional indicator auditDownload chart data and compare Review SMA and event columns against matching completed bars.Chart CSV covers loaded chart data. Load more history before exporting if the required rows are absent.

Observed account run: results and unresolved differences

The October 17, 2026 run used ordinary daily candles, dividend adjustment off, the page scripts at length 5, and the declared one-share cost assumptions. The symbol selector and workbook identified NASDAQ:AAPL; the visible feed badge said NASDAQ by Cboe One and the chart CSV was named BATS:AAPL. Those feed labels are preserved here because a primary-exchange dataset may produce different values.

CheckObserved resultInterpretation
Indicator arithmeticTen completed bars, August 15 through August 28, 2025, matched five-close SMA and both crossing columns.August 18: close 230.89, SMA 231.648, down-cross 1. August 26: close 229.31, SMA 227.028, up-cross 1.
Strategy summary31 closed trades; 11 winners; net P&L -18.95 USD; profit factor 0.808; maximum drawdown 50.90 USD.A losing inspection fixture. These numbers verify report availability and are not a strategy recommendation.
First closed tradeJanuary 15 entry 237.36; January 16 exit 232.11; one share; commission 0.47; net P&L -5.72 USD.(232.11 - 237.36) × 1 - 0.47 = -5.72. Fill prices already incorporate the declared slippage.
Workbook row count62 entry/exit rows, including 31 Exit long rows.Count closed trade IDs or exits; counting every row doubles the trade count.
Aggregate reconciliationRounded exit-row net P&L sums to -18.93 USD, versus -18.95 USD in the headline.The 0.02 USD difference is disclosed. Rounded rows cannot establish the underlying unrounded calculation.
Date and coverage labelsSource boundaries are January 1 UTC; Properties displayed January 2 labels. Chart CSV contained 300 loaded bars.Keep source, inputs, and report labels together. The broad report history is not the entry window, and loaded chart CSV is not all strategy history.

Plans and costs: buy the requirement you verified

The official pricing page offers Basic plus Essential, Plus, Premium, and Ultimate. During the October 17, 2026 check, its localized Essential offer displayed CHF 12.95 per month billed annually: CHF 155.40 for twelve months before any checkout-specific adjustments. This is a dated CHF observation, not a universal price or a monthly billing quote. Check your currency, renewal amount, taxes, and selected term.

  • Before paying, verify the exact requirements in the current comparison table and account: indicators per chart, historical bars, chart export, trade CSV, full-report XLSX, and Deep Backtesting. They are separate features.
  • Deep Backtesting is documented for Premium and higher plans. Its results appear in the report; chart trade markers continue to reflect the ordinary chart test.
  • Budget separately for exchange data. TradingView says its default US stock feed comes from Cboe and can differ from primary-exchange data; purchasing a chart plan does not by itself buy every exchange entitlement.
  • Use total annual research cost = platform charge + required data charges + applicable taxes + any separate tools. A larger plan is justified by a needed capacity or feature, not by an expectation of better strategy returns.

Limits that matter before you build a larger system

The small examples do not test platform capacity. Pine imposes execution, memory, and script-size limits. Its current documentation permits 64 plot counts per script and 40 unique request.* calls, rising to 64 unique requests on Ultimate. One plotting function can consume more than one plot count. Prototype your largest required workflow before choosing a subscription.

BoundaryResearch consequence
Simulation versus executionA broker emulator cannot establish your real fill, queue position, or available liquidity. Changing cost and fill assumptions can change the result.
Chart typeUse ordinary candles for the baseline. Synthetic prices on non-standard charts can make a fill-based strategy result unsuitable for execution analysis.
Historical coverageAvailable bars and the starting point affect calculations. Save the actual range and exports so a later result can be compared with the earlier run.
AutomationTradingView documents no native automated Pine strategy trading into brokerage accounts. A connected broker or an alert needs separate execution arrangements.

When TradingView is worth using

For a researcher who can express the rule in Pine and needs chart-level inspection, TradingView provides the documented pieces needed for this workflow. Complete the three tasks before paying for more capacity. If you need broker-specific execution modeling, larger external datasets, or unattended order routing, evaluate those requirements separately instead of treating a successful chart test as proof.

  • Pineify can help draft or revise the indicator and strategy source from explicit rules. Provide the timeframe, session, event timing, sizing, and cost assumptions, then inspect the resulting code.
  • The Pine Script AI Coding Agent is an optional coding supplement. It does not grant TradingView plan features or exchange data, recover proprietary source, migrate accounts, or execute trades through this page.
Where Pineify fits

Pine Script AI Coding Agent

Draft or revise Pine Script from your own research rules, then check the code and its behavior in TradingView.

Draft your research script

Frequently asked questions

Educational software review, not investment advice. The dated account run reports simulated trades. Other arithmetic examples are hypothetical and the subscription observation is identified separately. Backtests do not guarantee future results. Pineify is a separate product and this review is not an official TradingView endorsement.

Sources and verification

Published by Pineify. Pineify is an independent product and is not affiliated with TradingView. Sources support the technical explanations; examples do not establish trading performance.