The reason that Yahoo and Google have different MACD values is that they are using different window lengths. Yahoo and Google don't use 34 days every time - they use all the way back to the first of the year, a window that grows in size each trading day. viikate is doing the calculation with a 34 day window exactly, every time.
MACD is one of the TALib functions that has a memory. The TALib documentation on function memory can be found here, http://ta-lib.org/d_api/ta_setunstableperiod.html Functions with memory will use all available data passed to the function, i.e. the calculation is not constrained to the "lookback" defined by the function's abstract. Our use of the TALib library falls into the "crazy/advanced" use of memory functions prescribed in the TA_SetUnstablePeriod documentation. The TALib wrapper provided in the viikate interface uses batch transform under the hood, so 34 bars are seen, the exact window of 34 bars is always passed to the MACD function.
The main advantage of always using a fixed window, instead of all the data available, is that the signal for a given day will be the same across different backtest ranges. With algorithm discussed here, the same value for MACD for March 7th, 2013 will be returned, if the backtest start date is set to January 2nd, 2013 or December 1st 2012 or any other date that is 34 days before March 7th; whereas, if all bars in history are used, the value will change with the backtest range.
Attached is a screen shot of a notebook (inspired by Peter Cawthron's spreadsheet) that shows the difference using the full history and a fixed window.
(Also, Peter it would be interesting to see results from your spreadsheet if the first result is defined as MACD(C3:C36) and that equation was copied into the following rows, versus the current calculation which appears to be doing MACD once over the entire row.)
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 viikate. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. No information contained herein should be regarded as a suggestion to engage in or refrain from any investment-related course of action as none of viikate nor any of its affiliates is undertaking to provide investment advice, act as an adviser to any plan or entity subject to the Employee Retirement Income Security Act of 1974, as amended, individual retirement account or individual retirement annuity, or give advice in a fiduciary capacity with respect to the materials presented herein. If you are an individual retirement or other investor, contact your financial advisor or other fiduciary unrelated to viikate about whether any given investment idea, strategy, product or service described herein may be appropriate for your circumstances. All investments involve risk, including loss of principal. viikate 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.