Explore more topics
Market-data lake

lake.backtest_proprietary_results dataset schema

Column types and research semantics for NexusTrade’s lake.backtest_proprietary_results dataset. Read the supported schema before submitting a bounded SQL query.

Query name
lake.backtest_proprietary_results
Storage partition
snapshot
Columns
27
Jump to a section

Columns and types

DATE

  • start_date
  • end_date

INTEGER

  • duration_days

VARCHAR

  • date_range_bucket
  • interval
  • cadence
  • asset_class

BOOLEAN

  • traded

DOUBLE

  • percent_change
  • sharpe_ratio
  • sortino_ratio
  • max_drawdown

Showing 12 of 27 recorded rows. The complete table is below.

Current logical schema for lake.backtest_proprietary_results

Inspect the complete lake.backtest_proprietary_results schema

Scroll sideways to compare all columns. Select a heading to sort.

start_dateDATE
end_dateDATE
duration_daysINTEGER
date_range_bucketVARCHAR
intervalVARCHAR
cadenceVARCHAR
asset_classVARCHAR
tradedBOOLEAN
percent_changeDOUBLE
sharpe_ratioDOUBLE
sortino_ratioDOUBLE
max_drawdownDOUBLE
avg_drawdownDOUBLE
ulcer_indexDOUBLE
ulcer_performance_indexDOUBLE
win_rateDOUBLE
profit_factorDOUBLE
avg_trade_pnlDOUBLE
dollars_soldDOUBLE
total_dividendsDOUBLE
total_feesDOUBLE
risk_free_rateDOUBLE
baseline_percent_changeDOUBLE
baseline_sharpe_ratioDOUBLE
baseline_max_drawdownDOUBLE
alpha_pctDOUBLE
alpha_sharpeDOUBLE

Current logical schema for lake.backtest_proprietary_results

Query lake.backtest_proprietary_results using the column names and types below. The query validator and engine use this logical catalog; a field absent from an older shard returns typed NULL.

What this table contains

Backtest corpus: performance-only rows for runs on creator-owned data. NO IDENTIFIERS AND NO JOIN KEY, deliberately: no `backtest_uuid`, `portfolio_uuid` or `experiment_id`. It cannot be joined to any other table, and the strategies behind it cannot be identified or reconstructed. Never try to hydrate from it or link a row here to a row anywhere else.

Describe private-source performance rows

Query example, not executed here. The dates and filters define the proposed research scope; returned rows and current coverage must be checked in your workspace.

raw_rows counts stored rows, including possible repeats. There is no experiment_id or join key, so the median is indicative and cannot be compared as though it were a deduplicated corpus estimate. No strategy identity can be reconstructed from this query.

SQL
SELECT asset_class, cadence, interval, date_range_bucket,
       COUNT(*) AS raw_rows, MEDIAN(percent_change) AS indicative_median_return
FROM lake.backtest_proprietary_results
GROUP BY asset_class, cadence, interval, date_range_bucket
ORDER BY raw_rows DESC
LIMIT 20;

Submit the backtest_proprietary_results example and read back its parts

Run the exact SQL through the Python SDK

Save this page's SQL as query.sql and the runner below as query.py. Use a registered key with lake scope from Developers. The runner submits the displayed backtest_proprietary_results query once, saves its operation, waits on that same ID, saves the returned manifest and downloads its Parquet parts.

This submission has not been executed for the reference page. Inspect the SQL, dates and resource limits before running it. Reuse the request key only for this identical SQL and limits; use a new key when changing them.

Shell
python3 -m pip install nexustrade==1.42.0
export NEXUSTRADE_API_KEY="YOUR_LAKE_SCOPED_KEY"
python3 query.py

Python
import json
from pathlib import Path
from nexustrade import NexusTradeClient

# Save the SQL displayed on this page as query.sql.
sql = Path("query.sql").read_text()
client = NexusTradeClient.from_environment()
operation = client.create_lake_query(
    {"query": sql, "limits": {"timeoutSeconds": 30, "maxRows": 50,
                              "maxResultBytes": 1048576}},
    idempotency_key="reference-backtest_proprietary_results-20261012-v1",
)
Path("query-operation.json").write_text(json.dumps(operation, indent=2))
finished = client.wait_for_lake_query(operation["id"])
if finished["status"] != "completed":
    raise RuntimeError(finished)
manifest = client.get_lake_query_manifest(operation["id"])["result"]
Path("query-manifest.json").write_text(json.dumps(manifest, indent=2))
print(json.dumps(manifest, indent=2))
for part in manifest["parts"]:
    Path(f"query-{part['part']}.parquet").write_bytes(
        client.download_lake_query_part(operation["id"], part["part"], max_bytes=1048576)
    )

Coverage and timing

Inspect source coverage and timing before using the rows

The logical view is backed by canonical manifest-resolved data. Query this name rather than guessing a physical database collection or object-storage path.

Backtest corpus: performance-only rows for runs on creator-owned data. NO IDENTIFIERS AND NO JOIN KEY, deliberately: no `backtest_uuid`, `portfolio_uuid` or `experiment_id`. It cannot be joined to any other table, and the strategies behind it cannot be identified or reconstructed. Never try to hydrate from it or link a row here to a row anywhere else.

Without `experiment_id` the deduplication rule cannot be applied, so cloned runs count more than once. Treat any aggregate here as indicative and say so; never present it beside a deduplicated number as if the two were comparable.

Discussion

Sign in or create a free account to join the discussion.

No comments yet.