Hi
is self.Securities["EURUSD"].AskPrice - self.Securities["EURUSD"].BidPrice correct for calculating spread for a currency pair (e.g. EURUSD)? I am using minute resolution data. Any issue with spread calculation if I don't use tick data?
QUANTCONNECT COMMUNITY
Hi
is self.Securities["EURUSD"].AskPrice - self.Securities["EURUSD"].BidPrice correct for calculating spread for a currency pair (e.g. EURUSD)? I am using minute resolution data. Any issue with spread calculation if I don't use tick data?
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.
Jack Simonson
Hi Anh,
Welcome to QuantConnect! For newcomers, I recommend thoroughly reading the Handling Data documentation here and going through our Boot Camp exercises to better understand the basic data types and accessor methods. Meanwhile, to answer your question, If you want to access the Bid or Ask information outside the OnData method, then your solution is correct. However, when inside the OnData(self, data) method, you don't need to use the `self` prefix to access QuoteBars, which are the data object associated with Forex securities. Additionally, QuoteBars don't support the attribute `AskPrice` or `BidPrice`. The best way to calculate the spread for a currency pair would be:
def OnData(self, data): ## This returns the Close price from the Bid Bar object which is a sub-data type dictionary derived from QuoteBars ask_open = data['EURUSD'].Bid.Close ## This returns the Close price from the Ask Bar object which is a sub-data type dictionary derived from QuoteBars bid_open = data['EURUSD'].Ask.Close ## You don't need to assign these values to variables, but I've done it for demonstration purposes bid_ask_spread = ask_close - bid_close
There is no issue with calculating the spread and any resolution, it just depends on how fine of resolution you want your data to be.
Anh Phuong
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!