I have a simple algorithm that is similar to the Liquid Universe selection in the Boot Camp tutorial. When placing an order in the OnSecuritiesChanged event, I'm seeing the following error…
The security does not have an accurate price as it has not yet received a bar of data.
Searching the forum turned up this answer which works but I'm curious as to why the error is thrown if the symbols have been added to the universe. If I save the changes to a variable and buy in the OnData event, everything works fine. Should I be buying and selling in OnData instead of OnSecuritiesChanged?
Justin Busa
Here's the algorithm for reference.
Fred Painchaud
Hi Justin,
“Should I be buying and selling in OnData instead of OnSecuritiesChanged?”
Yes. What happens is that in OnSecuritiesChanged, your securities have just been added or removed from the Universe. For the added ones, they need to be in the Universe for them to receive at least one bar. So previous to OnSecuritiesChanged, they were not there so they could not get any data (you were not “subscribed” to them). After OnSecuritiesChanged return, they are there and will start getting data.
So OnSecuritiesChanged is usually used to manage internal variables with symbols, sometimes dictionaries from symbols → indicators, etc. You can also liquidate securities that are removed (if invested) - or else, it will become difficult to exit those positions as you can imagine.
Cheers,
Fred
Justin Busa
Hey Fred, thanks for clarifying that. I'll stick to buying in onData. Appreciate the help!
Justin Busa
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!