Можно ли получить доступ к списку объявленных внешних переменных?

 
Мотивация: пишу библиотеку, выполняющую такие операции:
  • при оптимизации на каждом прогоне эксперта создаётся файлик с именем, соответствующим номеру прогона.
  • в начало файлика пишутся параметры прогона
  • затем пишется список торговых операций, происходящих в ходе прогона
И вот со вторым пунктом у меня проблемы. Получается, для каждого эксперта надо писать свою функцию, которая будет сохранять его параметры.

А хотелось бы вот так:
for (int i = 0; i < ExternParametersCount; i++)
  {
   FileWrite(cur_handle,ExternParametersName[i],ExternParametersValue[i]);
  }
Хотелось бы. А можно? :)

Да, использую при этом библиотеку Events.mq4, описанную здесь. Однако для полной самостоятельности моей библиотеки (кроме внешних параметров), не хватает автоматического отслеживания "ручных" операций. Автор пишет, что без участия советника они не могут произойти. Факт, не могут, но для вышеописанных целей хотелось бы их отслеживать тоже. Вопрос - не планирует ли автор дополнить библиотеку до полного отслеживания всех событий? Я сознательно не берусь - испорчу такой замечательный стиль кода.
 
Если невозможно пройтись по внешним переменным в цикле, то можно ли хотя бы перевести лексему программы в текстовую строку. Типа как в старом добром Си:
#define TRACE(X) printf(#X"=",X)
и потом
TRACE(CurrentTrailingStop);
выведет нам на экран "CurrentTrailingStop=15".

Может чего в синтаксисе и перепутал, немудрено - много времени прошло, но за суть ручаюсь.
 
Мечты, мечты...
 
dmitriy писал (а):
А хотелось бы вот так:
for (int i = 0; i < ExternParametersCount; i++)
  {
   FileWrite(cur_handle,ExternParametersName[i],ExternParametersValue[i]);
  }

Так, глядишь, и дойдём до появления в MQL4 структур, объектных коллекций и цикла foreach по ним :)
                foreach (object param in globalParameters.Length)
                {
                    Print(param.Name, ": ", param.Value);
                }
 
chv:
dmitriy:
А хотелось бы вот так:
for (int i = 0; i < ExternParametersCount; i++)
  {
   FileWrite(cur_handle,ExternParametersName[i],ExternParametersValue[i]);
  }

Так, глядишь, и дойдём до появления в MQL4 структур, объектных коллекций и цикла foreach по ним :)
                foreach (object param in globalParameters.Length)
                {
                    Print(param.Name, ": ", param.Value);
                }

Не трави душу, ООП сильно не хватает.
 
dmitriy писал (а):

Не трави душу, ООП сильно не хватает.

понимаю :-)
честно, не хватает больше отладчика. Принтовки немного поднадоели.
 
dmitriy:
И вот со вторым пунктом у меня проблемы. Получается, для каждого эксперта надо писать свою функцию, которая будет сохранять его параметры.
Да, надо. Я, решая подобную задачу, именно так и делал.

dmitriy:
Да, использую при этом библиотеку Events.mq4, описанную здесь. Однако для полной самостоятельности моей библиотеки (кроме внешних параметров), не хватает автоматического отслеживания "ручных" операций. Автор пишет, что без участия советника они не могут произойти. Факт, не могут, но для вышеописанных целей хотелось бы их отслеживать тоже. Вопрос - не планирует ли автор дополнить библиотеку до полного отслеживания всех событий? Я сознательно не берусь - испорчу такой замечательный стиль кода.
Автор - это я =)
Вообще не планирую, т.к. не вижу в этом ничего сложного.
И что, надо _все_ события? Там такой длинный список, что страшно смотреть =)

ps: про стиль кода - это шутка? ;)
 
komposter:

Автор - это я =)
Вообще не планирую, т.к. не вижу в этом ничего сложного.
И что, надо _все_ события? Там такой длинный список, что страшно смотреть =)

ps: про стиль кода - это шутка? ;)

Ладно, уже не надо :) сам дописываю :) в таком же стиле :) допишу - выложу :)
Надо не все, а почти все. Не надо удаления "ручками" отложенников.

P.S. Не шутка. Не люблю, когда в одном файле стиль кода меняется - глаз режет.
Причина обращения: