QuantConnect / QuantConnect/Lean

Expand DownloaderDataProvider To Handle Canonical Symbols

Open
#8,236 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

depth feature
Dominant language
C#
Stars
21.7k
Forks
5.3k
Avg merge
2d 22h
Merged PRs (30d)
34

Description

Expected Behavior
  • The DownloaderDataProvider launcher program can handle canonical symbols, using a lookup symbols call if supported
Actual Behavior

N/A

Potential Solution
            if (symbol.IsCanonical())
            {
                try
                {
                      if (_providerInstance is IDataQueueUniverseProvider universeProvider)
                      {
                          symbols = _brokerage.LookupSymbols(symbol, true);
                      }
                      else if (symbol.SecurityType.IsOption())
                      {
                          // we can try with the live option chain provider
                          var chainProvider = new LiveOptionChainProvider();
                          chainProvider.GetOptionContractList(symbol);
                          etc
                }
                }
                catch(ex)
                {
                       Log.Error(ex)
                }

                if (symbols.IsNullOrEmpty())
                {
                    // log trade warning, we can pass the canonical to the provider, maybe it handles it, Polygon for example does,
                    // polygon should be covered by the first `if` in the try catch though, meaning we can clean it up a bit
                }
            }
Reproducing the Problem

N/A

System Information

N/A

Checklist
  • I have completely filled out this template
  • I have confirmed that this issue exists on the current master branch
  • I have confirmed that this is not a duplicate issue by searching issues
  • I have provided detailed steps to reproduce the issue

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the DownloaderDataProvider launcher and reviewing how it currently handles canonical symbols. Trace the provider capabilities and the proposed LookupSymbols and option-chain paths, then define and test behavior for supported and unsupported lookups, including the fallback and warning cases described in the issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
data
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.