Back

Currency pair spread..

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?

Update Backtest







0

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.


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.

0

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.


Update Backtest





0

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.


Loading...

This discussion is closed