I'm getting this error when trying to do a backtest on various coins on Coinbase Pro (happens on more than one coin, but this is an example).
During the algorithm initialization, the following exception has occurred: ArgumentException : Symbol can't be found in the Symbol Properties Database: AAVEUSD
I'm guessing this means that AAVEUSD isn't a supported coin. But it is listed in Data Explorer so this makes me think it should be.
However, I found another reference to what coins are listed that is MUCH smaller than the Data Explorer which does not include AAVEUSD (as well as many others):
So I'm curious which is correct? Ideally I could hook into the Data Explorer because there are so many more coins in it, but my backtest doesn't seem to be referring to it, but likely the CSV on GitHub.
For reference, I'm literally just following along with this tutorial but trying to search within unique list of coins and switch the market to “Market.GDAX” in this bit here when running into this issue.
class Pair:
def __init__(self, algorithm, ticker, minimumVolumne):
self.symbol = algorithm.AddCrypto(ticker, Resolution.Daily, Market.GDAX).Symbol
Fred Painchaud
Hi Ryan,
AAVEUSD is there but not in GDAX. If you search the file you found, you'll see you need to use Bitfinex, Binance, Kraken or FTX to use it.
Cheers,
Fred
Ryan H Miller
Hi Fred,
AAVEUSD is in the GDAX Data Explorer though. I guess my question is more about what is the difference between the Data Explorer data and the CSV I found in GitHub? It seems that “Market.GDAX” links to the list that is in GitHub.
But this GitHub list is very limited vs. the actual coins available on Coinbase Pro. Data Explorer seems to capture all (or most) of the coins available. So part of this question is really trying to understand what Data Explorer is and if I can get to it in my algorithms.
The reason I care about extracting all the data from Coinbase vs. the other exchanges is because that is where my actual crypto account is, so ideally I'd like to use their data.
Fred Painchaud
Hi Ryan,
The code uses the csv file in question to determine what's available, not the Data Explorer. I checked. Your error comes from line 82 of file https://github.com/QuantConnect/Lean/blob/bf28a1d313956c6f97262da1ce65dfe3aacafc60/Common/Securities/SecurityService.cs .
I'm sorry but I don't really know what the Data Explorer is, except a web interface to browse the data available in the QC cloud. From what you underlined, it seems that for some reason, its contents is outdated (from a structure perspective) or it does not reflect what is really available for each market…
You might want to contact support@quantconnect.com to get the complete answer on this.
Fred
Ryan H Miller
Thanks! This is exactly what it seemed like to me as well. It is using this CSV file which is not representative of the data that is actually available. Since this data is available through this Data Explorer, I was hoping there was some way to use it. I'll ping support, thanks!
.ekz.
Please let us know the outcome / resolution.
Fred Painchaud
Hi Ryan,
Yes, please report back here.
A workaround is certainly to use custom data and point it to the GDAX/AAVEUSD data. You'd need to figure out what's the path to that data (if accessible) on the cloud side.
Fred
Ryan H Miller
Hey everyone, I heard back from Alex in the support team. He confirmed that the CSV file I found is the correct one for the supported pairs. The Data Explorer link I found will be deprecated and replaced with CoinAPI found in Datasets.
In looking at the GDAX Dataset there, it has 101 pairs available, with is the same amount in the CSV file, so they seem to at least agree with each other. It is a bit disappointing to find so few pairs available for us to trade through the standard Market.GDAX call.
I asked about how it is updated and he said manually although at some point they hope to make it automatic. So it looks like we have to live with about ¼ of the actual traded pairs on Coinbase Pro when using QuantConnect at least for the time being.
Follow up Question for the Forum:
In the tutorial I linked above, Louis created a list of tradable pairs manually to filter from and determine his universe. Is there a way to programmatically call ALL the pairs listed in ‘Market.GDAX’ and filter that list so you don't have to manually look up what is available and what is not and create that list by hand?
.ekz.
That's unfortunate. Did he mention when it will be updated next? I think that's the key question. I'd imagine the process to add new symbols should be simple and turnkey, even though not automated.
As for programatically loading, I believe you can make an HTTP request from your algo, to load the GitHub URL for the CSV; parse it and then filter out the symbols you care about.
Search the tutorials and forums for loading Dropbox data…
On a related note, a question: once you load all the symbols, how do you plan to filter them? Perhaps by volume or market cap? If so, I'd be interested in learning how you implement that.
Ryan H Miller
He did not mention when it would be updated. I came away from it thinking I'll just have to backtest with whatever coins are available and then in live testing, make the trades manually using a different tool with the coins that are there and meet the strategy criteria.
Oh good idea about the Github parsing. That should be really easy using Pandas. Just wasn't sure if there was a built-in way people did it in Quantconnect that was like searching the Universe of stocks where you don't have to do this with extra code.
Right now I'm literally just learning the ins and outs of Quantconnect, so I'm not sure how I'd filter them yet. Likely some course filter on dollar volume to make sure they are liquid. The tutorial that I was copying already did that, so if you want to see that reference, click the link I posted in the first post.
Then after that filtering based on whatever strategy parameters I might have. In the tutorial I copied, he used some value of RSI for this part.
What I'm really trying to do right now is figure out the ins and outs of Quantconnect and sort of develop a framework for strategy building so I can experiment with different pieces independently.
Fred Painchaud
Hi Ryan,
Note that since you'll be loading crypto symbols, Universe Selection will not be available. Universe Selection is not yet implemented on Cryptos…
So basically, you can implement something very similar than Universe Selection from your loaded symbols. You'll need to use AddCrypto to subscribe to them, use your indicators, then remove unqualifying subscriptions from the SubscriptionManager. You can basically implement Universe Selection yourself, on top of calling it as many times as you want / day.
Fred
Ryan H Miller
I started the effort to pull the CSV file within the Research Jupyter Notebook and am getting an error with this code. Testing it in Google Colab has no error and works fine. Any ideas why it would work in Colab and not Quantconnect Research notebooks?
Fred Painchaud
Hi Ryan,
I did not play too much with that kinda stuff (PD and loading csv) so far but have you tried using Download() on QCAlgorithm to download the file and then feed the resulting string to PD?
I'd guess the reason it does not work in QC is that there is some security in place that blocks your download from PD…
Fred
Ryan H Miller
I confirmed that there is security in place where you have to use the download method within the Quantconnect API. This downloads a string, which you can convert to a dataframe. The below code worked for me.
Ryan H Miller
Just for the sake of completeness, this code generates a list of all supported USD pairs on GDAX (Coinbase Pro). You could swap out whatever market or denominator you want to get whatever list you need. But this way you can programmatically figure out the universe and just feed this list into the algorithm for further filtering. Unfortunately it is only 31 pairs, but probably enough to do a reasonable backtest at least.
Ryan H Miller
The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by QuantConnect. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. QuantConnect makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances. All investments involve risk, including loss of principal. You should consult with an investment professional before making any investment decisions.
To unlock posting to the community forums please complete at least 30% of Boot Camp.
You can continue your Boot Camp training progress from the terminal. We hope to see you in the community soon!