Skip to content

Beta coefficient (β) ​

Beta shows how strongly one asset's price responds to systemic volatility of the entire market. Beta measures an asset's non-diversifiable systematic risk — its market exposure — not its idiosyncratic, asset-specific risk. Upside Beta (Beta+) and Downside Beta (Beta-), popularized by Harry M. Markowitz, are also included. Beta+ and Beta- capture asymmetric sensitivity during rising and falling markets. [Discuss] 💬

Loading chart data...
csharp
// C# usage syntax
IReadOnlyList<BetaResult> results = barsEval
  .ToBeta(barsMarket, lookbackPeriods, type);

Parameters ​

paramdescription
sourceEval
IReadOnlyList<IReusable>
Historical price bars used as the evaluation subject. You must have the same number of periods as sourceMrkt.
sourceMrkt
IReadOnlyList<IReusable>
Historical price bars used as the benchmark basis for comparison. This is usually market index data. You must have the same number of periods as sourceEval.
lookbackPeriods
int
Number of periods (N) in the lookback window. Must be greater than 0 to calculate; however we suggest a larger period for statistically appropriate sample size and especially when using Beta +/-.
type
BetaType
Type of Beta to calculate. Default is BetaType.Standard. See BetaType options below.

Historical price bars requirements ​

You must have at least N periods of sourceEval and sourceMrkt to cover the warmup periods. More than the minimum is typically provided, since a larger sample improves statistical quality — especially when using Beta +/-.

sourceEval and sourceMrkt must have consistent frequency (day, hour, minute, etc). Mismatch histories will throw InvalidBarsException. See the Guide for more information.

BetaType options ​

typedescription
BetaType.StandardStandard Beta only. Uses all historical price bars. (default)
BetaType.UpUpside Beta only. Uses market up bars only.
BetaType.DownDownside Beta only. Uses market down bars only.
BetaType.AllReturns all of the above. Required for Ratio and Convexity values. Note: 3× slower.

✨ Pro tip

Financial institutions often depict a single number for Beta on their sites. To get that same long-term Beta value, use 5 years of monthly bars for bars and a value of 60 for lookbackPeriods. If you only have smaller bars, use the Aggregate() utility to convert it.

Alpha is calculated as R – Rf – Beta (Rm - Rf), where Rf is the risk-free rate.

Response ​

csharp
IReadOnlyList<BetaResult>
  • This method returns a time series of all available indicator values for the bars provided.
  • It always returns the same number of elements as there are in the historical price bars.
  • It does not return a single incremental indicator value.
  • The first N-1 periods will have null values since there's not enough data to calculate.

BetaResult ​

propertydescription
Timestamp
DateTime
Date from evaluated TBar
Beta
double?
Beta coefficient based
BetaUp
double?
Beta+ (Up Beta)
BetaDown
double?
Beta- (Down Beta)
Ratio
double?
Beta ratio is BetaUp/BetaDown
Convexity
double?
Beta convexity is (BetaUp-BetaDown)2
ReturnsEval
double?
Returns of evaluated bars (R)
ReturnsMrkt
double?
Returns of market bars (Rm)

Utilities ​

See Utilities and helpers for more information.

Chaining ​

This indicator may be generated from any chain-enabled indicator or method.

csharp
// example
var results = barsEval
    .Use(CandlePart.HL2)
    .ToBeta(barsMarket.Use(CandlePart.HL2), ..);

🚩 Matching inputs required

Both eval and market arguments must contain the same number of elements and be the results of a chainable indicator or .Use() method.

Results can be further processed on Beta with additional chain-enabled indicators.

csharp
// example
var results = barsEval
    .ToBeta(barsMarket, ..)
    .ToSlope(..);

See Chaining indicators for more.

Streaming ​

Streaming is not supported for this indicator. This indicator requires a second synchronized bar series, which cannot be expressed in the single-series streaming model. Use the Series (batch) implementation with periodic recalculation instead.