Ошибки, баги, вопросы - страница 2242

 
Aleksey Vyazmikin:

Как так?

Почему значение массива не пустое(нулевое)?

А если ему сначала задать размер, а уже потом очищать?

 
Vitaly Muzichenko:

А если ему сначала задать размер, а уже потом очищать?

Тогда

2018.07.26 02:20:08.482 Pred_Ocenka_02 (Si Splice,M1)   array out of range in 'Pred_Ocenka_02.mq5' (76,27)
Он не имеет информацию о размере после очистки.
 
Если 
ArrayFree(SummArr);

Убрать, то значение так же не пустое. Массив ранее не использовался.

 

Какая то ерунда, вот код урезал вообще

int SummArr[];

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   ArrayFree(SummArr);
   ArrayResize(SummArr,57);
   Print("SummArr_1=",SummArr[1]);
   Print("SummArr_30=",SummArr[30]);   
   Print("SummArr_57=",SummArr[56]);   
  }
//+------------------------------------------------------------------+

На выходе

2018.07.26 02:37:58.693 Pred_Ocenka_error (Si Splice,M15)       SummArr_1=1190264832
2018.07.26 02:37:58.693 Pred_Ocenka_error (Si Splice,M15)       SummArr_30=2097181
2018.07.26 02:37:58.693 Pred_Ocenka_error (Si Splice,M15)       SummArr_57=154252694

Прошу проверьте кто либо, а то может у меня терминал свихнулся.

Или это норма, и так и должно всё мусором заваливаться?

 

В индикаторе mql4 перестал работать код. как исправить?

else{// Иначе стрелка создана. Задаём её свойства
 ObjectSetInteger(Open_name,OBJPROP_ARROWCODE,OpenArrowCode);//код стрелки 232 
 ObjectSet(Open_name,OBJPROP_COLOR,ObjColor);//цвет стрелки
}

Редактор пишет 'ObjectSetInteger' - no one of the overloads can be applied to the function call

Сколько лет работало и вдруг перестало. Обидно однако.


 
Aleksey Vyazmikin:

Какая то ерунда, вот код урезал вообще

На выходе

Прошу проверьте кто либо, а то может у меня терминал свихнулся.

Или это норма, и так и должно всё мусором заваливаться?

Освобождает буфер любого динамического массива и устанавливает размер нулевого измерения в 0.

При написании скриптов и индикаторов необходимость в использовании функции ArrayFree() может возникнуть не часто: так как при завершении работы скрипта вся использованная память сразу же освобождается, а в пользовательских индикаторах основная работа с массивами представляет собою доступ к индикаторным буферам, размеры которых автоматически управляются исполняющей подсистемой терминала.

Если в программе необходимо самостоятельно управлять памятью в сложных динамических условиях, то функция ArrayFree() позволит явным образом и немедленно освобождать память, занятую ненужным уже динамическим массивом.

Понимаете? Ненужным.

Естественно, что раз память от него освобождена, а потом вы её опять распределили при помощи задания размера массиву, то никто вам не гарантирует его содержимое.

Используйте инициализацию массива: ArrayInitialize()

 
Vitaly Murlenko:

В индикаторе mql4 перестал работать код. как исправить?

Редактор пишет 'ObjectSetInteger' - no one of the overloads can be applied to the function call

Сколько лет работало и вдруг перестало. Обидно однако.


else{// Иначе стрелка создана. Задаём её свойства
 ObjectSetInteger(ChartID(),Open_name,OBJPROP_ARROWCODE,OpenArrowCode);//код стрелки 232 // или 0 вместо ChartID() для текущего графика 
 ObjectSet(Open_name,OBJPROP_COLOR,ObjColor);//цвет стрелки
}

Только зачем вы смешали два стиля? Если используете первую строку для задания кода стрелки, то тогда используйте и вторую в том же стиле:

ObjectSetInteger(0,Open_name,OBJPROP_COLOR,ObjColor); //цвет стрелки
 

Пытался загрузить новую версию индикатора в маркет.  Тестирование завершилось с ошибками. Отчет по ошибкам, как на рисунке в приложении со следующим содержанием: 

test on EURUSD,H1 (netting)
test on XAUUSD,D1 (netting)
test on GBPUSD,M30 (netting)
test on EURUSD,M1 (netting)
 2016.05.31 21:45:00   Access violation at 0x00007FF7FD1CA04B read to 0xFFFFFFFFFFFFFFFF
 2016.05.31 21:45:00                 00007FF7FD1CA010 4885D2            test       rdx, rdx
 2016.05.31 21:45:00                 00007FF7FD1CA013 747B              jz         0x7ff7fd1ca090
 2016.05.31 21:45:00   
 2016.05.31 21:45:00                 00007FF7FD1CA015 53                push       rbx
 2016.05.31 21:45:00                 00007FF7FD1CA016 4883EC20          sub        rsp, 0x20
 2016.05.31 21:45:00                 00007FF7FD1CA01A 48897C2430        mov        [rsp+0x30], rdi
 2016.05.31 21:45:00                 00007FF7FD1CA01F 488BD9            mov        rbx, rcx
 2016.05.31 21:45:00                 00007FF7FD1CA022 488B7AF8          mov        rdi, [rdx-0x8]
 2016.05.31 21:45:00                 00007FF7FD1CA026 4881FF00004000    cmp        rdi, 0x400000
 2016.05.31 21:45:00                 00007FF7FD1CA02D 730B              jae        0x7ff7fd1ca03a
 2016.05.31 21:45:00                 00007FF7FD1CA02F 4883E980          sub        rcx, 0x80
 2016.05.31 21:45:00                 00007FF7FD1CA033 E88852CAFF        call       0x7ff7fce6f2c0  ; #2504 (metatester64.exe)
 2016.05.31 21:45:00                 00007FF7FD1CA038 EB37              jmp        0x7ff7fd1ca071
 2016.05.31 21:45:00   
 2016.05.31 21:45:00                 00007FF7FD1CA03A 488D4AE8          lea        rcx, [rdx-0x18]
 2016.05.31 21:45:00                 00007FF7FD1CA03E 488B52E8          mov        rdx, [rdx-0x18]
 2016.05.31 21:45:00                 00007FF7FD1CA042 4885D2            test       rdx, rdx
 2016.05.31 21:45:00                 00007FF7FD1CA045 7408              jz         0x7ff7fd1ca04f
 2016.05.31 21:45:00   
 2016.05.31 21:45:00                 00007FF7FD1CA047 488B4108          mov        rax, [rcx+0x8]
Может проблема в тестере?
Файлы:
 
Artyom Trishkin:

Только зачем вы смешали два стиля? Если используете первую строку для задания кода стрелки, то тогда используйте и вторую в том же стиле:

Спасибо, помогло.

2 стиля? Я и не знал про стили. Просто ранее можно было делать этот участок только так. Изменения произошли. Я более 10 лет программил на MQL4. А теперь разработчики поменяли язык и многие коды мои перестали работать. Я сильно разочарован. Не к лучшему произошли изменения. Это значит, что теперь мне туеву кучу кодов переделывать. Они хоть и старые, а пользы от них было на цельный вагон.

 
Gennadiy Stanilevych:

Пытался загрузить новую версию индикатора в маркет.  Тестирование завершилось с ошибками. Отчет по ошибкам, как на рисунке в приложении со следующим содержанием: 

Может проблема в тестере?

Создайте пожалуйста заявку в сервисдеск, разберёмся


UPD: Нашёл Вашу заявку.