Hi everyone,
Here is an implementation of the Ease of Movement Value indicator/oscillator by Richard W. Arms Jr in a classic algorithm. It attempts to "ease" the price movement of an underlier by mixing momentum and volume information into one value. The output is mainly used by traders to assess the strength of a trend or to mitigate stop run risks (aka stop loss hunting).
Here is the math behind EMV:
TH=Today's High, TL=Today's Low, YH=Yesterday's High, YL=Yesterday's Low, TVOL=Today's Volume
EMV reflects the change in volume when prices change. It is best used for mid to long term trends and performs poorly when used for short term trends.
To finish, the creator of EMV believes that once an upward trend is formed, less volume can push prices up (EMV > 0). However, once a downward trend is formed, prices can experience a small or infinite decline (EMV < 0). During volatile markets where large swings in price are accompanied by large volume, EMV will be close to 0.
If you would like more information on Ease of Movement Value, here is a link to Investopedia:
https://www.investopedia.com/terms/e/easeofmovement.asp#:~:text=How%20the%20Ease%20Of%20Movement,%22ease%22%20of%20price%20movement.
Jovad Uribe
Here is the pull request for the indicator. It still needs to be tested. Would really appreciate it if someone would review my code :)
Thanks
Derek Melchin
Hi Jovad,
Great start!
In regards to the algorithm attached above, there are a few things we can improve:
(1) The algorithm subscribes to hourly data, but only updates the indicator value and positions on a daily basis. It's more efficient if we just subscribe the algorithm to daily data. Either way, the algorithm will fill orders at the same open price.
(2) The algorithm makes a History call every day. This should be avoided whenever possible. Instead, we recommend setting up some daily consolidators and updating the indicator values with each newly consolidated bar built by the algorithm.
(3) The indicator ratio uses a hard-coded 10,000 value in it's calculation, but the Investopedia article linked above suggests that it should be
1,000 to 1,000,000,000 depending on the average daily volume of the stock
Perhaps the algorithm could be improved by replacing this hard-coded value with a simple moving average of the daily volume.
I've attached an algorithm below which address the first two issues explained above. I leave the replacement of the hard-coded 10,000 value to be implemented. See the attached files for reference.
In regards to the PR linked above, we will have one of our team members review it shortly. However, after a quick look, I see the following issues:
I recommend reviewing our contributor guidelines to have the latter resolved.
Best,
Derek Melchin
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.
Jovad Uribe
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!