The economic principle of substitution creates a risk of investing in any commodity. As prices for a particular commodity climb, buyers will seek cheaper substitutions, if available. For example, cheaper metals such as aluminum often substitute for copper in many industrial applications. Similarly, farmers may substitute between corn, oats, wheat and barley as livestock feed based on price.
As we continue to explore our custom research into the metals markets and our presumption that the metals markets are poised for a massive price rally over the next few months/years, we pick up this second part of our multi-part article illustrating our research work and conclusions.  If you missed the first part of this article, please take a minute to review it by before continuing further (Link to Part I).
Access to our research services requires acceptance of our Terms of Business and is subject to our Disclaimer. View our Privacy Policy . The US Stock Service and the US Market Timing service are provided by Chartcraft Inc ("Chartcraft"), which is not a regulated business. All other services are provided by Stockcube Research Limited ("Stockcube") which is authorised and regulated by the UK's Financial Conduct Authority. Chartcraft and Stockcube are wholly-owned by Stockcube Ltd, a UK company registered in England.
Have you heard about the Everything Bubble? Some analysts believe that after the dot-com bubble of the 1990s and the housing bubble of the 2000s, we are in the middle of a price bubble in virtually all asset classes simultaneously caused by the Fed’s unusually easy monetary policy with ultra low interest rates. Although we agree that the US central bank maintained federal funds rate too low for too long, the narrative about a dangerous bubble inflating in a wide variety of countries, industries, and assets does not make sense. The bubble means that the price of an asset deviates from the fundamental value, increasing excessively, to a much greater extent than on other markets. It should be now clear that the existence of overvalued assets necessarily means that other assets are undervalued, so there can’t be the ‘everything bubble’. Sorry, but those who wait for the total asset apocalypse might be disappointed.
At first I did not know what to expect from this book because the cover seemed very amateurish, but I found it interesting. The author describes how he gathered data for San Diego real estate market, and tested whether there were any correlations between different variables. He came up with five Vital Signs that provide valuable clues for anticipating trends. They are:

Raymond A. Merriman is a market analyst and editor of the MMA Cycles Report, an advisory market letter used by financial institutions, investors, and traders throughout the world since 1981. He also edits the SOS Special Stock Market Report, which is issued 8 times per year and continually updates the status of long-term cycles in the U.S. stock market, and individual stocks. Mr. Merriman has worked as an Investment Advisor for Prudential Securities and Shearson Lehman Hutton, as well as Accounts Vice-President of Retail Commodity Futures for Pain Webber Inc., between 1986-1994. He is the author of "Merriman on Market Cycles: The Basics," (1994) "The Ultimate Book on Stock Market Timing Volume 1: Cycles and Patterns in the Indexes," (1997) "The Ultimate Book on Stock Market Timing Volume 3: Geocosmic Correlation to Trading Cycles," (2001), and "The Sun, The Moon, and the Silver Market: Secrets of a Silver Trader" (1992).
Today, nobody argues that the stock market should yield more than the bond market. But other indicators are being used as rules of thumb to judge whether the market may be at an extreme. Typically, these charts show a compelling and simple relationship that appears to identify cyclical market peaks and bottoms. I will touch on a few of the charts I encounter on a regular basis. My point is not to argue whether the U.S. stock market today is expensive or not, but merely to point out flaws in these indicators that suggest an easy answer.
!function(e){function n(t){if(r[t])return r[t].exports;var i=r[t]={i:t,l:!1,exports:{}};return e[t].call(i.exports,i,i.exports,n),i.l=!0,i.exports}var t=window.webpackJsonp;window.webpackJsonp=function(n,r,o){for(var s,a,l=0,u=[];l1)for(var t=1;td)return!1;if(p>f)return!1;var e=window.require.hasModule("shared/browser")&&window.require("shared/browser");return!e||!e.opera}function a(){var e="";return"quora.com"==window.Q.subdomainSuffix&&(e+=[window.location.protocol,"//log.quora.com"].join("")),e+="/ajax/log_errors_3RD_PARTY_POST"}function l(){var e=o(h);h=[],0!==e.length&&c(a(),{revision:window.Q.revision,errors:JSON.stringify(e)})}var u=t("./third_party/tracekit.js"),c=t("./shared/basicrpc.js").rpc;u.remoteFetching=!1,u.collectWindowErrors=!0,u.report.subscribe(r);var f=10,d=window.Q&&window.Q.errorSamplingRate||1,h=[],p=0,m=i(l,1e3),w=window.console&&!(window.NODE_JS&&window.UNIT_TEST);n.report=function(e){try{w&&console.error(e.stack||e),u.report(e)}catch(e){}};var y=function(e,n,t){r({name:n,message:t,source:e,stack:u.computeStackTrace.ofCaller().stack||[]}),w&&console.error(t)};n.logJsError=y.bind(null,"js"),n.logMobileJsError=y.bind(null,"mobile_js")},"./shared/globals.js":function(e,n,t){var r=t("./shared/links.js");(window.Q=window.Q||{}).openUrl=function(e,n){var t=e.href;return r.linkClicked(t,n),window.open(t).opener=null,!1}},"./shared/links.js":function(e,n){var t=[];n.onLinkClick=function(e){t.push(e)},n.linkClicked=function(e,n){for(var r=0;r>>0;if("function"!=typeof e)throw new TypeError;for(arguments.length>1&&(t=n),r=0;r>>0,r=arguments.length>=2?arguments[1]:void 0,i=0;i>>0;if(0===i)return-1;var o=+n||0;if(Math.abs(o)===Infinity&&(o=0),o>=i)return-1;for(t=Math.max(o>=0?o:i-Math.abs(o),0);t>>0;if("function"!=typeof e)throw new TypeError(e+" is not a function");for(arguments.length>1&&(t=n),r=0;r>>0;if("function"!=typeof e)throw new TypeError(e+" is not a function");for(arguments.length>1&&(t=n),r=new Array(s),i=0;i>>0;if("function"!=typeof e)throw new TypeError;for(var r=[],i=arguments.length>=2?arguments[1]:void 0,o=0;o>>0,i=0;if(2==arguments.length)n=arguments[1];else{for(;i=r)throw new TypeError("Reduce of empty array with no initial value");n=t[i++]}for(;i>>0;if(0===i)return-1;for(n=i-1,arguments.length>1&&(n=Number(arguments[1]),n!=n?n=0:0!==n&&n!=1/0&&n!=-1/0&&(n=(n>0||-1)*Math.floor(Math.abs(n)))),t=n>=0?Math.min(n,i-1):i-Math.abs(n);t>=0;t--)if(t in r&&r[t]===e)return t;return-1};t(Array.prototype,"lastIndexOf",c)}if(!Array.prototype.includes){var f=function(e){"use strict";if(null==this)throw new TypeError("Array.prototype.includes called on null or undefined");var n=Object(this),t=parseInt(n.length,10)||0;if(0===t)return!1;var r,i=parseInt(arguments[1],10)||0;i>=0?r=i:(r=t+i)<0&&(r=0);for(var o;r
×