Выложен обновленный билд 188

 
Выложен обновленный билд 188 с исправлениями ошибок, выясленными за последнюю неделю.
Обновить терминал можно скачав дистрибутив по ссылке: "торговый терминал MetaTrader 4"

Спасибо всем за обсуждения, настойчивость и помощь в поиске ошибок!
 
Писал на форуме, писал в письме, однако так и не обратили внимания. Функции типа i...OnArray работают не корректно. Когда функция обрабатывает часть массива, то все работает правильно. Когда же функция обрабатывает весь массив целиком (т.е. параметр period равен количеству элементов массива), то возвращаются какие-то непонятные значения. Например скрипт:
int start()
{
double Array[4]={1.0,2.0,3.0,4.0};
Print(iMAOnArray(Array,0,4,0,MODE_SMA,0));
return(0);
}

печатает в логе "0", хотя должно "2.5".
Точно такая же ерунда с iStdDevOnArray, iBandsOnArray. Остальные не проверял.

 
Когда же функция обрабатывает весь массив целиком (т.е. параметр period равен количеству элементов массива)

Для выбора количества обрабатываемых элементов массива используется параметр total, а не period.
 
Да при чем здесь количество обрабатываемых элементов. При total равном 0 обрабатывается весь массив. Я совсем о другом. Найдите среднее значение всего массива, используя iMAOnArray. Я же привел пример.
 
Да, действительно.
Тогда, наверно, разработчикам имеет смысл в справке по iMAOnArray() дать явное указание на то, что параметр period должен быть меньше либо количества элементов в массиве, либо параметра total, если он не нулевой.
 
KimIV, неужели у тебя получилось? А то я уже начал думать, что с ума сошел. Привязался тут с фигней какой-то, которая не нужна никому.
 
KimIV, неужели у тебя получилось?

Да, получилось. Пример-то ведь простой и наглядный :-)
Я пробовал так
double Array[4]={1, 2, 3, 4};
string comm=iMAOnArray(Array, 0, 3, 0, MODE_SMA, 1);
Comment(comm);


пишет 2,00...
и так пробовал

double Array[4]={1, 2, 3, 4};
string comm=iMAOnArray(Array, 0, 3, 0, MODE_SMA, 0);
Comment(comm);


пишет 3,00...
и эдак

double Array[4]={1, 2, 3, 4};
string comm=iMAOnArray(Array, 0, 4, 0, MODE_SMA, 0);
Comment(comm);


пишет 0,00..., хотя по алгоритму расчёта средней должно быть 2,50...

Уважаемые разработчики, почему так?

 
Вот об этом я и пытаюсь уже какой раз сказать. iStdDevOnArray и iBandsOnArray такую же ерунду выдают. Спасибо хоть один услышал.
 
Код

double Array[5]={0, 1, 2, 3, 4};
string comm=DoubleToStr(iMAOnArray(Array, 0, 4, 0, MODE_SMA, 0), 2);
Comment(comm);



дает 2.5, а

double Array[5]={0, 1, 2, 3, 4};
string comm=DoubleToStr(iMAOnArray(Array, 0, 5, 0, MODE_SMA, 0), 2);
Comment(comm);



дает 0. Прямо чудеса...

 
Код

double Array[5]={0, 1, 2, 3, 4};
string comm=DoubleToStr(iMAOnArray(Array, 0, 4, 0, MODE_SMA, 0), 2);
Comment(comm);



дает 2.5, а

double Array[5]={0, 1, 2, 3, 4};
string comm=DoubleToStr(iMAOnArray(Array, 0, 5, 0, MODE_SMA, 0), 2);
Comment(comm);



дает 0. Прямо чудеса...



Elementov masiva 5, no opisanno 4, piatyj = unknown, vot i polu4ajetsia random potomu dumaju...:-)

Err, nidosmotrel nulia, no paprobuite pervyj element ostavit' v pakoje. Ili jes4io sdies' elementa array = 0..5 a ne 1..5
 
Fix:

double Array[4]={0, 1, 2, 3, 4};



A patom smotrite.

Причина обращения: