PRODUCT WHITE PAPER · 2026

WhaleRider

A complete interface for defining, validating, historically simulating, and analyzing user-directed systematic research through AI, VS Code, or the command line.

AI-first workflowValidated YAML artifactsMulti-domain researchHistorical simulation

What the system does

Users define their own systematic rules and research hypotheses. WhaleRider turns those instructions into durable, inspectable definitions, validates them, runs historical simulations using market and financial data, and helps analyze simulated results. Open generated YAML in VS Code for direct control, or continue the user-directed workflow through an AI or the CLI.

ResearchCombine price, fundamentals, ratios, macro, short interest, insider activity, congressional activity, corporate events, and prior-position history.
AuthorBuild explicit universes, indicators, transformations, signals, sequential criteria, position controls, and portfolio allocations.
ValidateCompile deterministic YAML into fixed research artifacts before historical simulation.
SimulateRun one or more user-defined rule sets in a simulated account with allocation caps, modeling assumptions, grouped performance, and simulated trades.
01 · WORKSPACE ACCESS

Get your admin access key

Enter your workspace name and admin email, complete payment, and verify the code sent to that email. The resulting key is your workspace’s primary admin credential and is shown once.

  1. Workspace details.Open Connect and provide your workspace name and admin email.
  2. Complete payment.WhaleRider Early Access is $50 per month per workspace.
  3. Verify your email.Enter the six-digit code sent to the admin email.
  4. Save the key.Copy or download the key when it is revealed, then add the WhaleRider MCP URL to your preferred AI.
Lost your key?Use Recover access key on the Connect page. After email verification, a replacement key is shown once and the previous key is revoked.
02 · AI CONNECTIONS

Add one MCP URL to the AI you already use

In ChatGPT, Claude, Gemini, or Grok, create a custom MCP connector named WhaleRider and use https://mcp.whalerider.org as the server URL. When WhaleRider opens its authorization page, enter your admin access key to approve the connection.

ChatGPTCreate a custom connector or plugin named WhaleRider and use the MCP URL as its server URL.
ClaudeOpen Connectors, add a custom connector named WhaleRider, and enter the MCP URL.
GeminiOpen Custom apps, paste the WhaleRider MCP URL, and continue.
GrokOpen Connectors, choose New Connector, and add the WhaleRider MCP URL.

Once authorized, ask naturally: create a trade plan, refine it, run a simulation, and explore results.

03 · COMMAND LINE

Install and connect the WhaleRider CLI

Windows PowerShell
irm https://cli.whalerider.org | iex
Linux
curl -s https://cli.whalerider.org/install-wr.sh | tr -d '
' | bash

Verify and create a profile

wr --version
wr profile set --name default --access-key <YOUR_ACCESS_KEY>
wr profile use --name default
wr profile list

Profiles are required for platform operations such as listing deployed artifacts or starting simulations. Local compilation is deliberately independent and does not require an access profile.

04 · VISUAL STUDIO CODE

Install the WhaleRider DSL plugin

  1. Open Extensions.Use the Extensions view inside VS Code.
  2. Search for WhaleRider DSL.The extension provides the language tooling used by generated YAML documents.
  3. Select Install.Open a WhaleRider YAML file to receive completion, hover documentation, diagnostics, and schema-aware validation while editing.
AI to editor handoffGenerated definitions can be presented as “Open in VS Code” documents. The YAML remains human-readable and editable while the plugin supplies full IntelliSense.
05 · SYSTEM MODEL

Four composable artifacts

1Trade plan

Market scope, long or short side, indicators, signals, stateful entry and exit criteria, holding rules, ATR controls, and replacement behavior.

2Risk policy

Reusable per-position value limits, minimum viable position size, and maximum position-risk budget.

3Strategy

One deployed trade plan bound to one deployed risk policy by immutable artifact identifiers.

4Simulation

One or more deployed strategies, capital, period, allocation limits, and optional margin and financing assumptions.

Compilation validates each YAML document and creates a fixed .wr artifact. Deployment returns the identifiers used by the next composition layer.

06 · TRADE PLAN

Describe the complete decision process

DirectionLONG or SHORT, with direction-aware ATR exits.
Local riskMaximum holding period, replacement mode, ATR lookback, stop loss, take profit, and entry slippage.
UniverseExchanges, security types, funds, point-in-time index membership, sectors, tickers, and exclusions.
IndicatorsSource-domain measurements, derived arithmetic, transformation pipelines, explicit benchmark tickers, time windows, and cross-sections.
SignalsNamed Boolean expressions with missing-data policy and optional interval streaks.
CriteriaEntry and exit trees with sequencing, alternatives, abort paths, elapsed-time requirements, timeouts, and frozen setup values.

Trade-plan risk controls

FieldPurpose
HOLDING_MAX_PERIODMaximum holding duration using days, hours, or minutes.
REPLACEMENT_MODENONE, BEST, or WORST when a new entry has insufficient capital.
ATR.LOOKBACK / INTERVALVolatility model used for simulated fill boundaries.
ATR.STOP_LOSSRequired ATR multiple when ATR controls are enabled.
ATR.TAKE_PROFITOptional take-profit distance in ATR multiples.
ATR.MAX_SLIPPAGEMaximum adverse movement permitted at entry.
07 · UNIVERSE

Define exactly what may be evaluated

SelectorSupported values and behavior
EXCHANGESNYSE, NASDAQ, AMEX
SECURITY_TYPESSTOCK, ETF
IS_FUNDInclude only funds or only non-funds.
MARKET_INDICESSP500, NASDAQ100, DOW30. Optional individually, but this or TICKERS is required. Historical membership is evaluated at the relevant event time.
SECTORSBasic materials, communication services, consumer cyclical, consumer defensive, energy, financial services, healthcare, industrials, real estate, technology, utilities.
TICKERSExplicit symbol restriction. Required when MARKET_INDICES is omitted.
EXCLUDE_TICKERSFinal exclusion list; exclusions always win.

A trade plan must supply MARKET_INDICES or TICKERS to bound its universe. Values inside one selector are alternatives, while supplied selectors are combined as restrictions. An ETF plan can use TICKERS: [CPER]; a ticker supplied alongside an index must also belong to that index at the evaluated time.

08 · DATA MODEL

Supported source domains

Indicators can read market, company, event, macro, and position-history data. The table is the user-facing map of what may be measured and what may be filtered.

DomainMeasurementsFilters and scope
CANDLEOHLCV market barsOpen, Low, High, Close, VolumeRaw candle fields; interval required; optional explicit ticker
INDEXIndex price barsOpen, Low, High, CloseRaw index fields; interval required; no volume
DERIVEDArithmetic over named indicatorsAny numeric expression over prior indicatorsNo raw-record filter; supports cross-sectional aggregation
INCOMEIncome statement factsRevenue, GrossProfit, Ebitda, OperatingIncome, NetIncome, Eps, EpsDiluted and all statement fieldsAny schema field; exact case-sensitive names
BALANCE_SHEETBalance sheet factsCash, receivables, inventory, assets, debt, liabilities, equity and all statement fieldsAny schema field; exact case-sensitive names
CASH_FLOWCash-flow statement factsOperatingCashFlow, CapitalExpenditure, FreeCashFlow, financing and investing fieldsAny schema field; exact case-sensitive names
RATIOProfitability, valuation, leverage and coverage ratiosMargins, turnover, liquidity, valuation, leverage, coverage, yield and per-share metricsAny ratio-record field; exact case-sensitive names
MARKET_CAPMarket capitalizationMarketCapRaw record fields; interval required; optional explicit ticker
DIVIDENDDividend eventsAdjDividend, DividendAny dividend-record field; optional explicit ticker
SPLITStock split eventsNumerator, DenominatorAny split-record field; optional explicit ticker
DELISTDelisting eventsNumeric fields exposed by the schemaAny delisting-record field; optional explicit ticker
SECTOR_PESector valuationPESelect sector with Sector == Sector.VALUE; global domain
INSIDERSInsider transactions and ownershipSecuritiesTransacted, Price, SecuritiesOwnedSide, TransactionType, TransactionOwner and other schema fields
CONSOLIDATED_SHORTReported short interestPreviousShortPositionQuantity, CurrentShortPositionQuantity, ChangePercent, AverageDailyVolumeQuantity, DaysToCoverQuantityAny consolidated-short record field
DAILY_SHORTDaily short volumeTotalParQuantity, ShortParQuantity, ShortExemptParQuantityAny daily-short record field; interval required
CONGRESSCongressional transactionsAmountRangeMin, AmountRangeMaxCongressChamber, TransactionSide and other schema fields
ECONOMYMacroeconomic time seriesValueSelect series with EconomicIndicator == EconomicIndicator.VALUE; global domain
CALENDAR_REPORTCompany reporting calendarEpsActual, EpsEstimated, RevenueActual, RevenueEstimatedAny calendar-report record field; optional explicit ticker
POSITIONCompleted position historyEnterPrice, LastPrice, TakeProfitPrice, StopLossPrice, SizeExited positions for the same account, strategy and ticker; excludes the open position
09 · FINANCIAL DATA

Complete financial measurement families

Financial domains contain many available fields, so they are grouped below by statement family. Expand a family to see every supported measurement name.

MEASUREMENT: SecuritiesTransacted * Price
FILTER: Side == Side.ACQUISITION
MEASUREMENT: Value
FILTER: EconomicIndicator == EconomicIndicator.FEDERAL_FUNDS
  • Enum constants use the qualified form FieldName == EnumType.ENUM_MEMBER.
  • Filters may combine conditions with AND, OR, and parentheses.
  • DERIVED indicators reference prior indicator names and do not accept raw-record filters.
  • Restrictive filters can yield missing periods; signals explicitly choose IGNORE, TRUE, or FALSE.
  • ECONOMY uses Value and selects the series through EconomicIndicator.
  • SECTOR_PE uses PE and selects the category through Sector.

Measurement and filter syntax

Income statement
RevenueCostOfRevenueGrossProfitResearchAndDevelopmentExpensesGeneralAndAdministrativeExpensesSellingAndMarketingExpensesSellingGeneralAndAdministrativeExpensesOtherExpensesOperatingExpensesCostAndExpensesNetInterestIncomeInterestIncomeInterestExpenseDepreciationAndAmortizationEbitdaEbitNonOperatingIncomeExcludingInterestOperatingIncomeTotalOtherIncomeExpensesNetIncomeBeforeTaxIncomeTaxExpenseNetIncomeFromContinuingOperationsNetIncomeFromDiscontinuedOperationsOtherAdjustmentsToNetIncomeNetIncomeNetIncomeDeductionsBottomLineNetIncomeEpsEpsDilutedWeightedAverageShsOutWeightedAverageShsOutDil
Balance sheet
CashAndCashEquivalentsShortTermInvestmentsCashAndShortTermInvestmentsNetReceivablesAccountsReceivablesOtherReceivablesInventoryPrepaidsOtherCurrentAssetsTotalCurrentAssetsPropertyPlantEquipmentNetGoodwillIntangibleAssetsGoodwillAndIntangibleAssetsLongTermInvestmentsTaxAssetsOtherNonCurrentAssetsTotalNonCurrentAssetsOtherAssetsTotalAssetsTotalPayablesAccountPayablesOtherPayablesAccruedExpensesShortTermDebtCapitalLeaseObligationsCurrentTaxPayablesDeferredRevenueOtherCurrentLiabilitiesTotalCurrentLiabilitiesLongTermDebtCapitalLeaseObligationsNonCurrentDeferredRevenueNonCurrentDeferredTaxLiabilitiesNonCurrentOtherNonCurrentLiabilitiesTotalNonCurrentLiabilitiesOtherLiabilitiesCapitalLeaseObligationsTotalLiabilitiesTreasuryStockPreferredStockCommonStockRetainedEarningsAdditionalPaidInCapitalAccumulatedOtherComprehensiveIncomeLossOtherTotalStockholdersEquityTotalStockholdersEquityTotalEquityMinorityInterestTotalLiabilitiesAndTotalEquityTotalInvestmentsTotalDebtNetDebt
Cash flow
NetIncomeDepreciationAndAmortizationDeferredIncomeTaxStockBasedCompensationChangeInWorkingCapitalAccountsReceivablesInventoryAccountsPayablesOtherWorkingCapitalOtherNonCashItemsNetCashProvidedByOperatingActivitiesInvestmentsInPropertyPlantAndEquipmentAcquisitionsNetPurchasesOfInvestmentsSalesMaturitiesOfInvestmentsOtherInvestingActivitiesNetCashProvidedByInvestingActivitiesNetDebtIssuanceLongTermNetDebtIssuanceShortTermNetDebtIssuanceNetStockIssuanceNetCommonStockIssuanceCommonStockIssuanceCommonStockRepurchasedNetPreferredStockIssuanceNetDividendsPaidCommonDividendsPaidPreferredDividendsPaidOtherFinancingActivitiesNetCashProvidedByFinancingActivitiesEffectOfForexChangesOnCashNetChangeInCashCashAtEndOfPeriodCashAtBeginningOfPeriodOperatingCashFlowCapitalExpenditureFreeCashFlowIncomeTaxesPaidInterestPaid
Ratios
GrossProfitMarginEbitMarginEbitdaMarginOperatingProfitMarginPretaxProfitMarginContinuousOperationsProfitMarginNetProfitMarginBottomLineProfitMarginReceivablesTurnoverPayablesTurnoverInventoryTurnoverFixedAssetTurnoverAssetTurnoverCurrentRatioQuickRatioCashRatioSolvencyRatioPriceToEarningsRatioPriceToEarningsGrowthRatioForwardPriceToEarningsGrowthRatioPriceToBookRatioPriceToSalesRatioPriceToFreeCashFlowRatioPriceToOperatingCashFlowRatioDebtToAssetsRatioDebtToEquityRatioDebtToCapitalRatioLongTermDebtToCapitalRatioFinancialLeverageRatioWorkingCapitalTurnoverRatioOperatingCashFlowRatioOperatingCashFlowSalesRatioFreeCashFlowOperatingCashFlowRatioDebtServiceCoverageRatioInterestCoverageRatioShortTermOperatingCashFlowCoverageRatioOperatingCashFlowCoverageRatioCapitalExpenditureCoverageRatioDividendPaidAndCapexCoverageRatioDividendPayoutRatioDividendYieldDividendYieldPercentageRevenuePerShareNetIncomePerShareInterestDebtPerShareCashPerShareBookValuePerShareTangibleBookValuePerShareShareholdersEquityPerShareOperatingCashFlowPerShareCapexPerShareFreeCashFlowPerShareNetIncomePerEBTEbtPerEbitPriceToFairValueDebtToMarketCapEffectiveTaxRateEnterpriseValueMultiple
10 · LANGUAGE

Indicators, transformations, signals, and state

Indicator fields

Each indicator has a unique name and domain. Depending on the source, it may include a measurement, interval, explicit ticker, raw-record filter, ordered steps, cross-sectional aggregation, relative time window, and evaluation interval.

Transformation library

RAWSMAEMAWMADEMATEMAVWMAVWAPRSIWILLIAMS_RADXATRATRPOBVADLMFISTD_DEVCMFFORCE_INDEXMACDKAMAPIVOTROLLING_PIVOTFIBONACCIBOS_CHOCHORDER_BLOCKSWINGCHANGECHANNELLINEPATTERNRANKPERCENTILESARSLOPECLAMPFLOORVOLUME_PROFILEAGGREGATIONTHRESHOLDBUCKETABS

Steps run in order, with each output becoming the next input. The language includes moving averages, oscillators, volatility, volume, pivots, channels, patterns, market structure, trend lines, ranking, bucketing, thresholds, and aggregation.

Signals

Signals are named Boolean expressions over indicators. They support arithmetic, comparisons, AND/OR, interval streaks, minimum and maximum streak bounds, and deliberate missing-data behavior.

Stateful criteria

Entry and exit logic can be a tree rather than a single condition. NEXT expresses sequence, sibling nodes express alternative branches, ABORT invalidates a route, FOR requires elapsed calendar time, TIMEOUT expires a route, and FREEZE_INDICATORS preserves setup or entry-time values for later decisions.

Market-time waitingUse signal streaks to wait for candles or trading periods. Use FOR only for elapsed calendar time.
11 · RISK AND ALLOCATION

Control position size and aggregate exposure

Risk-policy fieldMeaning
MAX_POSITION_VALUE_PCTMaximum market value of one position as a percentage of current equity.
MIN_POSITION_VALUE_PCTReject a calculated position below this percentage of current equity.
MAX_POSITION_RISK_PCTTarget maximum loss budget for one position as a percentage of current equity.

With an ATR stop, the position-risk budget is divided by the entry-to-stop loss per share, including estimated commission. Without an ATR stop, WhaleRider sizes from capital limits and derives a stop price from the risk budget. Gaps, slippage, evaluation frequency, and simulated fill delay mean this is a sizing and control model, not a guaranteed-loss limit.

The simulation’s MAX_EQUITY_ALLOCATION is a separate gross-exposure cap for the strategy. All strategies share account equity and buying power. Allocations may exceed 100 to permit leveraged exposure or overlapping capacity, but they never create additional buying power.

12 · HISTORICAL SIMULATION

Run one or more strategies in a shared account

StrategiesOne or more deployed strategy IDs with optional gross-exposure limits.
CapitalInitial cash and equity for the shared account.
PeriodInclusive historical start and end dates.
MarginInitial and maintenance requirements, annual margin interest, and short-borrow rates.
Margin fieldInterpretation
INITIAL_MARGIN_RATEFraction of position value required as initial equity.
MAINTENANCE_MARGIN_RATEFraction of open-position value required as maintenance equity.
MARGIN_INTEREST_RATEAnnual financing rate on a margin debit balance.
SHORT_BORROW_RATEAnnual borrow rate applied to short positions.
13 · CLI REFERENCE

Complete command surface

This reference is generated from the installed CLI using wr -h --all. Angle-bracket values are required placeholders unless shown in brackets.

AreaCommandPurpose
Corewr versionShow product, version, runtime, OS and architecture.
Corewr helpList command names and descriptions.
Corewr compile --file <yaml>Validate a document and produce a portable .wr artifact.
Corewr deploy --file <artifact.wr>Deploy a compiled artifact.
Corewr undeploy --document-kind <kind> --deployment-id <id>Remove a deployment.
Profileswr profile set --name <name> --access-key <key>Create or update a local authentication profile.
Profileswr profile use --name <name>Select the active profile.
Profileswr profile listList profiles and active state.
Profileswr profile remove --name <name>Remove a profile and unset it when active.
Identitywr organization getGet the current organization.
Identitywr self getGet the current principal.
Identitywr self access-key createCreate an access key for the current principal.
Identitywr access-key get --access-key-id <id>Get access-key metadata.
Identitywr access-key listList access keys.
Identitywr access-key state set --access-key-id <id> --is-active <bool>Activate or deactivate an access key.
Identitywr admin create|get|listManage administrator principals.
Identitywr app create|get|listManage application principals.
Identitywr app access-key create --principal-id <id>Create an application access key.
Identitywr principal state set --principal-id <id> --is-active <bool>Activate or deactivate a principal.
Artifactswr trade-plan get --trade-plan-id <id>Retrieve a deployed trade plan.
Artifactswr trade-plan listList deployed trade plans.
Artifactswr risk-policy get --risk-policy-id <id>Retrieve a deployed risk policy.
Artifactswr risk-policy listList deployed risk policies.
Artifactswr strategy get --strategy-id <id>Retrieve a deployed strategy.
Artifactswr strategy listList deployed strategies.
Artifactswr simulation get --simulation-id <id>Retrieve a simulation definition.
Artifactswr simulation listList simulation definitions and run state.
Simulationwr simulation run --simulation-id <id>Start a historical simulation.
Simulationwr simulation run get --simulation-run-id <id>Get run status and timestamps.
Simulationwr simulation run listList simulation runs.
Simulationwr simulation run delete --simulation-run-id <id>Delete a simulation run.
Simulationwr simulation run performance get --simulation-run-id <id> --group-interval <DAILY|WEEKLY|MONTHLY|YEARLY|FULL>Return grouped performance and risk statistics.

Performance output

The performance command can group results daily, weekly, monthly, yearly, or across the full run. It returns trade counts, winners and losers, realized profit and return, extrema and averages, duration, position value, profit and loss, batting average, win/loss ratio, exposure, maximum drawdown, Sharpe, Sortino, profit factor, and average P&L per trade.

14 · RESULTS

Continue from a completed run into research

A completed simulation is not the end of the workflow. Use the AI or CLI to retrieve authoritative summary metrics, group performance by time, inspect trades with pagination, isolate a difficult month, identify best and worst trades, and build annual-return charts, monthly heatmaps, or weekly equity curves.

SUMMARYReturn and riskEquity, CAGR, drawdown, Sharpe, Sortino, win rate, exposure, and profit factor.
TRADESPosition detailEntry, exit, size, realized P&L, duration, ticker, and direction.
VISUALSTime-based analysisAnnual bars, monthly heatmap, weekly equity, and period-specific drill-down.
WhaleRiderWhaleRider © 2026 ROCKSOLDI LTDSoftware for user-directed research and historical simulation. WhaleRider does not execute trades, place orders, provide investment recommendations, manage assets, enable transactions, or provide brokerage services. Historical and simulated results do not guarantee future results.