Как узнать на этапе компиляции, что объявлена переменная ?

 

Стоит задача в классе вывести значение переменной, если она существует. И вывести нуль, если переменная вобще не объявлена.

Для определенности - берем стандартный пример Moving Average.mq5

Там есть входной параметр, он объявлен на глобальном уровне:

input double MaximumRisk        = 0.02;    // Maximum Risk in percentage

Добавляем в инициализацию:

int OnInit(void)
  {
  #ifdef MaximumRisk    //Если идентификатор определен


         Print("MaximumRisk найден !"); // Выводим сообщение


  #endif
  .....

<дальнейший код>

....

Как я понимаю, в момент компиляции функции OnInit() компилятор уже определил переменную MaximumRisk. Однако, выполнение программы идет, минуя код вывода на печать.

Что я делаю не так ?

Ну и если так нельзя - то как можно внутри класса на этапе компиляции определить, что та или иная переменная существует ?