Глобальный массив.

 
Как можно создать глобальный массив в MQL4 ? Мне нужна сотня глобальных переменных идентифицируемых по номеру, для работы с ними в цикле. Но, глобальных массивов объявлять нельзя. Кто-нибудь знает как обойти такое ограничение, или какой-нибудь альтернативный вариант ? Спасибо.
 
For(i=...)
{
GlobalVariableGet("ТипаМассив"+i);
}
 
int init() { int i; for (i=1;i==100;i++) GlobalVariableSet("MA"+i,i); return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { int i; for (i=1;i==100;i++){ Print(i," ",GlobalVariableGet("MA"+i)); } return(0); } В результате на тестере чистый журнал (((
 
Ну что же Вы :( Вам дали конкретный ответ, могли бы и сами домыслить.

//+------------------------------------------------------------------+
//|                                                  GlobalArray.mq4 |
//|                                                             Rosh |
//|                    http://www.alpari-idc.ru/ru/experts/articles/ |
//+------------------------------------------------------------------+
#property copyright "Rosh"
#property link      "http://www.alpari-idc.ru/ru/experts/articles/"
 
string ArrayName="MyGlobalArray";
 
//+------------------------------------------------------------------+
//| script initialization function                                   |
//+------------------------------------------------------------------+
int init()
{
   int LastTime;
   for(int i=0;i<100;i++)
      {
      if (!GlobalVariableCheck(ArrayName+i)) 
         {
         LastTime=GlobalVariableSet(ArrayName+i,i);
         Print("Ошибка для индекса ",i," равна ",GetLastError());
         }
      }
   return;
} 
 
 
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
   double value;
   for(int i=0;i<100;i++)
      {
      if (GlobalVariableCheck(ArrayName+i)) 
         {
         value=GlobalVariableGet(ArrayName+i);
         if (value==0) Print("Ошибка для индекса ",i," равна ",GetLastError());
         else Print(ArrayName+"["+i+"]=",value);
         }
      }
   
//----
   return(0);
  }
//+------------------------------------------------------------------+

Эту тему я собирался следующей статьей пройти

 
Этот код работает, но тоже кривовато (((. Результаты идут с пропусками, но сообщений об ошибках нет. Кстати, откуда вообще берутся ошибки исполнения при работе с тестором ? Я уже несколько раз наблюдал как функции языка не срабатывают. Это язык такой или что ? 2006.08.02 00:33:22 2006.07. 21 03:56 _MA-Mod USDJPY,M30: Îøèáêà äëÿ èíäåêñà 0 ðàâíà 0 2006.08.02 00:33:22 2006.07.21 03:56 _MA-Mod USDJPY,M30: MyGlobalArray[99]=99 2006.08.02 00:33:22 2006.07.21 03:56 _MA-Mod USDJPY,M30: MyGlobalArray[98]=98 2006.08.02 00:33:22 2006.07.21 03:56 _MA-Mod USDJPY,M30: MyGlobalArray[97]=97 2006.08.02 00:33:22 2006.07.21 03:56 _MA-Mod USDJPY,M30: MyGlobalArray[96]=96 2006.08.02 00:33:22 2006.07.21 03:56 _MA-Mod USDJPY,M30: MyGlobalArray[95]=95 2006.08.02 00:33:20 2006.07.21 15:56 _MA-Mod USDJPY,M30: MyGlobalArray[84]=84 2006.08.02 00:33:20 2006.07.21 15:56 _MA-Mod USDJPY,M30: MyGlobalArray[83]=83 2006.08.02 00:33:20 2006.07.21 15:56 _MA-Mod USDJPY,M30: MyGlobalArray[82]=82 2006.08.02 00:33:20 2006.07.21 15:56 _MA-Mod USDJPY,M30: MyGlobalArray[81]=81 2006.08.02 00:33:20 2006.07.21 15:56 _MA-Mod USDJPY,M30: MyGlobalArray[80]=80 2006.08.02 00:33:20 2006.07.21 15:56 _MA-Mod USDJPY,M30: MyGlobalArray[79]=79 2006.08.02 00:33:20 2006.07.21 15:56 _MA-Mod USDJPY,M30: MyGlobalArray[78]=78 2006.08.02 00:33:20 2006.07.21 15:56 _MA-Mod USDJPY,M30: MyGlobalArray[77]=77 2006.08.02 00:33:20 2006.07.21 15:14 _MA-Mod USDJPY,M30: MyGlobalArray[20]=20 2006.08.02 00:33:20 2006.07.21 15:14 _MA-Mod USDJPY,M30: MyGlobalArray[19]=19 2006.08.02 00:33:20 2006.07.21 15:14 _MA-Mod USDJPY,M30: MyGlobalArray[18]=18 2006.08.02 00:33:20 2006.07.21 15:14 _MA-Mod USDJPY,M30: MyGlobalArray[17]=17 2006.08.02 00:33:20 2006.07.21 15:14 _MA-Mod USDJPY,M30: MyGlobalArray[16]=16 2006.08.02 00:33:20 2006.07.21 15:14 _MA-Mod USDJPY,M30: MyGlobalArray[15]=15 2006.08.02 00:33:20 2006.07.21 15:14 _MA-Mod USDJPY,M30: MyGlobalArray[14]=14 2006.08.02 00:33:20 2006.07.21 15:14 _MA-Mod USDJPY,M30: MyGlobalArray[13]=13 2006.08.02 00:33:19 2006.07.21 12:37 _MA-Mod USDJPY,M30: MyGlobalArray[52]=52 2006.08.02 00:33:19 2006.07.21 12:37 _MA-Mod USDJPY,M30: MyGlobalArray[51]=51 2006.08.02 00:33:19 2006.07.21 12:37 _MA-Mod USDJPY,M30: MyGlobalArray[50]=50 2006.08.02 00:33:19 2006.07.21 12:37 _MA-Mod USDJPY,M30: MyGlobalArray[49]=49 2006.08.02 00:33:19 2006.07.21 12:37 _MA-Mod USDJPY,M30: MyGlobalArray[48]=48 2006.08.02 00:33:19 2006.07.21 12:37 _MA-Mod USDJPY,M30: MyGlobalArray[47]=47 2006.08.02 00:33:19 2006.07.21 12:37 _MA-Mod USDJPY,M30: MyGlobalArray[46]=46 2006.08.02 00:33:19 2006.07.21 12:37 _MA-Mod USDJPY,M30: MyGlobalArray[45]=45 2006.08.02 00:33:18 2006.07.21 10:28 _MA-Mod USDJPY,M30: MyGlobalArray[12]=12 2006.08.02 00:33:18 2006.07.21 10:28 _MA-Mod USDJPY,M30: MyGlobalArray[11]=11 2006.08.02 00:33:18 2006.07.21 10:28 _MA-Mod USDJPY,M30: MyGlobalArray[10]=10 2006.08.02 00:33:18 2006.07.21 10:28 _MA-Mod USDJPY,M30: MyGlobalArray[9]=9 2006.08.02 00:33:18 2006.07.21 10:28 _MA-Mod USDJPY,M30: MyGlobalArray[8]=8 2006.08.02 00:33:18 2006.07.21 10:28 _MA-Mod USDJPY,M30: MyGlobalArray[7]=7 2006.08.02 00:33:18 2006.07.21 10:28 _MA-Mod USDJPY,M30: MyGlobalArray[6]=6 2006.08.02 00:33:18 2006.07.21 10:28 _MA-Mod USDJPY,M30: MyGlobalArray[5]=5
 
Блин, да что такое с абзацами ?
 
Опять неверно, откройте лог-файл.
 
Да, Вы правы, но почему не выводит в журнал тестера ?
 
Aver:
Блин, да что такое с абзацами ?

Используйте для вставки кода специальную кнопочку MQL с панели редактора сообщений.
Причина обращения: