MT 3.31 валится

 
MT 3.31 валится
Приветствую!

Решил создать простейший индикатор

/*[[
Name := Average
Author := Copyright © 2002, Company
Link := http://www.company.com/
Separate Window := No
First Color := Blue
First Draw Type := Line
First Symbol := 217
Use Second Data := No
Second Color := Red
Second Draw Type := Line
Second Symbol := 218
]]*/
Variable : shift(0);

SetLoopCount(0);
// loop from first bar to current bar (with shift=0)
For shift = Bars-1 Downto 0 Begin
SetIndexValue(shift, (high[shift]-low[shift])/2 );
End;

Я подключил его, MT подумал подумал и умер. И после этого даже не загружается. Пока я не удалил exp файли и не переименовал файл эксперта в другой в каталоге experts.

pyrat
 
А что на чарте предполагалось увидеть?
Две прямые горизонтальные линии? Одна из них (индикатор) проходит по нулю. А вторая в районе котировок. Может из-за этого МТ и умер? Хотя надо было предусмотреть и такое. Хотя бы формулу бы написал SetIndexValue(shift, (high[shift]+low[shift])/2);
 
А что на чарте предполагалось увидеть?
суть не в этом
если что то зависает и валится, а не обрабатывается как ошибка, это нужно исправлять
 
сейчас проверим
 
корректировки в коде эксперта
Идея этого индикатора - нарисовать среднюю между High и Low.
Но в формуле допущена ошибка.
вместо:
SetIndexValue(shift,(high[shift]-low[shift])/2);
необходимо использовать:
SetIndexValue(shift, high[shift]-(high[shift]-low[shift])/2);

Никаких проблем с отработкой этого индикатора нет.
На каком объеме истории(сколько баров) рассчитывался этот индикатор? И насколько мощный компьютер?
 
корректировки в коде эксперта
1. на EURUSD 5M примерно c середины мая по сегодня
2. P4 Celeron 1700
 
корректировки в коде эксперта
Только все таки не понятно - это что, правильно, что программа вываливается?
Ну я бы понял, если на ноль делил бы. А тут то что?
Не хотелось бы подводных камней иметь в программе, которые только в экстремальных ситуациях явно себя проявляют
 
попробуйте еще раз. у нас ничего не падает
 
попробуйте еще раз. у нас ничего не падает
"еще раз" пробовал еще вчера. явление повторялось.
Сейчас попробовал на другом компьютере (PII 400) - то же самое. Валится с дампом, при повторном запуске ведет себя по другому: загружается, но при этом у него чарт появляется USDCHF/H1. хотя я прикреплял индикатор к EURUSD,M5
Вот дамп

There has been a critical error in MetaTrader
Microsoft Windows 2000 version 5.1 Service Pack 1 (Build 2600)
Version : 3.31 (build: 4063)
Memory : 261672 / 60608 kb
Exception : C0000005
Address : 77F596B5
Access Type : read
Access Addr : FFFFFFF8

Registers : EAX=00000000 CS=001b EIP=77F596B5 EFLGS=00010206
: EBX=0000A011 SS=0023 ESP=000DF810 EBP=000DF824
: ECX=00A40178 DS=0023 ESI=014A0FC8 FS=003b
: EDX=014F1002 ES=0023 EDI=00A40000 GS=0000

Stack Trace : 77F576F1 77F5818D 0049CE17 0049CD0E
: 004B3416 004ACAB6 000E0594 00000010
: 00000000 00000000 00000000 00000000
: 00000000 00000000 00000000 00000000
0049CD2A:00ED [0049CE17] __heap_alloc
0049CCFE:0010 [0049CD0E] __nh_malloc
004B33EF:0027 [004B3416] ?AllocBuffer@CString@@IAEXH@Z
004ACAA4:0012 [004ACAB6] ?Format@CString@@QAAXPBDZZ
00000000:E0594 [000E0594] ?Format@CString@@QAAXPBDZZ
00000000:0010 [00000010] ?Format@CString@@QAAXPBDZZ
 
а не могли бы Вы прислать нам код эксперта, при запуске которого получен дамп?
мы попробуем воспроизвести у себя ситуацию
 
код
и это не эксперт, а пользовательский индикатор
код я поместил в свое самое первое сообщение, повторю его

/*[[
Name := Average
Author := Copyright © 2002, Company
Link := http://www.company.com/
Separate Window := No
First Color := Blue
First Draw Type := Line
First Symbol := 217
Use Second Data := No
Second Color := Red
Second Draw Type := Line
Second Symbol := 218
]]*/
Variable : shift(0);

SetLoopCount(0);
// loop from first bar to current bar (with shift=0)
For shift = Bars-1 Downto 0 Begin
SetIndexValue(shift, (high[shift]-low[shift])/2 );
End;
Причина обращения: