Definitely give it a try, look up in documentation how to create Custom Macro Methods, then in the macro method take the value, and just return "{% " + TheValue + " %}" and see if that works...
Note the only potential issue is you may (depending on what the macro does) need Security # included, otherwise use @, but then again it may just add that for you after you hit the "Save" on your web part.
ALso, try in the "Default Value" when you do this to also ad |(recursive)false, just in case
{% Custom.RenderMyMacro("bookingdate") |(recursive)false |(identity)GlobalAdministrator%}