Вопрос по внешним переменным

 
Вопрос по внешним переменным
Например следующая ситуация :
-на терминале 8 графиков по EUR с присоединенным экспертом на всех графиках
-эксперту в программе разрешено торговать только по 15 мин графику
-остальные экперты собирают, анализируют и записывают всю информацию в массив например mas_f(8,100,20) где 8 это тип графика а 100 это значения кольцевого стека в котором например информация по фракталам, 20 это характеристика каждого фрактала
-15 минутный эксперт торгует используя информацию в этом массиве со всеми индексами с других графиков (от 1 до 8)
В этом случае этот массив должен быть объявлен как внешний, но вот тут и проблема.
У меня чегото никак не выходит сделать его внешним. Ниже кусок текста программы.
Array : Fraktal[40,8,100,10](0);
if (GetGlobalVariable("Fraktal")=0) then
SetGlobalVariable("Fraktal",0);

Подскажите пожалуйста что не так ?

С уважением Роман
 
имя внешней переменной можно формировать динамически
например

for i=1 to 40 begin
for j=1 to 8 begin
for k=1 to 100 begin
for l=1 to 10 begin
bla-bla-bla
SetGlobalVariable( "globalarray"+i+j+k+l, some_value );
end;
end;
end;
end;


другой вопрос, что Вы не сможете за один проход проинициализировать ТАКОЙ массив. В этом случае посмотрите в "Особенностях написания эксперта" как обходить ситуацию "loop detected".
Попробуйте.

 
Может сделать проще ?
Например если мы объявляем массив и если мы хотим в программе сделать его внешним то просто используем его имя в операторе setglobalvariable и все !!!? Автоматически все его индексы становятся внешними для всех экспертов !!! Я давно не программировал на "C", но кажется там это просто реализовано ! Может и в Ваш компилятор заложить эту возможность !! Было бы очень удобно .. раз и все !!!

С уважением
Роман

P.S К сожалению небыло возможности пообщаться с Вами на выставке.
 
А как обращаться в программе также : globalarray+i+j+k+l=127; Так ?
 
нет. SetGlobalVariable("globalarray"+i+j+k+l,127); или some_var=GetGlobalVariable("globalarray"+i+j+k+l);
 
Спасибо ! Начинаю перелапачивать программу .
 
к сожалению, массив нельзя явно сделать глобальным
Причина обращения: