If you want to code to keep reading the state of the reed switch input until it turns HIGH, then I'd do it something like this:
while(digitalRead(REED1) == LOW)
{
// do nothing
}
// by the time we reach here, the reed switch is HIGH
You're starting on the right foot by using #defines to name your input and output pins, but the names you've chosen are pretty poor. Just by comparing the code against your comments, it's obvious that the names don't give you any indication of what the value represents. If you gave them meaningful names, you wouldn't have needed to add all those comments telling you what the code does:
digitalWrite(MRELAY1, HIGH);// Open frist gate
digitalWrite(MRELAY5, HIGH);// Open second gate
digitalWrite(MRELAY2, HIGH);// Swicth earth relay to drive motor forward
digitalWrite(MRELAY4, HIGH);// swicth relay over to reverse motor
digitalWrite(MRELAY3, HIGH);// swicth relay over to reverse motor
Comments are a good idea and I'd encourage you to keep using them, but when you find yourself explaining what the code does (rather than why or how it does it) this is a clue that the code would benefit from being made clearer.