If it's losing coolant, the coolant is going somewhere. If you can't find an external leak, I'd have to say you have a head gasket problem. The cap, if it's bad wouldn't cause the radiator to go dry, even if it wasn't holding any pressure it would only let pressure equalize, not suck the system dry.
Sorry to say but it sounds like head gasket to me.