Нам понадобится массив данных типа double. В нем будут храниться рассчитанные логарифмы цен закрытия выбранной валютной пары.
- Код: выделить все
double dblMLogY1[];
Напишем функцию для расчета десятичного логарифма цен закрытия выбранной валютной пары:
- Код: выделить все
void f_SetMLog(double &Y[], string sy)
{
// Функция рассчитывает десятичный логарифм от элементов массива
for(int i = 0; i < ArraySize(Y); i++)
{
Y[i] = MathLog10(iClose(sy, 0, i));
}
}
В функцию f_SetMLog() в качестве параметра по ссылке будем отправлять необходимый массив dblMLogY1. Также будем передавать символ нужно валютной пары в качестве параметра (в данном примере выбрана EURUSD).
Далее в теле функции идет цикл в котором от нулевого бара до заданного берутся значения цен закрытия и над ними выполняется операция логарифмирования: MathLog10().
Таким образом, на выходе из функции имеем заполненный логарифмами цен закрытия по заданному торговому инструменту массив с именем dblMLogY1.
Сам процесс вызова функции в коде выглядит так:
- Код: выделить все
f_SetMLog(dblMLogY1, "EURUSD");
Далее массив с логарифмами цен закрытия может быть использован в коде программы для заданных целей. Например, можно в качестве индикатора отображать в отдельном окне логарифмы цен закрытия по заданному торговому инструменту.