У меня есть следующая функция, которая возвращает одно значение.
function getVolumeHigh_excludeUpBars(period)
{
volume_exclude_up = IIf( ROC(CLOSE,1) < 0, Volume, 0);
SELECTED_BAR = SelectedValue( BarIndex() );
volume_exclude_up[SELECTED_BAR] = Volume[SELECTED_BAR];
volume_High = hhv(volume_exclude_up, period);
return volume_High;
}
Я хочу преобразовать приведенную выше функцию, чтобы она возвращала массив вместо одного значения. Я переписал функцию. Вот;
function getArray_VolumeHigh_excludeUpBars(period)
{
volume_exclude_up = IIf( ROC(CLOSE,1) < 0, Volume, 0);
for (i=(BAR_COUNT-1);i>=0;i--)
{
volume_exclude_up[i] = Volume[i];
volume_High[i] = hhv(volume_exclude_up, period);
}
return volume_High;
}
Переписанная функция неэффективна, поскольку использует цикл for-do для индивидуального присвоения значения массиву. Есть ли более эффективный и элегантный способ переписать функцию?