Скачать MetaTrader 5

Проблема с массивом при ArrayResize. РЕШЕНО

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Vladislav Andruschenko
115901
Vladislav Andruschenko  

Здравствуйте,

не могу понять в чем ошибка. при изменении размера в мт5 советник вылетает с ошибкой, в мт4 все ок

код:

      int iarray=0;
      //========================================================

      string ArrayINPUTS_NAME[]=
        {
         "Shift/Reverse","TypeTrade","SL/TP","Lots",
         "Averaging Dis/M","Additional Dis/M","TrailingStopUSE","MovingInWLUSE","CloseProfit","CloseLOSS"
            ,"ONlyOnePos","ClosePosifChange","Trading Time","Spread Max/Min "
        };
      string ArrayINPUTS_VALUE[1];
      Print("ArrayINPUTS_NAME="+ArraySize(ArrayINPUTS_NAME));
      ArrayResize(ArrayINPUTS_VALUE,ArraySize(ArrayINPUTS_NAME),ArraySize(ArrayINPUTS_NAME));
      Print("ArrayINPUTS_VALUE="+ArraySize(ArrayINPUTS_VALUE));

      ArrayINPUTS_VALUE[iarray]=DoubleToString(shift,0)+(ReverseSignal?"/Reverse":"");iarray++;
      ArrayINPUTS_VALUE[iarray]=(TypeTradeBUYSELL==0?"ALL":(TypeTradeBUYSELL==1?"BUY":"SELL"));iarray++;

 


 принт:

ArrayINPUTS_NAME=14
ArrayINPUTS_VALUE=1

 

билд 1502 

 

надо было так:

 

int iarray=0;
      //========================================================

      string ArrayINPUTS_NAME[]=
        {
         "Shift/Reverse","TypeTrade","SL/TP","Lots",
         "Averaging Dis/M","Additional Dis/M","TrailingStopUSE","MovingInWLUSE","CloseProfit","CloseLOSS"
            ,"ONlyOnePos","ClosePosifChange","Trading Time","Spread Max/Min "
        };
      string ArrayINPUTS_VALUE[];
      Print("ArrayINPUTS_NAME="+ArraySize(ArrayINPUTS_NAME));
      ArrayResize(ArrayINPUTS_VALUE,ArraySize(ArrayINPUTS_NAME),ArraySize(ArrayINPUTS_NAME));
      Print("ArrayINPUTS_VALUE="+ArraySize(ArrayINPUTS_VALUE));
Vladislav Andruschenko
115901
Vladislav Andruschenko  

ERR_ARRAY_RESIZE_ERROR

4007

Недостаточно памяти для перераспределения массива либо попытка изменения размера статического массива

Комбинатор
16817
Комбинатор  

А если так?

string ArrayINPUTS_VALUE[];
Vladislav Andruschenko
115901
Vladislav Andruschenko  

да спасибо, пропустил

      int iarray=0;
      //========================================================

      string ArrayINPUTS_NAME[]=
        {
         "Shift/Reverse","TypeTrade","SL/TP","Lots",
         "Averaging Dis/M","Additional Dis/M","TrailingStopUSE","MovingInWLUSE","CloseProfit","CloseLOSS"
            ,"ONlyOnePos","ClosePosifChange","Trading Time","Spread Max/Min "
        };
      string ArrayINPUTS_VALUE[];
    
      if(ArrayResize(ArrayINPUTS_VALUE,ArraySize(ArrayINPUTS_NAME)+1,ArraySize(ArrayINPUTS_NAME)+1)!=ArraySize(ArrayINPUTS_NAME)+1)Print(GetLastError());
  


 так работает. 

наверно надо отдыхать, 29 часов роботы подряд................ 

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий