Skip to content

boutquin/Boutquin.MarketData.Adapter

Boutquin.MarketData.Adapter

License Build

Note: CI is currently disabled pending publication of Boutquin.MarketData.* kernel packages to nuget.org. Run dotnet build and dotnet test locally before submitting a PR.

Concrete data source adapters for the Boutquin.MarketData kernel. Each adapter implements IDataSourceAdapter<TRequest, TRecord> from Boutquin.MarketData.Abstractions and self-registers via an AddMarketData*() extension method on IServiceCollection. Adapters are standalone NuGet packages — install only the ones you need.

Adapters

Package Provider Records Auth
Boutquin.MarketData.Adapter.Tiingo Tiingo Bar, InstrumentMetadata API token
Boutquin.MarketData.Adapter.TwelveData Twelve Data Bar, InstrumentMetadata API key
Boutquin.MarketData.Adapter.Frankfurter Frankfurter (ECB FX) FxRate Anonymous
Boutquin.MarketData.Adapter.Fred FRED (St. Louis Fed) ScalarObservation API key
Boutquin.MarketData.Adapter.BankOfCanada Bank of Canada YieldCurveQuote, FxRate, ScalarObservation (CORRA) Anonymous
Boutquin.MarketData.Adapter.NewYorkFed NY Fed Markets API ScalarObservation (SOFR) Anonymous
Boutquin.MarketData.Adapter.UsTreasury US Treasury H.15 YieldCurveQuote Anonymous
Boutquin.MarketData.Adapter.BankOfEngland BoE IADB ScalarObservation (SONIA) Anonymous
Boutquin.MarketData.Adapter.Ecb ECB SDMX ScalarObservation (ESTR) Anonymous
Boutquin.MarketData.Adapter.FamaFrench Ken French Data Library FactorObservation Anonymous
Boutquin.MarketData.Adapter.Cme CME Group settlement CSV files FuturesSettlement File-based

See docs/adapters.md for per-adapter configuration details, rate limits, publication lag notes, and data-quality caveats.

Design Principles

  • Each adapter is a standalone NuGet package with no dependency on other adapters
  • Self-registering DI: each adapter provides a single AddMarketData*() extension method
  • Canonical-first: adapters emit typed records, not dictionaries
  • DataDate on DataProvenance is the actual business date of data served, which may differ from the requested date for sources with publication lag
  • DATE_ROLLBACK DataIssue emitted when actual data date precedes the requested date (e.g., requesting Monday SOFR before the NY Fed publishes returns Friday's fixing)
  • No adapter depends on another adapter or on domain packages (Boutquin.Analytics, Boutquin.Trading, Boutquin.OptionPricing)

Quick Start

// Add the kernel from Boutquin.MarketData.DependencyInjection,
// then attach whichever adapters you need.
services
    .AddMarketDataKernel()
    .AddMarketDataTiingo(opts =>
    {
        opts.ApiToken = configuration["Tiingo:ApiToken"]!;
    })
    .AddMarketDataFred(opts =>
    {
        opts.ApiKey = configuration["Fred:ApiKey"]!;
    })
    .AddMarketDataNewYorkFed();

Then fetch via IDataPipeline:

var result = await pipeline.FetchAsync(
    new PriceHistoryRequest(symbols, dateRange),
    cancellationToken);

foreach (var bar in result.Records)
    Console.WriteLine($"{bar.Symbol} {bar.Date}: close={bar.Close}");

Building

dotnet build Boutquin.MarketData.Adapter.slnx --configuration Release
dotnet test Boutquin.MarketData.Adapter.slnx --configuration Release
dotnet format Boutquin.MarketData.Adapter.slnx --verify-no-changes

Local Development (Before Kernel Is on NuGet)

The nuget.config resolves Boutquin.MarketData.* packages from a local feed at ../Boutquin.MarketData/nupkg. Pack the kernel locally first:

cd ../Boutquin.MarketData
dotnet pack --configuration Release /p:MinVerVersionOverride=0.1.0-local --output nupkg

Documentation

  • Adapter Reference — per-adapter configuration, auth, publication lag, and data-quality notes

Disclaimer

Boutquin.MarketData.Adapter is open-source software provided under the Apache 2.0 License. It is a general-purpose library intended for educational and research purposes.

This software does not constitute financial advice. The data retrieval and normalization tools are provided as-is for research and development. Before using any market data or derived calculations in production, consult with qualified professionals who understand your specific requirements and regulatory obligations.

License

Licensed under the Apache License, Version 2.0.

Copyright (c) 2026 Pierre G. Boutquin. All rights reserved.

About

Concrete data source adapters for the Boutquin.MarketData kernel — 11 standalone NuGet packages (Tiingo, Twelve Data, Frankfurter, FRED, Bank of Canada, NY Fed, US Treasury, Bank of England, ECB, Fama-French, CME)

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages