Browser-local net-R sequence analyzer

Crypto signal drawdown sequence analyzer for ordered result sheets

Maximum sequence drawdown is the largest fall in cumulative net R from a prior running peak to a later trough. Paste an ordered result-sheet CSV to calculate that decline, recovery status, rows underwater, and the longest negative net-R streak. The calculation stays in this browser. It does not turn normalized trade units into account equity or verify that any source row is real.

Browser-localNo upload, no API call, no analytics event, and no storage. CSV processing stays in this browser.
Observed orderResolved rows stay in input order; decreasing close times stop the calculation.
Net R onlyIt is not account equity, not percentage drawdown, not provider verification, not profitability, and not a forecast.
Direct answerMaximum sequence drawdown is the largest fall in cumulative net R from a prior running peak to a later trough. It is path-dependent: changing row order can change the result even when the same net-R values are present.

Interactive calculation

Calculate the path only after the sequence is structurally usable

A smooth total can hide the decline a follower would have faced between an earlier high and a later low. This analyzer starts at a zero-R boundary, adds each resolved row's net R in the supplied order, records the running peak, and subtracts each cumulative value from that peak. The largest difference is the maximum net-R drawdown for this supplied sequence.

The tool deliberately refuses to sort a decreasing close-time sequence. Silent sorting can manufacture a different peak, trough, and recovery. Equal close timestamps are allowed only with a warning because the available data does not establish which event changed the path first. Open, cancelled, and no-fill rows remain visible as exclusions rather than disappearing from the record count.

Required input

UTF-8 comma-delimited CSV with signal_id, posted_at_utc, closed_at_utc, outcome, and net_r. Net R may use up to 12 decimal places. Limit: 256,000 bytes, 2,000 nonblank data rows, and 40 columns.

The selected file is read into the text field by your browser. It is not uploaded.
The loaded rows are invented fixtures. Input order is authoritative for resolved outcomes.

The analyzer contains no fetch, XMLHttpRequest, beacon, WebSocket, form submission, localStorage, sessionStorage, IndexedDB, or cookie write for CSV content. A local download is created only when you request it. Formula-like signal IDs are prefixed as text in that download so spreadsheet software does not execute them as formulas.

Sequence calculated

Current sequence result

The supplied structure and chronology pass. Treat the output as net-R path arithmetic only.

Resolved rows5
Excluded rows1
Total net R1.4 R
Maximum drawdown1.5 R
Peak signalSEQ-001
Trough signalSEQ-003
RecoverySEQ-005
Longest negative streak2

Issues and repair actions

SeverityCodeRowColumnFindingRepair
No structural issues found by this analyzer.

Resolved sequence points

#Signal IDClosed UTCOutcomeNet RCumulativeRunning peakDrawdownMarker

Synthetic starter loaded and analyzed.

Worked example

The same headline total can conceal a 1.5 R decline

The synthetic starter rises to 1.2 R after SEQ-001. Two negative rows then move cumulative net R to 0.4 R and minus 0.3 R. The running peak remains 1.2 R, so the trough is 1.5 R below that peak. A 0.4 R row begins the recovery but leaves the path underwater. SEQ-005 adds 1.3 R and lifts cumulative net R to 1.4 R, finally clearing the earlier peak.

The final total is positive 1.4 R, yet the path includes three resolved rows below the earlier high and a two-row negative streak. A total alone would hide those conditions. The example is invented to demonstrate arithmetic. It is not a provider result, market sample, backtest, account history, trading recommendation, or expected future sequence.

Synthetic cumulative net-R path rising to 1.2 R, falling to minus 0.3 R, and recovering to 1.4 R.

The chart uses cumulative net R. Its vertical distances are not currency, account percentage, margin usage, or liquidation distance.

Exact model

Running peaks make the calculation path-dependent

Let each resolved row contribute a cost-adjusted value r_i. The analyzer begins at E_0 = 0 and forms E_i by adding every resolved net-R value through row i. The running peak P_i is the greatest value observed from the starting boundary through E_i. Current drawdown D_i is P_i minus E_i. Maximum drawdown is the largest D_i in the supplied path.

E_0 = 0
E_i = sum(r_j), for resolved rows j through i
P_i = max(0, E_1, ..., E_i)
D_i = P_i - E_i
MDD = max(D_i)

A later cumulative high changes the running peak for future rows but does not rewrite the peak that produced an earlier maximum-drawdown episode. Recovery belongs to that episode: it is the first later resolved row at or above the captured peak. An exact return to the peak closes that episode and becomes the latest peak boundary for any later decline. If no recovery row exists, the result stays unrecovered at the end of the supplied sequence.

Net-R values may use at most 12 decimal places. The analyzer rounds cumulative additions to that same precision so ordinary decimal inputs such as 0.1 and 0.2 remain stable. A value with finer precision is rejected instead of being silently rounded to zero or changing sign classification.

The longest negative streak counts contiguous resolved rows whose net R is below zero. A zero or positive net-R row ends the streak. The analyzer uses the numeric net-R sign, not a win or loss label, because fees, partial exits, inconsistent labels, or data errors can make the two disagree. A disagreement produces a warning so the source can be reviewed.

Chronology

Input order is evidence, not a formatting detail

Maximum drawdown is sensitive to serial order. A sequence containing plus 2 R, minus 1 R, and minus 1 R reaches a 2 R decline after the peak. Reordering the losses before the gain produces a different peak and a different recovery story. That is why this analyzer never sorts resolved rows silently.

Each resolved close timestamp must be equal to or later than the previous resolved close timestamp in the file. A decreasing timestamp stops all metrics. Equal timestamps are not automatically wrong, but the row order among simultaneous events may be unknown. The analyzer preserves the supplied order and displays a tied-time warning instead of pretending the ambiguity has no effect.

Publication time is checked separately. A close cannot precede the original posted time. This catches one form of impossible chronology, but it does not prove the timestamp is authentic, that the source was not edited, that a target touch produced a fill, or that followers received the same message at the same time.

Outcome treatment

Unresolved and non-executed rows remain visible without entering realized net R

Win, loss, and break-even rows are treated as resolved only when they include a valid close time and finite net R. Open, cancelled, and no-fill rows stay in the row count and are summarized by outcome, but they do not move the realized path. A nonblank net-R value on one of those excluded rows produces a warning because the status and numeric result conflict.

Unresolved rows remain visible in the supplied population even though they do not enter realized net R. This policy prevents two opposite errors. The tool does not force every published idea into a realized win or loss, and it does not erase unresolved rows from the visible population. A separate population audit still has to ask whether every source signal was exported at all. The analyzer cannot detect a deleted loss or a signal that never entered the file.

Optional source URLs are checked only for safe HTTPS syntax. The tool does not fetch them. A syntactically valid link can be stale, unrelated, edited, access-restricted, or fabricated. Human review must inspect the original message, edit history, timing, entry conditions, stop changes, target updates, and follower-side execution.

Interpretation boundary

Net-R drawdown is not account-equity drawdown

R is a normalized risk unit. One row at minus 1 R says the result lost one declared unit of risk under that row's accounting. It does not say the account lost one percent, one dollar, or one fixed fraction of capital. Translating R into an account curve requires the risk amount attached to each trade and how that amount changes over time.

Whole-account drawdown also needs starting equity, deposits and withdrawals, position sizing, leverage, margin mode, compounding, concurrent positions, correlation, open-equity marks, funding, fees, slippage, partial fills, liquidation events, and the rule used when several positions overlap. Summing sequential net R assumes a simple ordered diagnostic. It does not model capital tied up in concurrent trades or a portfolio that marks open exposure continuously.

The academic drawdown definition concerns a value path. This page applies the peak-to-trough arithmetic to cumulative net R because result sheets often record normalized outcomes rather than complete account equity. The unit stays R throughout. The result must never be relabeled as percentage drawdown, money lost, capital required, survival probability, or account safety.

Evidence limits

A precise path can still be built from selected or impossible records

The CFTC warns that hypothetical trading results have not been subjected to actual market conditions. Stops can execute at a different price or fail to execute, bid-ask spread and liquidity can change fills, and commissions, fees, subscriptions, and other costs can be omitted. Several consecutive losses can matter even when a final performance presentation looks attractive.

A result sheet can therefore pass every structural check and still describe fabricated, cherry-picked, hindsight-selected, stale, or non-executable trades. A low maximum drawdown in a short sample can reflect the sample boundary rather than durable risk. Track-record length and data frequency affect drawdown interpretation, while serial dependence means one observed order cannot be treated as an independent forecast.

Before relying on the output, reconcile the exported row count to the source population, verify one stable ID per signal, inspect edits and deletions, reconstruct entries and exits, include costs, preserve open risk, define the cutoff, and compare any provider claim with an actual account record when available. Passing arithmetic is a prerequisite for a question, not a verdict.

Fixture proof

Seven synthetic cases cover recovery, ambiguity, invalid chronology, and malformed CSV

Every fixture is invented and contains no provider or market performance. The generator calculates the expected state and metrics before writing public files. The independent checker will repeat the math separately and attack malformed quotes, row widths, duplicate IDs, timestamp edges, numeric ranges, URL syntax, formula-like text, and script injection.

FixtureStateRowsIssuesMaximum drawdown
SEQUENCE-RECOVERED
Recovered peak-to-trough sequence
reviewable5 resolved; 1 excluded0 errors; 0 warnings1.5 R
SEQUENCE-UNRECOVERED
Unrecovered drawdown
reviewable4 resolved; 0 excluded0 errors; 0 warnings1 R
SEQUENCE-STARTING-PEAK
All-negative sequence from the zero boundary
reviewable3 resolved; 0 excluded0 errors; 0 warnings0.6 R
SEQUENCE-TIED-TIMES
Tied close times require an order warning
reviewable_with_warnings2 resolved; 0 excluded0 errors; 1 warnings0.5 R
SEQUENCE-SIGN-MISMATCH
Outcome labels do not override cost-adjusted net-R sign
reviewable_with_warnings2 resolved; 0 excluded0 errors; 2 warnings0.1 R
SEQUENCE-OUT-OF-ORDER
Resolved chronology is not silently sorted
incomplete2 resolved; 0 excluded1 errors; 0 warningsSuppressed
SEQUENCE-MALFORMED
Unclosed quoted field
malformed0 resolved; 0 excluded1 errors; 0 warningsSuppressed

Issue reference

Each failure names the row, field, and repair action

Errors suppress all path metrics. Warnings remain visible beside the result because the arithmetic can run while interpretation is limited. The stable code is intended for reproducible tests and machine-readable summaries; the message and repair text are intended for a person correcting the export.

CodeSeverityScopeRepair
empty_inputerrorfilePaste a UTF-8 comma-delimited CSV or load the synthetic starter.
file_too_largeerrorfileReduce the input to 256,000 UTF-8 bytes or less.
too_many_rowserrorfileUse no more than 2,000 nonblank data rows.
too_many_columnserrorheaderUse no more than 40 columns.
cell_too_longerrorcellShorten each cell to 12,000 characters or less.
unclosed_quoted_fielderrorfileClose the quoted field and double any quote inside it.
unexpected_quoteerrorcellPlace a quote only at the start of a quoted field or escape it as two quotes inside that field.
characters_after_closing_quoteerrorcellEnd the field immediately after its closing quote or follow it with a comma or record ending.
row_width_mismatcherrorrowGive the row the same number of fields as the header.
missing_required_headererrorheaderAdd every required lowercase header.
duplicate_headererrorheaderKeep each normalized header once.
noncanonical_headerwarningheaderUse trimmed lowercase header names for a stable future export.
duplicate_signal_iderrorrowGive each source signal one stable unique identifier.
invalid_signal_iderrorcellUse 1 to 80 letters, numbers, dots, underscores, colons, or hyphens.
invalid_outcomeerrorcellUse win, loss, break_even, open, cancelled, or no_fill.
invalid_posted_at_utcerrorcellUse a real ISO 8601 UTC timestamp ending in Z.
missing_closed_at_utcerrorcellGive every resolved outcome a UTC close timestamp.
invalid_closed_at_utcerrorcellUse a real ISO 8601 UTC timestamp ending in Z or leave it blank for an unresolved row.
close_before_posterrorrowUse a close timestamp that is not earlier than publication.
resolved_sequence_out_of_ordererrorrowPlace resolved rows in nondecreasing close-time order; the analyzer does not silently sort them.
tied_close_timewarningrowDocument the event order for equal close timestamps or accept that path metrics depend on input order.
missing_net_rerrorcellGive every resolved outcome a finite net-R value.
invalid_net_rerrorcellUse a finite base-10 number with no more than 12 decimal places and without a percent sign, currency symbol, or formula.
net_r_out_of_rangeerrorcellKeep net R between -1000 and 1000 and investigate the unit or export.
unresolved_net_r_presentwarningrowLeave net R blank for open, cancelled, and no-fill rows or change the outcome when the record resolves.
open_row_has_closewarningrowLeave an open row's close time blank or change the outcome to its resolved state.
outcome_net_sign_mismatchwarningrowReview the outcome label and cost-adjusted net R; sequence movement follows net-R sign.
invalid_source_urlwarningcellUse an absolute credential-free HTTPS URL with a usable host, or leave the optional field blank.
formula_like_textwarningcellRemove spreadsheet formula prefixes before sharing or opening the CSV in spreadsheet software.
no_resolved_rowserrorfileInclude at least one win, loss, or break-even row with close time and net R.

Method and provenance

The page is an original tool, not a GEO keyword variation

The authenticated Search Console archive supports the broader result-sheet, accuracy, and risk cluster. It does not contain an exact-query demand row for this analyzer. The canonical was selected because it performs a missing decision job across three existing pages: move from structured rows to an observed path without confusing that path with account performance.

Current Google guidance says unique, compelling, non-commodity content and foundational SEO matter more than special GEO hacks. It warns against creating separate pages for every query variation and says llms.txt is not a Google ranking requirement. This release plan therefore uses one substantial canonical, one dedicated sitemap URL, useful static explanation, a working local tool, clear internal links, and no modifier family.

OpenAI's publisher guidance says OAI-SearchBot needs crawl access to read content and noindex directives. The analyzer uses explicit labels, roles, live status, and tables so screen readers and browser agents can interpret its controls and results. Crawl access creates eligibility only; it cannot be reported as retrieval, citation, ranking, or endorsement.

PublisherAccessedCaptureBoundary used here
Google Search Central
Google's Guide to Optimizing for Generative AI Features on Google Search
2026-07-1355ef8e67ea9cdc89...
191,863 bytes
  • Foundational SEO remains the basis for generative-search visibility.
  • Unique, useful, non-commodity content is more valuable than recycled summaries.
  • A separate page for every query variation can become scaled content abuse and is not an effective long-term strategy.
  • A page must be crawlable and indexed with snippet eligibility before it can be eligible for Google's generative search features.
  • Indexing and serving are not guaranteed even when requirements and best practices are met.
  • Google does not use llms.txt or special AI markup as a ranking or generative-search requirement.
  • Mobile page experience, semantic structure, latency, and duplicate reduction remain useful.
OpenAI
Publishers and Developers - FAQ
2026-07-13The official page was readable through web extraction. Its CDN rejected the separate command-line capture with HTTP 403, so no capture hash is claimed.
  • Public websites can be eligible to appear in ChatGPT search, but appearance and citation are not guaranteed.
  • OAI-SearchBot needs crawl access for content to be included in summaries and snippets and to read noindex directives.
  • ChatGPT search referral URLs use utm_source=chatgpt.com for measurable referral evidence.
  • Descriptive ARIA roles, labels, and states help browser agents interpret interactive controls.
U.S. Commodity Futures Trading Commission
Fraud Advisory: Commodity Trading Systems Sold on the Internet
2026-07-13d03471117cf417ee...
44,430 bytes
  • Hypothetical results have not been subjected to actual market conditions and can overstate or understate performance.
  • Several consecutive losses and margin calls can make a path unsustainable even when a headline result looks attractive.
  • Stops can execute at a different price or not execute, and bid-ask spread, liquidity, commissions, fees, subscriptions, and other costs can be omitted.
  • Selected historical trades can manufacture an attractive result presentation.
  • A structured sequence is not independent verification of the underlying trades.
arXiv
Drawdown: From Practice to Theory and Back Again
2026-07-13adc138b196f7a6f3...
41,092 bytes
  • Maximum drawdown is the largest cumulative loss from peak to trough in a path.
  • Drawdown is path-dependent and sensitive to serial ordering.
  • Track-record length, data frequency, mean, volatility, and serial dependence affect drawdown interpretation.
  • The paper concerns portfolio-value paths. Applying the same peak-to-trough arithmetic to cumulative net R does not convert net R into account equity.
RFC Editor
Common Format and MIME Type for Comma-Separated Values Files
2026-07-13a3d05fac4bf87ea5...
134,011 bytes
  • A header and each record should carry the same number of fields.
  • Fields containing commas, line breaks, or double quotes use double-quote enclosure.
  • A double quote inside a quoted field is represented by two double quotes.
  • The final record can end with or without a line break.

Dataset ID csr-crypto-signal-drawdown-sequence-analyzer-2026-07-13. Source commit 4c6f7305b79b4aa0ec512d1f455ca1b7bf0ee895. Immutable source ledger.

Questions

Common drawdown-sequence questions

Is maximum net-R drawdown the same as account drawdown?

No. Net R is a normalized trade-result unit. Account drawdown needs starting equity, sizing, compounding, concurrent exposure, deposits and withdrawals, leverage, open-equity treatment, and actual costs.

Why does row order matter?

Drawdown is path-dependent. The same net-R values can produce a different peak, trough, recovery, and time underwater when their order changes. The analyzer preserves input order and refuses a decreasing close-time sequence.

What happens to open, cancelled, and no-fill rows?

They remain counted and visible as excluded rows. They do not enter the realized net-R path, and a nonblank net-R value on an excluded row produces a warning.

Does a low drawdown prove a provider is safe or profitable?

No. A short, selected, fabricated, incorrectly ordered, or non-executable sequence can look smooth. The analyzer does not authenticate sources, detect omitted calls, verify fills, or model account risk.

Why can a win label have negative net R?

Costs, partial exits, or inconsistent source labels can make the net result disagree with the headline outcome. The analyzer warns and uses the numeric net-R sign for path movement.

Does the CSV leave the browser?

No. The planned analyzer performs parsing and arithmetic in the page and contains no CSV upload, fetch, beacon, WebSocket, form submission, or storage write.

Continue the review

Use structure, observed path, model probability, and account evidence for different decisions