help me to understand how to get backtests that are as equal to the real as possible

 
Hi , I'm new to your forum and I need help. Sorry if I speak and writeEnglish a little 
I'm running de backtest with metatrader 4 but the values I get during the tests are different from those in real time. A very competent friend told me that if I use indicators with shift = 0 surely all the backtest will be wrong compared to the real. Can you explain to me why the very competent friend says this?
You also help me to understand how to get backtests that are as equal to the real as possible. Thank you all. See you soon
Maurice