Back

Moving average of customized data

I want to monitor a customized data (say stock_price_a/stock_price_b) and use the moving average of this ratio as an indicator. I noticed that SMA or EMA function requires a single stock symbol as an input. Is there a way to calculate customized ratio moving average? or I have to do it with a queue and redefine a new function?
Update Backtest








Hey Travis!

I've thrown together a simple algorithm showcasing two of our indicator extension methods. These are the Over and Of extensions. The first will perform division between two indicators and the latter is used to wrap indicators in other indicators.

EMA_KO = EMA("KO", 14, Resolution.Daily);
EMA_PEP = EMA("PEP", 14, Resolution.Daily);

// This will create a new indicator that is the ema_ko divided by the ema_pep
KO_Over_PEP = EMA_KO.Over(EMA_PEP);

// we'll also create a bollinger band of the ratio for plotting
BB_Ratio = new BollingerBands("BB_Ratio", 14, 2).Of(KO_Over_PEP);


This provides a tremendous amount of flexibility! Let me know what you think!
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 Michael,

Thank you for your reply. I am still a little confused by the method "over"

KO_Over_PEP = EMA_KO.Over(EMA_PEP);

Is this calculating EMA(KO)/EMA(PEP) or EMA(KO/PEP)? Mathematically they are not equivalent and I am looking for the solution for latter...

Thanks for the help!!
0

Hi Travis,

In the example given it is the ratio of the EMAs, with a little tweak we can get it how you want it. What I've done here is made use of our 'Identity' indicator. This serves a special purpose of lifting raw values into the indicator system. Check out the code and let me know what you think!
// the identity indicator 'lifts' values into the indicator system for usage with other
// indicators
KO_Close = Identity("KO");
PEP_Close = Identity("PEP");

// This will create a new indicator that is the ema_ko divided by the ema_pep
KO_Over_PEP = KO_Close.Over(PEP_Close, "Raw Ratio");

// but we want the EMA of our ratio, so make a new EMA and define it as 'of' the ratio
EMA_KO_Over_PEP = new ExponentialMovingAverage("EMA_Ratio", 1200).Of(KO_Over_PEP);

// we'll also create a bollinger band of the EMA of the ratio for plotting
BB_Ratio = new BollingerBands("BB_Ratio", 14, 1200).Of(EMA_KO_Over_PEP);
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