FlashAlpha.QuantConnect 0.1.2

dotnet add package FlashAlpha.QuantConnect --version 0.1.2
                    
NuGet\Install-Package FlashAlpha.QuantConnect -Version 0.1.2
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FlashAlpha.QuantConnect" Version="0.1.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FlashAlpha.QuantConnect" Version="0.1.2" />
                    
Directory.Packages.props
<PackageReference Include="FlashAlpha.QuantConnect" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add FlashAlpha.QuantConnect --version 0.1.2
                    
#r "nuget: FlashAlpha.QuantConnect, 0.1.2"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package FlashAlpha.QuantConnect@0.1.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=FlashAlpha.QuantConnect&version=0.1.2
                    
Install as a Cake Addin
#tool nuget:?package=FlashAlpha.QuantConnect&version=0.1.2
                    
Install as a Cake Tool

flashalpha-quantconnect

FlashAlpha options-flow and dealer-positioning data as native QuantConnect LEAN custom-data bars — C# (NuGet) and Python (PyPI).

Subscribe to GEX (gamma exposure), DEX, VEX, CHEX, the full exposure summary, a smoothed implied-vol surface, 0DTE pin-risk + dealer hedging flows, max-pain, VRP (variance risk premium), advanced volatility (SVI, variance swaps), narrative summaries, stock + option quote books, a coverage universe — seventeen endpoint families — and read them from OnData exactly like any other LEAN bar. Backtest dealer-flow strategies on QuantConnect Cloud or self-hosted LEAN with one AddData<…> line per data type.

NuGet PyPI CI License: MIT


What it does

flashalpha-quantconnect is the official QuantConnect LEAN bridge for the FlashAlpha historical API. It plumbs FlashAlpha's options-flow and dealer-positioning analytics into LEAN as first-class custom-data bars so a backtest just calls AddData<FlashAlphaGexBar>("SPY") (or algorithm.AddData(GexBar, "SPY") in Python) and the bars stream into OnData with full per-strike detail — gamma flips, pin probabilities, IV grids, 0DTE Greeks, VRP scores — all timestamped, all replayable, all version-pinned to the underlying SDK so schema drift dies at compile time.

Family Endpoint slug C# bar class Python bar class
GEX exposure/gex FlashAlphaGexBar GexBar
DEX exposure/dex FlashAlphaDexBar DexBar
VEX exposure/vex FlashAlphaVexBar VexBar
CHEX exposure/chex FlashAlphaChexBar ChexBar
Exposure summary exposure/summary FlashAlphaExposureSummaryBar ExposureSummaryBar
Exposure levels exposure/levels FlashAlphaExposureLevelsBar ExposureLevelsBar
Vol surface surface FlashAlphaSurfaceBar SurfaceBar
Zero-DTE exposure/zero-dte FlashAlphaZeroDteBar ZeroDteBar
Max pain max-pain FlashAlphaMaxPainBar MaxPainBar
Volatility volatility FlashAlphaVolatilityBar VolatilityBar
Advanced vol adv-volatility FlashAlphaAdvVolatilityBar AdvVolatilityBar
VRP vrp FlashAlphaVrpBar VrpBar
Narrative narrative FlashAlphaNarrativeBar NarrativeBar
Stock summary stock/summary FlashAlphaStockSummaryBar StockSummaryBar
Stock quote stock/quote FlashAlphaStockQuoteBar StockQuoteBar
Option quote option/quote FlashAlphaOptionQuoteBar OptionQuoteBar
Tickers (coverage) tickers FlashAlphaTickersBar + universe TickersBar + universe

Full reference: docs/data-types.md.


Install

QuantConnect Cloud (C# or Python)

Both packages are pre-installed in QC Cloud — no pip install or NuGet ceremony. Add your API key to Project → Parameters with the key flashalpha-api-key and paste the value (get one at flashalpha.com). The bridge resolves it via GetParameter on the first request.

Self-hosted LEAN — C# (NuGet)

dotnet add package FlashAlpha.QuantConnect

Or in .csproj:

<PackageReference Include="FlashAlpha.QuantConnect" Version="0.1.0" />

Set the key as an env var so LEAN picks it up:

export FLASHALPHA_API_KEY="fa_live_..."

Self-hosted LEAN — Python (PyPI)

pip install flashalpha-quantconnect

Same env var:

export FLASHALPHA_API_KEY="fa_live_..."

Full auth setup — including CI secrets and key resolution order — lives in docs/auth.md.


QuantConnect GEX — first algorithm

Long when the dealer gamma regime is positive, flat otherwise. Sixty seconds, both languages.

C#

using FlashAlpha.QuantConnect;
using FlashAlpha.QuantConnect.Data;
using QuantConnect;
using QuantConnect.Algorithm;
using QuantConnect.Data;

public class GexRegimeAlgorithm : QCAlgorithm
{
    private Symbol _spy;
    private Symbol _gex;

    public override void Initialize()
    {
        SetStartDate(2024, 1, 1);
        SetEndDate(2024, 12, 31);
        SetCash(100_000);

        _spy = AddEquity("SPY", Resolution.Daily).Symbol;
        _gex = this.AddFlashAlphaGex("SPY").Symbol;
    }

    public override void OnData(Slice slice)
    {
        if (!slice.ContainsKey(_gex)) return;
        var bar = slice.Get<FlashAlphaGexBar>(_gex);
        if (bar == null) return;

        var longRegime = bar.NetGexLabel == "positive";
        SetHoldings(_spy, longRegime ? 1.0m : 0m);
    }
}

Python

from AlgorithmImports import *
from flashalpha_quantconnect import GexBar, add_flashalpha_gex


class GexRegimeAlgorithm(QCAlgorithm):
    def Initialize(self):
        self.SetStartDate(2024, 1, 1)
        self.SetEndDate(2024, 12, 31)
        self.SetCash(100_000)

        self.spy = self.AddEquity("SPY", Resolution.Daily).Symbol
        self.gex = add_flashalpha_gex(self, "SPY").Symbol

    def OnData(self, slice):
        if self.gex not in slice:
            return
        bar = slice[self.gex]
        long_regime = bar.NetGexLabel == "positive"
        self.SetHoldings(self.spy, 1.0 if long_regime else 0.0)

Five more end-to-end recipes — pair-by-ticker with equity bars, 0DTE pin-risk gating, vol-surface snapshots, universe selection by GEX regime — are in docs/recipes/.


Data catalog

Every bar lives at https://historical.flashalpha.com/docs/<endpoint>. Full field tables and side-by-side OnData samples are in docs/data-types.md.

Family Endpoint C# class Python class
GEX exposure/gex FlashAlphaGexBar GexBar
DEX exposure/dex FlashAlphaDexBar DexBar
VEX exposure/vex FlashAlphaVexBar VexBar
CHEX exposure/chex FlashAlphaChexBar ChexBar
Exposure summary exposure/summary FlashAlphaExposureSummaryBar ExposureSummaryBar
Exposure levels exposure/levels FlashAlphaExposureLevelsBar ExposureLevelsBar
Vol surface surface FlashAlphaSurfaceBar SurfaceBar
Zero-DTE exposure/zero-dte FlashAlphaZeroDteBar ZeroDteBar
Max pain max-pain FlashAlphaMaxPainBar MaxPainBar
Volatility volatility FlashAlphaVolatilityBar VolatilityBar
Advanced vol adv-volatility FlashAlphaAdvVolatilityBar AdvVolatilityBar
VRP vrp FlashAlphaVrpBar VrpBar
Narrative narrative FlashAlphaNarrativeBar NarrativeBar
Stock summary stock/summary FlashAlphaStockSummaryBar StockSummaryBar
Stock quote stock/quote FlashAlphaStockQuoteBar StockQuoteBar
Option quote option/quote FlashAlphaOptionQuoteBar OptionQuoteBar
Tickers (coverage) tickers FlashAlphaTickersBar TickersBar

Sugar extensions: every bar has a one-liner — algo.AddFlashAlphaGex("SPY") in C#, add_flashalpha_gex(self, "SPY") in Python — that's equivalent to AddData<FlashAlphaGexBar>("SPY", Resolution.Daily) / self.AddData(GexBar, "SPY", Resolution.Daily) with the daily default already baked in.


Auth

Get an API key at flashalpha.com. The bridge resolves the key in this order:

  1. Explicit overrideFlashAlphaConfig.ApiKey = "fa_live_…" in C#, config.api_key = "fa_live_…" in Python.
  2. QC Cloud parameter — set flashalpha-api-key under Project → Parameters.
  3. Environment variableFLASHALPHA_API_KEY for self-hosted LEAN.

If all three miss the bridge throws FlashAlphaAuthMissingException (error code FA-AUTH-001). Full setup — including CI, dotenv, and secrets hygiene — in docs/auth.md.


Resolution → API cost

LEAN resolution drives how often the bridge calls the FlashAlpha API. Pick the lowest resolution that satisfies your strategy.

LEAN resolution FlashAlpha calls per ticker per trading day Notes
Resolution.Daily 1 Default. One end-of-day snapshot. Cheapest.
Resolution.Hour ~7 RTH hourly bars (09:30, 10:30, … 15:30).
Resolution.Minute ~390 Heavy. Use for research minute-of-the-day studies.
Resolution.Tick not supported The historical API isn't tick-granular.

A 252-day daily backtest of GEX on SPY is 252 API calls. The same backtest at minute resolution is ~98k calls — same data, just more snapshots per session.


QuantConnect 0DTE — recipes

Five end-to-end recipes, each a copy-paste template:


FAQ

Why does FlashAlpha use a separate custom-data Symbol from AddEquity?

QC's custom-data subscription system mints a fresh Symbol for each AddData<T>(ticker, …) call — distinct from the equity Symbol returned by AddEquity(ticker, …). The two are not interchangeable in Slice lookups. Typical algos hold both symbols as fields and pair them by ticker string in OnData. There's a worked example in docs/recipes/combine-flashalpha-with-equity-data.md and a deeper dive at docs/troubleshooting.md#why-two-symbols.

What's the API cost per backtest day?

One FlashAlpha API call per ticker per bar. At Resolution.Daily (the default) that's one call per ticker per trading day — a 252-day SPY-only GEX backtest is 252 calls. At Resolution.Minute it's ~390 calls per ticker per day. The bridge has an in-process cache so duplicate subscriptions on the same (endpoint, ticker, date) reuse the response.

Does this work in QC Cloud?

Yes. Both the NuGet and PyPI packages are available in the QC Cloud project environment. Add your API key under Project → Parameters with the key flashalpha-api-key and the bridge picks it up via GetParameter. No env-var setup needed.

How is this different from polygon/CBOE feeds?

Polygon and CBOE ship the raw chain — quotes, OI, Greeks. FlashAlpha ships the positioning analytics derived from that chain: net dealer GEX/DEX/VEX/CHEX, the gamma flip strike, call/put walls, 0DTE pin probability, dealer hedging-flow estimates, the smoothed IV surface and SVI parameters, VRP and harvest scores, plain-English narrative summaries. You can feed FlashAlpha and raw option data into the same algorithm — see docs/recipes/combine-flashalpha-with-equity-data.md.

Can I use this for live trading?

The current bar set targets the historical endpoint family — meant for backtests and research, not live signals. The same bars will work live in LEAN when the FlashAlpha realtime endpoints land; the subscription surface won't change. Track github.com/FlashAlpha-lab/flashalpha-quantconnect/issues for live-mode milestones.

What's the relationship to the flashalpha-historical SDK?

flashalpha-historical is the raw cross-language SDK for the FlashAlpha historical API — available for Python, .NET, Node, Go, and Java. flashalpha-quantconnect is the LEAN adapter on top of it. The bridge's C# bars depend on FlashAlpha.Historical's typed response models so any schema drift in the SDK breaks the build, never silently corrupts a bar. You generally don't import the SDK directly — AddData<…> is the user-facing surface.



License

MIT. See LICENSE.

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.2 0 6/1/2026
0.1.1 46 5/30/2026
0.1.0 51 5/30/2026