Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate CoinApi Integration to Standalone Project #1

Merged
merged 35 commits into from
Feb 14, 2024

Conversation

Romazes
Copy link
Collaborator

@Romazes Romazes commented Feb 12, 2024

Description

This pull request aims to remove the CoinApi data source from Lean.toolbox and replace it with an independent project. This involves refactoring the codebase to eliminate dependencies on CoinApi and creating new functionality and tests to ensure the continued functionality and reliability of the project.

Related Issue

N/A

Related PR

Lean
Lean-cli

Motivation and Context

The motivation behind this change is to decouple Lean.toolbox from CoinApi, allowing for greater flexibility in data sources and reducing reliance on external services. By creating an independent project, we can maintain better control over the data source implementation and potentially incorporate additional data sources in the future. This change aligns with our goal of improving the modularity and maintainability of the codebase.

Requires Documentation Change

Yes, documentation updates will be required to reflect the changes in the data source and provide instructions for integrating alternative data sources.

How Has This Been Tested?

1. QuantConnect.CoinAPI

This pull request includes a series of NUnit tests to ensure the reliability and functionality of the new implementation. Specifically:

  • ThrowsOnFailedAuthentication: Verifies that authentication failures are properly handled.
  • Testing of DataQueueHandler Subscribe: Tests the data queue handler's ability to subscribe to different symbols and exchanges.
  • Test GetHistory with Different Input Data: Validates the behavior of the get history functionality with various input data.
  • SymbolMapper Tests: Ensures the correctness of the symbol mapping functionality.

2. QuantConnect.CoinAPI.Converter

Testing of converting quotes and trades raw data to consolidate data and save on disk.

For instance:

Input data: Kraken quotes and trades

image

Output data: consolidated in different resolution

image

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • Refactor (non-breaking change which improves implementation)
  • Performance (non-breaking change which improves performance. Please add associated performance test and results)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Non-functional change (xml comments/documentation/etc)

Checklist:

  • My code follows the code style of this project.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • All new and existing tests passed.
  • My branch follows the naming convention bug-<issue#>-<description> or feature-<issue#>-<description>

Copy link
Member

@Martin-Molinero Martin-Molinero left a comment

Choose a reason for hiding this comment

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

Thank you 🚀

@Martin-Molinero Martin-Molinero merged commit 89db062 into QuantConnect:master Feb 14, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants