Skip to content

feat: Incremental & streaming quotes, v3.0.0#1014

Draft
DaveSkender wants to merge 441 commits intomainfrom
v3
Draft

feat: Incremental & streaming quotes, v3.0.0#1014
DaveSkender wants to merge 441 commits intomainfrom
v3

Conversation

@DaveSkender
Copy link
Owner

@DaveSkender DaveSkender commented Jan 28, 2023

v3.0.0: Streaming indicators (in-progress)

This is a collection of progressive and volatile pre-release features to produce streaming indicators and support for ingestion of price quotes from WebSockets and other active and incremental quote sources.

Note
Please provide comments and feedback in our discussion for v3.0.0 preview | Streaming features (feedback)

Notable scope

Repository owner locked and limited conversation to collaborators Feb 6, 2023
@DaveSkender DaveSkender changed the title streaming baseline streaming and live quotes Feb 6, 2023
@DaveSkender DaveSkender changed the title streaming and live quotes v3: streaming and live quotes Aug 31, 2023
@DaveSkender DaveSkender changed the title v3: streaming and live quotes v3: incremental & streaming quotes Aug 31, 2023
@DaveSkender DaveSkender added this to the v3 milestone Oct 12, 2023
Repository owner unlocked this conversation Nov 11, 2023
@DaveSkender DaveSkender changed the title v3: incremental & streaming quotes feat: Incremental & streaming quotes, v3.0.0 Jan 1, 2024
@DaveSkender DaveSkender self-assigned this Mar 31, 2024
Repository owner deleted a comment from github-actions bot Jun 29, 2024
@DaveSkender
Copy link
Owner Author

DaveSkender commented Jul 1, 2024

Renaming to do or consider

  • change ISeries.Date to Timestamp to avoid conflict with .NET reserved name
  • change Quote to Bar or Candle to allow future path to consuming bid/ask quotes with proper nomenclature. Confirm potential use of Tick as individual trade information.
  • change BasicData to QuotePart since we're using this in new contexts for streaming
  • Streaming classes as “EmaHub”. These are really hubs that are both observers and obervables

Related migration documentation

  • Ensure maximum backwards compatibility
    • [Obsolete] IQuote as base to IBar
    • with Timestamp => Date (or some form of graceful transition)
  • update documentation, migration notes, [Obsolete] transitions, where possible

@DaveSkender
Copy link
Owner Author

Additional testing to do, or to consider

  • add comprehensive manual test project to v2, to exercise all public interfaces; but, also to identify all breaking changes to ensure max use of [Obsolete] transitions and complete migration documentation.
    • use this as base for Observer.Streaming project (in v3 branch)
    • similarly update missing public use cases to Tests.Other project

@DaveSkender
Copy link
Owner Author

Documentation to do, or to consider for previews

  • add temporary dotnet.stockindicators.dev/v3 DNS pointer
    • and related NuGet release notes URL
    • and related deployer URL, that's used in draft release notes generator

@DaveSkender
Copy link
Owner Author

DaveSkender commented Jul 1, 2024

Interface designs to do, or to consider

  • consider switching to IReadOnlyList or IList as external list interfaces, instead of IEnumerable, but double-check consequences. I kind of think converting to list happens more often than not with end use; not sure of pros/cons.
  • ensure primary public classes can be mocked (has interface or is otherwise virtual). There's likely a conflict with sealed results; however, output classes don't typically need to be mocked with end-user testing (verify).

@DaveSkender
Copy link
Owner Author

For consideration; but may want to implement this in a v3.1

    /// <summary>
    /// Optional.  Use externally provided cache.
    /// </summary>
    /// <param name="externalCache"></param>
    /// <remarks>
    /// Allow users to provide their own cache storage location.
    /// </remarks>
    protected AbstractCache(
        List<TSeries> externalCache)
    {
        Cache = externalCache;
        throw new NotImplementedException();
    }

@DaveSkender
Copy link
Owner Author

  • restore .NET Standard v2.1, if possible

@DaveSkender
Copy link
Owner Author

@thomasd3 (re: #1245), as a quick forecast, I’m hoping to get this major version out by end of this year in the next 2-3 months. I was aiming to time it with the .NET 9 release date, but don’t think that’s going to happen.

I’ll also publish an updated preview edition soon; we’re still working through concepts and bigger breaking changes.

@DaveSkender DaveSkender mentioned this pull request Sep 3, 2024
@DaveSkender
Copy link
Owner Author

DaveSkender commented Nov 11, 2024

@codebeaulieu
Copy link

codebeaulieu commented Nov 17, 2024

Very excited about this major update @DaveSkender - really cool stuff.

This probably doesn't fit into your library anywhere but I am writing a system that uses FusionCache to store candles, it's extremely fast and versatile, worth checking out.

@DaveSkender DaveSkender marked this pull request as ready for review November 29, 2024 00:54
@DaveSkender DaveSkender requested a review from Copilot November 29, 2024 00:54
@DaveSkender DaveSkender marked this pull request as draft November 29, 2024 00:55
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot reviewed 884 out of 899 changed files in this pull request and generated 1 suggestion.

Files not reviewed (15)
  • .editorconfig: Language not supported
  • .gitattributes: Language not supported
  • .vscode/extensions.json: Language not supported
  • Stock.Indicators.sln: Language not supported
  • docs/_indicators/Adx.md: Evaluated as low risk
  • docs/_includes/candle-result.md: Evaluated as low risk
  • .github/workflows/test-examples.yml: Evaluated as low risk
  • .github/workflows/test-indicators.yml: Evaluated as low risk
  • docs/_data/aliases.yml: Evaluated as low risk
  • docs/_indicators/Aroon.md: Evaluated as low risk
  • .github/workflows/deploy-package.yml: Evaluated as low risk
  • docs/_indicators/Alma.md: Evaluated as low risk
  • docs/_indicators/Alligator.md: Evaluated as low risk
  • docs/_includes/candle-properties.md: Evaluated as low risk
  • .github/workflows/test-website-links.yml: Evaluated as low risk

@DaveSkender DaveSkender temporarily deployed to stockindicators.dev February 21, 2026 08:24 — with GitHub Actions Inactive
Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: DaveSkender <[email protected]>
@DaveSkender DaveSkender temporarily deployed to stockindicators.dev February 22, 2026 10:43 — with GitHub Actions Inactive
Signed-off-by: Dave Skender <[email protected]>
Signed-off-by: GitHub <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
@DaveSkender DaveSkender temporarily deployed to stockindicators.dev February 22, 2026 16:35 — with GitHub Actions Inactive
@DaveSkender DaveSkender temporarily deployed to stockindicators.dev February 22, 2026 18:46 — with GitHub Actions Inactive
@DaveSkender DaveSkender temporarily deployed to stockindicators.dev February 22, 2026 21:22 — with GitHub Actions Inactive
Signed-off-by: Dave Skender <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Signed-off-by: Dave Skender <[email protected]>
Signed-off-by: GitHub <[email protected]>
Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: DaveSkender <[email protected]>
@DaveSkender DaveSkender temporarily deployed to stockindicators.dev February 28, 2026 13:54 — with GitHub Actions Inactive
Signed-off-by: Dave Skender <[email protected]>
Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: DaveSkender <[email protected]>
Signed-off-by: Dave Skender <[email protected]>
Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: DaveSkender <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

add standalone buffer-style increment methods

5 participants