It is a theory that has been in the air for quite long time that says that the price at any time reflect all the information available to investors.
Read again what I have just written!
How can this be true? what is the fair price of a security with all information available? Is there any magic formula for this? And why would it be valid for every one and all the time? Why does the price keep changing every day?
True enough, there are organizations (banks, Hedge funds, …) that have implemented in their system a formula based on statistical analysis. The inputs are usually price earnings ratio, price to book value, … and a few dozens others like ‘is surprise earning having any significant impact on price?’. Then they analyze real-time(!) all the information available in media, social networks, … and compute a ‘fair’ price, decide whether the security is under-priced and then they take position. Not on a daily or weekly chart! No on a 3-minutes chart! Because competition is sharp, they come up with same conclusions, and prices usually catch this fair price in a couple of hours. Risk is very limited for them! And so markets are efficient from this perspective.
For the average investor, unfortunately, this does not work unless you can buy yourself one mainframe computer and have programming skills and can analyze big data.
But markets are still moving in other time frames! Because price is made of the opinion of huge number of investors, be they humans or robots or martians, … and nobody thinks exactly like his neighbor. Reasons are linked to the security itself or external, e.g. you need cash to buy yourself a coffee! The result of this processing can only be random and you would be right questioning the market efficiency. I have proven in previous article that trends emerge out this random process and that is one of the best way to make money and beat the market!
So have fun with random processes, dig in whatever good books exist on the subject.