Header menu logo Teaching

BinderScriptNotebook

Predictability

We'll revisit some old topics but also touch on new ones. Objectives:

#r "nuget: NovaSBE.Finance, 0.5.0"
#r "nuget: FSharp.Stats, 0.5.0"
#r "nuget: ExcelProvider, 2.0.0"
#r "nuget: Plotly.NET, 3.*"
#r "nuget: Plotly.NET.Interactive, 3.*"

open System
open NovaSBE.Finance
open NovaSBE.Finance.Utils
open FSharp.Stats
open Plotly.NET
open Plotly.NET.Interactive

let ff3 = French.getFF3 French.Monthly
let ff3Daily = French.getFF3 French.Daily

Vol Managed Portfolios

Simple vol managed

Following Moreia and Muir (2017) this strategy is \(w_t = \frac{c}{\hat{\sigma}^2_t}\) where \(c\) is a constant that sets the strategie's standard deviation to that of the buy-hold portfolio.

The variance prediction is based on realized variance the prior month.

type ManagedObs =
    { Month: DateTime 
      RiskyWeight: float 
      Return: float }

/// Realized variance from month t-1 to predict month t. The key is month t, the value is predicted variance
let mmVarPred =
    ff3Daily
    |> Array.groupBy (fun x -> DateTime(x.Date.Year, x.Date.Month, 1))
    |> Array.map (fun (month, dayObs) ->
        let mu = dayObs |> Array.averageBy (fun x -> x.MktRf)
        let realizedVar = 
            dayObs 
            |> Array.map (fun x -> (x.MktRf - mu) ** 2.0) 
            |> Array.sum
        month.AddMonths(1), realizedVar)
    |> Map

let minMonth = mmVarPred.Keys |> Seq.min
let maxMonth = mmVarPred.Keys |> Seq.max
    
let simpleManaged =
    ff3
    |> Array.filter (fun x -> x.Date >= minMonth && x.Date <= maxMonth)
    |> Array.map (fun x ->
        let var = mmVarPred[x.Date]
        let w = 1.0 / var
        { Month = x.Date
          RiskyWeight = w
          Return = w * x.MktRf })


let buyHold =
    ff3
    |> Array.filter (fun x -> x.Date >= minMonth && x.Date <= maxMonth)
    |> Array.map (fun x ->
        { Month = x.Date
          RiskyWeight = 1.0
          Return = x.MktRf })

Let's compare the unnormalized managed vol port and the buy and hold.

let annualizedStDev (xs: seq<ManagedObs>) =
    xs
    |> Seq.map (fun x -> x.Return)
    |> stDev
    |> (*) (sqrt 12.0)

unnormalized managed vol.

let unnormalizedStDev =
    simpleManaged
    |> annualizedStDev
unnormalizedStDev

buy and hold.

let buyHoldStDev =
    buyHold
    |> annualizedStDev

Normalized managed vol

let mmConstant = buyHoldStDev / unnormalizedStDev
mmConstant

Normalized the strategy.

let simpleManaged2 =
    simpleManaged
    |> Array.map (fun x -> 
        { x with 
            RiskyWeight = mmConstant * x.RiskyWeight
            Return = mmConstant * x.Return })

simpleManaged2
|> annualizedStDev

Plot all portfolios.

let accumulateFromOne (xs: seq<ManagedObs>) =
    let sortedXs = xs |> Seq.sortBy (fun x -> x.Month)
    let mutable cr = 1.0
    [| for x in sortedXs do 
        cr <- cr * (1.0 + x.Return )
        x.Month, cr |]

[ "Buy and Hold", buyHold
  "Unnormalized Managed Vol", simpleManaged
  "Normalized Managed Vol", simpleManaged2 ]
|> List.map (fun (name, port) ->
    port
    |> accumulateFromOne
    |> Chart.Line
    |> Chart.withTraceInfo(Name=name))
|> Chart.combine
|> Chart.withYAxisStyle(AxisType=StyleParam.AxisType.Log)

Unnormalized doesn't make any sense.

[ "Buy and Hold", buyHold
  "Managed Vol", simpleManaged2 ]
|> List.map (fun (name, port) ->
    port
    |> accumulateFromOne
    |> Chart.Line
    |> Chart.withTraceInfo(Name=name))
|> Chart.combine
|> Chart.withYAxisStyle(AxisType=StyleParam.AxisType.Log)

Look at sharpe ratios.

let sharpe (xs: seq<ManagedObs>) =
    let sd = xs |> annualizedStDev
    let mean = xs |> Seq.averageBy (fun x -> 12.0 * x.Return)
    mean / sd

$"Buy and Hold: {buyHold |> sharpe}"
$"Unnormalized Managed Vol: {simpleManaged |> sharpe}"
$"Managed Vol: {simpleManaged2 |> sharpe}"

By decade.

let sharpeByDecade (xs: seq<ManagedObs>) =
    xs
    |> Seq.groupBy (fun x -> 10 * (x.Month.Year / 10))
    |> Seq.map (fun (decade, decadeObs) ->
        {| Decade = decade; Sharpe = sharpe decadeObs|})
    |> Array.ofSeq

let buyHoldDecades = buyHold |> sharpeByDecade
let simpleManaged2Decades = simpleManaged2 |> sharpeByDecade

for i = 0 to buyHoldDecades.Length-1 do 
    printfn $"Decade: {buyHoldDecades[i].Decade}"
    printfn $"  Buy-Hold/Managed: %.2f{buyHoldDecades[i].Sharpe} / %.2f{simpleManaged2Decades[i].Sharpe}"

Check alphas

let ff3Map = ff3 |> Array.map (fun x -> x.Date, x) |> Map

let regData =
    simpleManaged2
    |> Array.filter (fun x -> x.Month <= DateTime(2015,12,31) && x.Month >= DateTime(1927,1,1))
    |> Array.map (fun x ->
        {| Month = x.Month
           Managed = x.Return * 12.0 
           MktRf = ff3Map[x.Month].MktRf * 12.0 |})

open NovaSBE.Finance.Ols

Ols("Managed ~ MktRf", regData).fit().summary()

Mean-variance optimal managed vols

Mean-variance utility

let mvUtility gamma mu sigma =
    mu - 0.5 * gamma * sigma ** 2.0

/// Annualized buy-and-hold sample return.
let buyHoldAvg = buyHold |> Array.averageBy (fun x -> 12.0 * x.Return)

printfn $"Mean: {buyHoldAvg}"
printfn $"StDev: {buyHoldStDev}"

mvUtility 3.0 buyHoldAvg buyHoldStDev

Function to to it for our managed portfolios.

let managedMVUtility gamma (xs: seq<ManagedObs>) =
    let avg = xs |> Seq.averageBy (fun x -> 12.0 * x.Return)
    let stDev = xs |> annualizedStDev
    mvUtility gamma avg stDev

let portSummary name port =
    printfn $"_________\n{name}\nNumber of months: {Seq.length port}"
    printfn $"Sharpe: {port |> sharpe}"
    printfn $"MV Utility: {managedMVUtility 3.0 port}"
    printfn $"annaluzed stdev: {port |> annualizedStDev}"

portSummary "Buy and Hold" buyHold
portSummary "Unnormalized Managed Vol" simpleManaged
portSummary "Normalized Managed Vol" simpleManaged2

Mean-variance optimal weight.

let mvWeight gamma mu sigma =
    mu / (gamma * sigma ** 2.0)

mvWeight 3.0 buyHoldAvg buyHoldStDev

Managed portfolio assuming we knew the full-sample mean and standard deviation ahead of time. We cannot use this to trade, because it uses future information. But it's a good benchmark.

let w_staticMuSigma = mvWeight 3.0 buyHoldAvg buyHoldStDev
let managedStaticMuSigma =
    buyHold
    |> Array.map (fun x -> 
        { x with 
            RiskyWeight = w_staticMuSigma
            Return = w_staticMuSigma * x.Return })

portSummary "Managed, known mu and sigma" managedStaticMuSigma
portSummary "Managed, base case" simpleManaged2

Let's now try with a static mean return estimate, but we'll use the rolling variance estimate.

/// Calculates a mean-variance optimal port given gamma and estimates of mu's and sigma's.
let managedMVPort gamma muEstimates varEstimates =
    ff3
    |> Array.choose (fun x ->
        let sd = varEstimates |> Map.tryFind x.Date |> Option.map sqrt
        let mu = muEstimates |> Map.tryFind x.Date
        match sd, mu with
        | Some sd, Some mu ->
            let w = mvWeight 3.0 mu sd
            let result = 
                { Month = x.Date
                  RiskyWeight = w
                  Return = w * x.MktRf }
            Some result
        | _ -> None)

Full sample 'estimates'

let muEstFull = [ for x in ff3 do x.Date, buyHoldAvg / 12.0 ] |> Map
let sigmaEstFull = [ for x in ff3 do x.Date, buyHoldStDev / sqrt 12.0 ] |> Map

portSummary "Managed, static mu and static sigma" managedStaticMuSigma
portSummary "Managed, static mu and rolling sigma" (managedMVPort 3.0 muEstFull sigmaEstFull)

Now actual static mu but rolling sigma estimates.

let managedStaticMuRollingSigma = managedMVPort 3.0 muEstFull mmVarPred

portSummary "Managd, static mu and rolling sigma" managedStaticMuRollingSigma
portSummary "Managed, base case" simpleManaged2

How volatile is that portfolio?

let sigmaStaticMuRollingSigma = managedStaticMuRollingSigma |> annualizedStDev
sigmaStaticMuRollingSigma

Let's try rescaling our static mu rolling sigma.

let managedStaticMuRollingSigma2 = 
    managedStaticMuRollingSigma
    |> Array.map (fun x -> 
        let c = buyHoldStDev / sigmaStaticMuRollingSigma
        { x with 
            RiskyWeight = x.RiskyWeight * c
            Return = x.Return * c })

portSummary "Managed, static mu and rolling sigma" managedStaticMuRollingSigma2
portSummary "Managed base case" simpleManaged2

Why is the ex-post rescaling so critical to the utility calculation?

let managedHiVolDays =
    managedStaticMuRollingSigma
    |> Array.sortByDescending (fun x -> abs x.Return)
    |> Array.take 10
managedHiVolDays

Let's compare predicted and realized vols on those bad miss days.

[ for x in managedHiVolDays do
    let sd = sqrt (mmVarPred[x.Month]*12.0)
    let realized = (sqrt 12.0) * abs ff3Map[x.Month].MktRf
    {| Month = x.Month 
       RiskyWeight = x.RiskyWeight
       Predicted = sd
       Realized = realized |} ]

We might be able to control this ex-ante by using reasonable leverage limits.

let managedMVPortLimited gamma muEstimates varEstimates =
    ff3
    |> Array.choose (fun x ->
        let sd = varEstimates |> Map.tryFind x.Date |> Option.map sqrt
        let mu = muEstimates |> Map.tryFind x.Date
        match sd, mu with
        | Some sd, Some mu ->
            let w = mvWeight 3.0 mu sd
            let w2 = 
                if w > 2.0 then 2.0 
                elif w < 0.0 then 0.0 
                else w
            let result = 
                { Month = x.Date
                  RiskyWeight = w2
                  Return = w2 * x.MktRf }
            Some result
        | _ -> None)

let managedStaticMuRollingSigma3 = managedMVPortLimited 3.0 muEstFull mmVarPred


portSummary "Managed, static mu and rolling sigma" managedStaticMuRollingSigma3
portSummary "Managed base case" simpleManaged2
portSummary "Buy-and-hold" buyHold

Rolling 'mu estimates', because our portfolios still have a "look-ahead" bias becuase they know what future returns will be.

let muExpandingEstimate =
    let mutable acc = 0.0
    [| for i = 0 to ff3.Length-1 do
        acc <- acc + ff3[i].MktRf
        ff3[i].Date, acc / (float i + 1.0) |]

muExpandingEstimate
|> Chart.Line

How big of a burn-in period to use? Let's just use post-war period.

let muExpandingMap = muExpandingEstimate |> Map
let managedEstAll = 
    managedMVPortLimited 3.0 muExpandingMap mmVarPred
    |> Array.filter (fun x -> x.Month >= DateTime(1945,1,1))

let buyHold1945 = buyHold |> Array.filter (fun x -> x.Month >= DateTime(1945,1,1))
let simpleManaged21945 = 
    let since1945 = simpleManaged2 |> Array.filter (fun x -> x.Month >= DateTime(1945,1,1))
    let sd = since1945 |> annualizedStDev
    let sdBuyHold = buyHold1945 |> annualizedStDev
    let c = sdBuyHold / sd
    since1945
    |> Array.map (fun x -> 
        { x with 
            RiskyWeight = x.RiskyWeight * c 
            Return = x.Return * c })

portSummary "Managed, rolling mu and rolling sigma" managedEstAll
portSummary "Managed base case" simpleManaged21945
portSummary "Buy-and-hold" buyHold1945

Comparin decades.

let buyHold1945Decades = buyHold1945 |> sharpeByDecade
let managedEstAllDecades = managedEstAll |> sharpeByDecade

for i = 0 to buyHold1945Decades.Length-1 do 
    printfn $"Decade: {buyHold1945Decades[i].Decade}"
    printfn $"  Buy-Hold/Managed: %.2f{buyHold1945Decades[i].Sharpe} / %.2f{managedEstAllDecades[i].Sharpe}"

Comparing Vol forecasts

type ReturnObs = { Date: DateTime; Return: float}

type VolatilityPrediction = 
    { /// First date the prediction is valid for
      Date: DateTime
      /// The volatility prediction
      PredictedVol: float }

/// <summary>Calculates realized volatity of a return observation using an exponential weight.</summary>
/// <param name="width">The window width for calculating realized vol.</param>
/// <param name="lambda">The exponential weight</param>
/// <param name="data">The input data</param>
/// <returns>A prediction and date the prediction is valid for.</returns>
let expRealizedVol (width: int) (lambda: float) (data: array<ReturnObs>) =
    data
    |> Array.sortByDescending (fun x -> x.Date)
    |> Array.windowed (width + 1)
    |> Array.Parallel.map (fun window ->
        let mu = window[1..] |> Array.averageBy (fun x -> x.Return)
        let mutable acc = 0.0
        for t = 1 to width do 
            let w = (1.0 - lambda)*lambda**(float t - 1.0)
            acc <- acc + w * (window[t].Return - mu)**2.0
        { VolatilityPrediction.Date = window[0].Date; PredictedVol = sqrt acc })
    |> Array.rev

let expVarPred =
    ff3Daily
    |> Array.map (fun x -> { Date = x.Date; Return = x.MktRf })
    |> expRealizedVol 500 0.94 
    |> Array.groupBy (fun x -> DateTime(x.Date.Year, x.Date.Month, 1))
    |> Array.map (fun (month, xs) ->
        let last = xs |> Array.sortBy (fun x -> x.Date) |> Array.last
        month.AddMonths(1), 22.0 * last.PredictedVol ** 2.0)
    |> Map

Compare vol accuracies

let checkVols =
    [| for dt in expVarPred.Keys |> Seq.filter (fun x -> x >= DateTime(1945,1,1) ) do
        if expVarPred.ContainsKey (dt.AddMonths(1)) then
           {| Date = dt
              ExpVar = expVarPred[dt]
              Var22d = mmVarPred[dt]
              Actual = mmVarPred[dt.AddMonths(1)]|}|]

Exponential vol

Ols("Actual~ExpVar", checkVols).fit().summary()

Rolling vol

Ols("Actual~Var22d", checkVols).fit().summary()

Compare ports

let managedExpVar = 
    managedMVPortLimited 3.0 muExpandingMap expVarPred
    |> Array.filter (fun x -> x.Month >= DateTime(1945,1,1))

portSummary "Managed, rolling mu and exp. vol" managedExpVar
portSummary "Managed, rolling mu and rolling vol" managedEstAll
portSummary "Buy and hold" buyHold1945
namespace System
namespace NovaSBE
namespace NovaSBE.Finance
module Utils from NovaSBE.Finance
Multiple items
namespace FSharp

--------------------
namespace Microsoft.FSharp
namespace FSharp.Stats
namespace Plotly
namespace Plotly.NET
namespace Plotly.NET.Interactive
val ff3: French.FF3Obs array
module French from NovaSBE.Finance
val getFF3: frequency: French.Frequency -> French.FF3Obs array
union case French.Frequency.Monthly: French.Frequency
val ff3Daily: French.FF3Obs array
union case French.Frequency.Daily: French.Frequency
type ManagedObs = { Month: DateTime RiskyWeight: float Return: float }
Multiple items
[<Struct>] type DateTime = new: year: int * month: int * day: int -> unit + 16 overloads member Add: value: TimeSpan -> DateTime member AddDays: value: float -> DateTime member AddHours: value: float -> DateTime member AddMicroseconds: value: float -> DateTime member AddMilliseconds: value: float -> DateTime member AddMinutes: value: float -> DateTime member AddMonths: months: int -> DateTime member AddSeconds: value: float -> DateTime member AddTicks: value: int64 -> DateTime ...
<summary>Represents an instant in time, typically expressed as a date and time of day.</summary>

--------------------
DateTime ()
   (+0 other overloads)
DateTime(ticks: int64) : DateTime
   (+0 other overloads)
DateTime(ticks: int64, kind: DateTimeKind) : DateTime
   (+0 other overloads)
DateTime(date: DateOnly, time: TimeOnly) : DateTime
   (+0 other overloads)
DateTime(year: int, month: int, day: int) : DateTime
   (+0 other overloads)
DateTime(date: DateOnly, time: TimeOnly, kind: DateTimeKind) : DateTime
   (+0 other overloads)
DateTime(year: int, month: int, day: int, calendar: Globalization.Calendar) : DateTime
   (+0 other overloads)
DateTime(year: int, month: int, day: int, hour: int, minute: int, second: int) : DateTime
   (+0 other overloads)
DateTime(year: int, month: int, day: int, hour: int, minute: int, second: int, kind: DateTimeKind) : DateTime
   (+0 other overloads)
DateTime(year: int, month: int, day: int, hour: int, minute: int, second: int, calendar: Globalization.Calendar) : DateTime
   (+0 other overloads)
Multiple items
val float: value: 'T -> float (requires member op_Explicit)

--------------------
type float = Double

--------------------
type float<'Measure> = float
val mmVarPred: Map<DateTime,float>
 Realized variance from month t-1 to predict month t. The key is month t, the value is predicted variance
Multiple items
type Array = new: unit -> Array static member geomspace: start: float * stop: float * num: int * ?IncludeEndpoint: bool -> float array static member linspace: start: float * stop: float * num: int * ?IncludeEndpoint: bool -> float array

--------------------
new: unit -> Array
val groupBy: projection: ('T -> 'Key) -> array: 'T array -> ('Key * 'T array) array (requires equality)
val x: French.FF3Obs
French.FF3Obs.Date: DateTime
property DateTime.Year: int with get
<summary>Gets the year component of the date represented by this instance.</summary>
<returns>The year, between 1 and 9999.</returns>
property DateTime.Month: int with get
<summary>Gets the month component of the date represented by this instance.</summary>
<returns>The month component, expressed as a value between 1 and 12.</returns>
val map: mapping: ('T -> 'U) -> array: 'T array -> 'U array
val month: DateTime
val dayObs: French.FF3Obs array
val mu: float
val averageBy: projection: ('T -> 'U) -> array: 'T array -> 'U (requires member (+) and member DivideByInt and member Zero)
French.FF3Obs.MktRf: float
val realizedVar: float
val sum: array: 'T array -> 'T (requires member (+) and member Zero)
DateTime.AddMonths(months: int) : DateTime
Multiple items
module Map from FSharp.Stats
<summary> Module to strore specialised computations on maps </summary>

--------------------
module Map from Microsoft.FSharp.Collections

--------------------
type Map<'Key,'Value (requires comparison)> = interface IReadOnlyDictionary<'Key,'Value> interface IReadOnlyCollection<KeyValuePair<'Key,'Value>> interface IEnumerable interface IStructuralEquatable interface IComparable interface IEnumerable<KeyValuePair<'Key,'Value>> interface ICollection<KeyValuePair<'Key,'Value>> interface IDictionary<'Key,'Value> new: elements: ('Key * 'Value) seq -> Map<'Key,'Value> member Add: key: 'Key * value: 'Value -> Map<'Key,'Value> ...

--------------------
new: elements: ('Key * 'Value) seq -> Map<'Key,'Value>
val minMonth: DateTime
property Map.Keys: Collections.Generic.ICollection<DateTime> with get
Multiple items
module Seq from FSharp.Stats
<summary> Module to compute common statistical measure </summary>

--------------------
module Seq from Microsoft.FSharp.Collections

--------------------
type Seq = new: unit -> Seq static member geomspace: start: float * stop: float * num: int * ?IncludeEndpoint: bool -> float seq static member linspace: start: float * stop: float * num: int * ?IncludeEndpoint: bool -> float seq

--------------------
new: unit -> Seq
val min: source: 'T seq -> 'T (requires comparison)
val maxMonth: DateTime
val max: source: 'T seq -> 'T (requires comparison)
val simpleManaged: ManagedObs array
val filter: predicate: ('T -> bool) -> array: 'T array -> 'T array
val var: float
val w: float
val buyHold: ManagedObs array
val annualizedStDev: xs: ManagedObs seq -> float
val xs: ManagedObs seq
Multiple items
val seq: sequence: 'T seq -> 'T seq

--------------------
type 'T seq = Collections.Generic.IEnumerable<'T>
val map: mapping: ('T -> 'U) -> source: 'T seq -> 'U seq
val x: ManagedObs
ManagedObs.Return: float
val stDev: items: 'T seq -> 'U (requires member (-) and member Zero and member DivideByInt and member (+) and member ( * ) and member (+) and member (/) and member Sqrt)
<summary> Computes the sample standard deviation </summary>
<param name="items">The input sequence.</param>
<remarks>Returns NaN if data is empty or if any entry is NaN.</remarks>
<returns>standard deviation of a sample (Bessel's correction by N-1)</returns>
val sqrt: value: 'T -> 'U (requires member Sqrt)
val unnormalizedStDev: float
val buyHoldStDev: float
val mmConstant: float
val simpleManaged2: ManagedObs array
ManagedObs.RiskyWeight: float
val accumulateFromOne: xs: ManagedObs seq -> (DateTime * float) array
val sortedXs: ManagedObs seq
val sortBy: projection: ('T -> 'Key) -> source: 'T seq -> 'T seq (requires comparison)
ManagedObs.Month: DateTime
val mutable cr: float
Multiple items
module List from FSharp.Stats
<summary> Module to compute common statistical measure on list </summary>

--------------------
module List from Microsoft.FSharp.Collections

--------------------
type List = new: unit -> List static member geomspace: start: float * stop: float * num: int * ?IncludeEndpoint: bool -> float list static member linspace: start: float * stop: float * num: int * ?IncludeEndpoint: bool -> float list

--------------------
type List<'T> = | op_Nil | op_ColonColon of Head: 'T * Tail: 'T list interface IReadOnlyList<'T> interface IReadOnlyCollection<'T> interface IEnumerable interface IEnumerable<'T> member GetReverseIndex: rank: int * offset: int -> int member GetSlice: startIndex: int option * endIndex: int option -> 'T list static member Cons: head: 'T * tail: 'T list -> 'T list member Head: 'T member IsEmpty: bool member Item: index: int -> 'T with get ...

--------------------
new: unit -> List
val map: mapping: ('T -> 'U) -> list: 'T list -> 'U list
val name: string
val port: ManagedObs array
type Chart = static member AnnotatedHeatmap: zData: #('a1 seq) seq * annotationText: #(string seq) seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Name: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowLegend: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?Opacity: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?X: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?XGap: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?Y: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?YGap: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?Text: 'a5 * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiText: 'a5 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?ColorBar: ColorBar * [<Optional; DefaultParameterValue ((null :> obj))>] ?ColorScale: Colorscale * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowScale: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?ReverseScale: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?ZSmooth: SmoothAlg * [<Optional; DefaultParameterValue ((null :> obj))>] ?Transpose: bool * [<Optional; DefaultParameterValue ((false :> obj))>] ?UseWebGL: bool * [<Optional; DefaultParameterValue ((false :> obj))>] ?ReverseYAxis: bool * [<Optional; DefaultParameterValue ((true :> obj))>] ?UseDefaults: bool -> GenericChart (requires 'a1 :> IConvertible and 'a5 :> IConvertible) + 1 overload static member Area: x: #IConvertible seq * y: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowMarkers: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?Name: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowLegend: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?Opacity: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiOpacity: float seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Text: 'a2 * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiText: 'a2 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?TextPosition: TextPosition * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiTextPosition: TextPosition seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerColorScale: Colorscale * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerOutline: Line * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerSymbol: MarkerSymbol * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiMarkerSymbol: MarkerSymbol seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Marker: Marker * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineColorScale: Colorscale * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineDash: DrawingStyle * [<Optional; DefaultParameterValue ((null :> obj))>] ?Line: Line * [<Optional; DefaultParameterValue ((null :> obj))>] ?StackGroup: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?Orientation: Orientation * [<Optional; DefaultParameterValue ((null :> obj))>] ?GroupNorm: GroupNorm * [<Optional; DefaultParameterValue ((null :> obj))>] ?FillColor: Color * [<Optional; DefaultParameterValue ((false :> obj))>] ?UseWebGL: bool * [<Optional; DefaultParameterValue ((true :> obj))>] ?UseDefaults: bool -> GenericChart (requires 'a2 :> IConvertible) + 1 overload static member Bar: values: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Keys: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Name: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowLegend: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?Opacity: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiOpacity: float seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Text: 'a2 * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiText: 'a2 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerColorScale: Colorscale * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerOutline: Line * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerPatternShape: PatternShape * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiMarkerPatternShape: PatternShape seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerPattern: Pattern * [<Optional; DefaultParameterValue ((null :> obj))>] ?Marker: Marker * [<Optional; DefaultParameterValue ((null :> obj))>] ?Base: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?Width: 'a4 * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiWidth: 'a4 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?TextPosition: TextPosition * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiTextPosition: TextPosition seq * [<Optional; DefaultParameterValue ((true :> obj))>] ?UseDefaults: bool -> GenericChart (requires 'a2 :> IConvertible and 'a4 :> IConvertible) + 1 overload static member BoxPlot: [<Optional; DefaultParameterValue ((null :> obj))>] ?X: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Y: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Name: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowLegend: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?Text: 'a2 * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiText: 'a2 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?FillColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?Marker: Marker * [<Optional; DefaultParameterValue ((null :> obj))>] ?Opacity: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?WhiskerWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?BoxPoints: BoxPoints * [<Optional; DefaultParameterValue ((null :> obj))>] ?BoxMean: BoxMean * [<Optional; DefaultParameterValue ((null :> obj))>] ?Jitter: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?PointPos: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?Orientation: Orientation * [<Optional; DefaultParameterValue ((null :> obj))>] ?OutlineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?OutlineWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?Outline: Line * [<Optional; DefaultParameterValue ((null :> obj))>] ?AlignmentGroup: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?OffsetGroup: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?Notched: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?NotchWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?QuartileMethod: QuartileMethod * [<Optional; DefaultParameterValue ((true :> obj))>] ?UseDefaults: bool -> GenericChart (requires 'a2 :> IConvertible) + 2 overloads static member Bubble: x: #IConvertible seq * y: #IConvertible seq * sizes: int seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Name: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowLegend: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?Opacity: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiOpacity: float seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Text: 'a2 * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiText: 'a2 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?TextPosition: TextPosition * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiTextPosition: TextPosition seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerColorScale: Colorscale * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerOutline: Line * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerSymbol: MarkerSymbol * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiMarkerSymbol: MarkerSymbol seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Marker: Marker * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineColorScale: Colorscale * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineWidth: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?LineDash: DrawingStyle * [<Optional; DefaultParameterValue ((null :> obj))>] ?Line: Line * [<Optional; DefaultParameterValue ((null :> obj))>] ?StackGroup: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?Orientation: Orientation * [<Optional; DefaultParameterValue ((null :> obj))>] ?GroupNorm: GroupNorm * [<Optional; DefaultParameterValue ((false :> obj))>] ?UseWebGL: bool * [<Optional; DefaultParameterValue ((true :> obj))>] ?UseDefaults: bool -> GenericChart (requires 'a2 :> IConvertible) + 1 overload static member Candlestick: ``open`` : #IConvertible seq * high: #IConvertible seq * low: #IConvertible seq * close: #IConvertible seq * x: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Name: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowLegend: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?Opacity: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?Text: 'a5 * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiText: 'a5 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Line: Line * [<Optional; DefaultParameterValue ((null :> obj))>] ?IncreasingColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?Increasing: FinanceMarker * [<Optional; DefaultParameterValue ((null :> obj))>] ?DecreasingColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?Decreasing: FinanceMarker * [<Optional; DefaultParameterValue ((null :> obj))>] ?WhiskerWidth: float * [<Optional; DefaultParameterValue ((true :> obj))>] ?UseDefaults: bool -> GenericChart (requires 'a5 :> IConvertible) + 1 overload static member Column: values: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Keys: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Name: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowLegend: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?Opacity: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiOpacity: float seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Text: 'a2 * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiText: 'a2 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerColorScale: Colorscale * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerOutline: Line * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerPatternShape: PatternShape * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiMarkerPatternShape: PatternShape seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerPattern: Pattern * [<Optional; DefaultParameterValue ((null :> obj))>] ?Marker: Marker * [<Optional; DefaultParameterValue ((null :> obj))>] ?Base: #IConvertible * [<Optional; DefaultParameterValue ((null :> obj))>] ?Width: 'a4 * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiWidth: 'a4 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?TextPosition: TextPosition * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiTextPosition: TextPosition seq * [<Optional; DefaultParameterValue ((true :> obj))>] ?UseDefaults: bool -> GenericChart (requires 'a2 :> IConvertible and 'a4 :> IConvertible) + 1 overload static member Contour: zData: #('a1 seq) seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Name: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowLegend: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?Opacity: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?X: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Y: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Text: 'a4 * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiText: 'a4 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?ColorBar: ColorBar * [<Optional; DefaultParameterValue ((null :> obj))>] ?ColorScale: Colorscale * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowScale: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?ReverseScale: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?Transpose: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?ContourLineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?ContourLineDash: DrawingStyle * [<Optional; DefaultParameterValue ((null :> obj))>] ?ContourLineSmoothing: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?ContourLine: Line * [<Optional; DefaultParameterValue ((null :> obj))>] ?ContoursColoring: ContourColoring * [<Optional; DefaultParameterValue ((null :> obj))>] ?ContoursOperation: ConstraintOperation * [<Optional; DefaultParameterValue ((null :> obj))>] ?ContoursType: ContourType * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowContourLabels: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?ContourLabelFont: Font * [<Optional; DefaultParameterValue ((null :> obj))>] ?Contours: Contours * [<Optional; DefaultParameterValue ((null :> obj))>] ?FillColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?NContours: int * [<Optional; DefaultParameterValue ((true :> obj))>] ?UseDefaults: bool -> GenericChart (requires 'a1 :> IConvertible and 'a4 :> IConvertible) static member Funnel: x: #IConvertible seq * y: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Name: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowLegend: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?Opacity: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?Width: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?Offset: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?Text: 'a2 * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiText: 'a2 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?TextPosition: TextPosition * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiTextPosition: TextPosition seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Orientation: Orientation * [<Optional; DefaultParameterValue ((null :> obj))>] ?AlignmentGroup: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?OffsetGroup: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?MarkerOutline: Line * [<Optional; DefaultParameterValue ((null :> obj))>] ?Marker: Marker * [<Optional; DefaultParameterValue ((null :> obj))>] ?TextInfo: TextInfo * [<Optional; DefaultParameterValue ((null :> obj))>] ?ConnectorLineColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?ConnectorLineStyle: DrawingStyle * [<Optional; DefaultParameterValue ((null :> obj))>] ?ConnectorFillColor: Color * [<Optional; DefaultParameterValue ((null :> obj))>] ?ConnectorLine: Line * [<Optional; DefaultParameterValue ((null :> obj))>] ?Connector: FunnelConnector * [<Optional; DefaultParameterValue ((null :> obj))>] ?InsideTextFont: Font * [<Optional; DefaultParameterValue ((null :> obj))>] ?OutsideTextFont: Font * [<Optional; DefaultParameterValue ((true :> obj))>] ?UseDefaults: bool -> GenericChart (requires 'a2 :> IConvertible) static member Heatmap: zData: #('a1 seq) seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?Name: string * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowLegend: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?Opacity: float * [<Optional; DefaultParameterValue ((null :> obj))>] ?X: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?XGap: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?Y: #IConvertible seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?YGap: int * [<Optional; DefaultParameterValue ((null :> obj))>] ?Text: 'a4 * [<Optional; DefaultParameterValue ((null :> obj))>] ?MultiText: 'a4 seq * [<Optional; DefaultParameterValue ((null :> obj))>] ?ColorBar: ColorBar * [<Optional; DefaultParameterValue ((null :> obj))>] ?ColorScale: Colorscale * [<Optional; DefaultParameterValue ((null :> obj))>] ?ShowScale: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?ReverseScale: bool * [<Optional; DefaultParameterValue ((null :> obj))>] ?ZSmooth: SmoothAlg * [<Optional; DefaultParameterValue ((null :> obj))>] ?Transpose: bool * [<Optional; DefaultParameterValue ((false :> obj))>] ?UseWebGL: bool * [<Optional; DefaultParameterValue ((false :> obj))>] ?ReverseYAxis: bool * [<Optional; DefaultParameterValue ((true :> obj))>] ?UseDefaults: bool -> GenericChart (requires 'a1 :> IConvertible and 'a4 :> IConvertible) + 1 overload ...
static member Chart.Line: xy: (#IConvertible * #IConvertible) seq * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?ShowMarkers: bool * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Name: string * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?ShowLegend: bool * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Opacity: float * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MultiOpacity: float seq * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Text: 'a2 * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MultiText: 'a2 seq * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?TextPosition: StyleParam.TextPosition * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MultiTextPosition: StyleParam.TextPosition seq * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MarkerColor: Color * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MarkerColorScale: StyleParam.Colorscale * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MarkerOutline: Line * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MarkerSymbol: StyleParam.MarkerSymbol * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MultiMarkerSymbol: StyleParam.MarkerSymbol seq * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Marker: TraceObjects.Marker * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?LineColor: Color * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?LineColorScale: StyleParam.Colorscale * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?LineWidth: float * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?LineDash: StyleParam.DrawingStyle * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Line: Line * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?StackGroup: string * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Orientation: StyleParam.Orientation * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?GroupNorm: StyleParam.GroupNorm * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Fill: StyleParam.Fill * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?FillColor: Color * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((false :> obj))>] ?UseWebGL: bool * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((true :> obj))>] ?UseDefaults: bool -> GenericChart.GenericChart (requires 'a2 :> IConvertible)
static member Chart.Line: x: #IConvertible seq * y: #IConvertible seq * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?ShowMarkers: bool * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Name: string * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?ShowLegend: bool * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Opacity: float * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MultiOpacity: float seq * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Text: 'a2 * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MultiText: 'a2 seq * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?TextPosition: StyleParam.TextPosition * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MultiTextPosition: StyleParam.TextPosition seq * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MarkerColor: Color * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MarkerColorScale: StyleParam.Colorscale * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MarkerOutline: Line * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MarkerSymbol: StyleParam.MarkerSymbol * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MultiMarkerSymbol: StyleParam.MarkerSymbol seq * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Marker: TraceObjects.Marker * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?LineColor: Color * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?LineColorScale: StyleParam.Colorscale * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?LineWidth: float * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?LineDash: StyleParam.DrawingStyle * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Line: Line * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?StackGroup: string * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Orientation: StyleParam.Orientation * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?GroupNorm: StyleParam.GroupNorm * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Fill: StyleParam.Fill * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?FillColor: Color * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((false :> obj))>] ?UseWebGL: bool * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((true :> obj))>] ?UseDefaults: bool -> GenericChart.GenericChart (requires 'a2 :> IConvertible)
static member Chart.withTraceInfo: [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Name: string * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Visible: StyleParam.Visible * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?ShowLegend: bool * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?LegendRank: int * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?LegendGroup: string * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?LegendGroupTitle: Title -> (GenericChart.GenericChart -> GenericChart.GenericChart)
static member Chart.combine: gCharts: GenericChart.GenericChart seq -> GenericChart.GenericChart
static member Chart.withYAxisStyle: [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?TitleText: string * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?TitleFont: Font * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?TitleStandoff: int * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Title: Title * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Color: Color * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?AxisType: StyleParam.AxisType * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?MinMax: (#IConvertible * #IConvertible) * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Mirror: StyleParam.Mirror * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?ShowSpikes: bool * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?SpikeColor: Color * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?SpikeThickness: int * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?ShowLine: bool * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?LineColor: Color * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?ShowGrid: bool * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?GridColor: Color * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?ZeroLine: bool * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?ZeroLineColor: Color * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Anchor: StyleParam.LinearAxisId * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Side: StyleParam.Side * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Overlaying: StyleParam.LinearAxisId * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Domain: (float * float) * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Position: float * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?CategoryOrder: StyleParam.CategoryOrder * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?CategoryArray: #IConvertible seq * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?RangeSlider: LayoutObjects.RangeSlider * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?RangeSelector: LayoutObjects.RangeSelector * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?BackgroundColor: Color * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?ShowBackground: bool * [<Runtime.InteropServices.Optional; Runtime.InteropServices.DefaultParameterValue ((null :> obj))>] ?Id: StyleParam.SubPlotId -> (GenericChart.GenericChart -> GenericChart.GenericChart)
module StyleParam from Plotly.NET
type AxisType = | Auto | Linear | Log | Date | Category | MultiCategory member Convert: unit -> obj override ToString: unit -> string static member convert: (AxisType -> obj) static member toString: (AxisType -> string)
<summary> Sets the axis type. By default (Auto), plotly attempts to determined the axis type by looking into the data of the traces that referenced the axis in question. </summary>
union case StyleParam.AxisType.Log: StyleParam.AxisType
val sharpe: xs: ManagedObs seq -> float
val sd: float
val mean: float
val averageBy: projection: ('T -> 'U) -> source: 'T seq -> 'U (requires member (+) and member DivideByInt and member Zero)
val sharpeByDecade: xs: ManagedObs seq -> {| Decade: int; Sharpe: float |} array
val groupBy: projection: ('T -> 'Key) -> source: 'T seq -> ('Key * 'T seq) seq (requires equality)
val decade: int
val decadeObs: ManagedObs seq
val ofSeq: source: 'T seq -> 'T array
val buyHoldDecades: {| Decade: int; Sharpe: float |} array
val simpleManaged2Decades: {| Decade: int; Sharpe: float |} array
val i: int
property Array.Length: int with get
<summary>Gets the total number of elements in all the dimensions of the <see cref="T:System.Array" />.</summary>
<exception cref="T:System.OverflowException">The array is multidimensional and contains more than <see cref="F:System.Int32.MaxValue">Int32.MaxValue</see> elements.</exception>
<returns>The total number of elements in all the dimensions of the <see cref="T:System.Array" />; zero if there are no elements in the array.</returns>
val printfn: format: Printf.TextWriterFormat<'T> -> 'T
val ff3Map: Map<DateTime,French.FF3Obs>
val regData: {| Managed: float; MktRf: float; Month: DateTime |} array
module Ols from NovaSBE.Finance
Multiple items
module Ols from NovaSBE.Finance

--------------------
type Ols<'Record> = new: formula: string * data: 'Record seq -> Ols<'Record> member fit: unit -> RegressionResults member df_model: int member df_resid: int member endog_names: string member exog_names: string array member k_constant: int
<summary>Create a model from a formula and collection of records</summary>

--------------------
new: formula: string * data: 'Record seq -> Ols<'Record>
val mvUtility: gamma: float -> mu: float -> sigma: float -> float
val gamma: float
val sigma: float
val buyHoldAvg: float
 Annualized buy-and-hold sample return.
val managedMVUtility: gamma: float -> xs: ManagedObs seq -> float
val avg: float
val stDev: float
val portSummary: name: 'a -> port: ManagedObs seq -> unit
val name: 'a
val port: ManagedObs seq
val mvWeight: gamma: float -> mu: float -> sigma: float -> float
val w_staticMuSigma: float
val managedStaticMuSigma: ManagedObs array
val managedMVPort: gamma: 'a -> muEstimates: Map<DateTime,float> -> varEstimates: Map<DateTime,float> -> ManagedObs array
 Calculates a mean-variance optimal port given gamma and estimates of mu's and sigma's.
val gamma: 'a
val muEstimates: Map<DateTime,float>
val varEstimates: Map<DateTime,float>
val choose: chooser: ('T -> 'U option) -> array: 'T array -> 'U array
val sd: float option
val tryFind: key: 'Key -> table: Map<'Key,'T> -> 'T option (requires comparison)
module Option from Microsoft.FSharp.Core
val map: mapping: ('T -> 'U) -> option: 'T option -> 'U option
val mu: float option
union case Option.Some: Value: 'T -> Option<'T>
val result: ManagedObs
union case Option.None: Option<'T>
val muEstFull: Map<DateTime,float>
val sigmaEstFull: Map<DateTime,float>
val managedStaticMuRollingSigma: ManagedObs array
val sigmaStaticMuRollingSigma: float
val managedStaticMuRollingSigma2: ManagedObs array
val c: float
val managedHiVolDays: ManagedObs array
val sortByDescending: projection: ('T -> 'Key) -> array: 'T array -> 'T array (requires comparison)
val abs: value: 'T -> 'T (requires member Abs)
val take: count: int -> array: 'T array -> 'T array
val realized: float
val managedMVPortLimited: gamma: 'a -> muEstimates: Map<DateTime,float> -> varEstimates: Map<DateTime,float> -> ManagedObs array
val w2: float
val managedStaticMuRollingSigma3: ManagedObs array
val muExpandingEstimate: (DateTime * float) array
val mutable acc: float
val muExpandingMap: Map<DateTime,float>
val managedEstAll: ManagedObs array
val buyHold1945: ManagedObs array
val simpleManaged21945: ManagedObs array
val since1945: ManagedObs array
val sdBuyHold: float
val buyHold1945Decades: {| Decade: int; Sharpe: float |} array
val managedEstAllDecades: {| Decade: int; Sharpe: float |} array
type ReturnObs = { Date: DateTime Return: float }
type VolatilityPrediction = { Date: DateTime PredictedVol: float }
val expRealizedVol: width: int -> lambda: float -> data: ReturnObs array -> VolatilityPrediction array
 <summary>Calculates realized volatity of a return observation using an exponential weight.</summary>
 <param name="width">The window width for calculating realized vol.</param>
 <param name="lambda">The exponential weight</param>
 <param name="data">The input data</param>
 <returns>A prediction and date the prediction is valid for.</returns>
val width: int
Multiple items
val int: value: 'T -> int (requires member op_Explicit)

--------------------
type int = int32

--------------------
type int<'Measure> = int
val lambda: float
val data: ReturnObs array
type 'T array = 'T array
val x: ReturnObs
ReturnObs.Date: DateTime
val windowed: windowSize: int -> array: 'T array -> 'T array array
module Parallel from Microsoft.FSharp.Collections.ArrayModule
val window: ReturnObs array
ReturnObs.Return: float
val t: int
val rev: array: 'T array -> 'T array
val expVarPred: Map<DateTime,float>
val x: VolatilityPrediction
VolatilityPrediction.Date: DateTime
 First date the prediction is valid for
val xs: VolatilityPrediction array
val last: VolatilityPrediction
val sortBy: projection: ('T -> 'Key) -> array: 'T array -> 'T array (requires comparison)
val last: array: 'T array -> 'T
VolatilityPrediction.PredictedVol: float
 The volatility prediction
val checkVols: {| Actual: float; Date: DateTime; ExpVar: float; Var22d: float |} array
val dt: DateTime
val filter: predicate: ('T -> bool) -> source: 'T seq -> 'T seq
val x: DateTime
member Map.ContainsKey: key: 'Key -> bool
val managedExpVar: ManagedObs array

Type something to start searching.