One of the biggest reasons for bad dreams is eating too close to sleeping or eating certain types of foods close to your sleeping hour.
The unfortunate thing is that most people have dinner pretty late and then go to sleep. If you are vegetarian, you probably have less bad dreams. If you are a meat eater, then whether you believe it or not, you are eating the stress of the animal. This is likely to give you even more bad dreams!
I am not a vegetarian! So I am not trying to scare you off meat. Just telling you that eating animal meat does pass on certain characteristics to you in terms of stress levels, bad dreams and aggression.
You don’t have to take my word for it. You can try it for yourself and see the results.
Try and not eat within 4-5 hours of sleeping. So if you sleep at 10 pm for example, have your dinner by 5 or latest by 6. This way you go to sleep with a stomach that has done a lot of the digestion.
Other benefits also include less snoring, less sleep apnea, less congestion and so on. Try it and see.
Another thing that can give you bad dreams is the direction and sleeping position. Many people find that sleeping on their left side gives them less bad dreams. You can try this too.