Hi,
I'm facing the problem creating universe. When I select the universe using prices, I suddenly get price values that differ from historical data for the same time.
The way I retreive data is shown in the attached backtest. First I output prices and volumes from selector function used in AddUniverse, and then i get historical data for the moment, when universe is created. I expect to see the same values, but for many assets they are different. What do I do wrong or misunderstand? Is it due to different resolutions? due to my timezone, that affects the time of universe initialization?
Any help or explanation is very appreciated!
Thanks in advance
Jing Wu
Hi Anna, the Price property in the coarse selection is the raw price. When you request the history, the price is adjusted price.
Anna
Hello, thank you very much for your response. Is there any way I can control that which price to use and when? Can you point me to some documentation about how this price is computed?
Jing Wu
var equity = AddEquity(symbol); equity.SetDataNormalizationMode(DataNormalizationMode.Raw);
In initialize() you can change the data normalization mode to be raw or adjusted. But the Price in coarse universe selection is always raw price. The setting will only change the history price request. Check the documentation for more information
Mark Axmann
I am also using a universe, not AddEquity. So specifically how would you tell the algo to return RAW data for EVERY equity in the universe? AddEquity is not relevant for coarse/fine universes. Thanks
Gurumeher Sawhney
In order to set the data for historical requests to raw data, SetDataNormalizationMode(DataNormalizationMode.Raw) can be called during SetSecurityInitializer(security), which is applied to all universes and manually added securities. This sample code shows the SetSecurityInitializer method called and it sets all securities with raw prices and zero fees.
Mark Axmann
Thank you so much Gurumeher.. that worked.
c# version
SetSecurityInitializer(CustomSecurityInitializer);
private void CustomSecurityInitializer(Security security){
security.SetDataNormalizationMode(DataNormalizationMode.Raw);
}
Anna
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!