Страница 1 из 1

Среднее значение глобальной переменной

Добавлено: 27 ноя 2024, 20:22
realuse
Помогите пожалуйста с реализацией кода: требуется находить на текущем баре среднее значение глобальной переменной X за 5 последних баров, при том, что значение X на каждом баре пересчитывается. :?: :!:

Re: Среднее значение глобальной переменной

Добавлено: 28 ноя 2024, 02:32
Den
realuse писал(а):Помогите пожалуйста с реализацией кода: требуется находить на текущем баре среднее значение глобальной переменной X за 5 последних баров, при том, что значение X на каждом баре пересчитывается. :?: :!:


вот такая болванка

Код: Выделить всё

List<double> xValues = new List<double>(); // Список для хранения значений X


function Initialize()
{
    IndicatorName = "Average_X_Last_5_Bars";
    AddInput("Input", Inputs.Candle);
    AddGlobalVariable("X", Types.Double, 0.0); // Глобальная переменная X
}


function Evaluate()
{
    // Пересчитываем значение глобальной переменной X на текущем баре
    var currentValueOfX = CalculateNewValueOfX(); // твоя логика для вычисления X
    SetVariable("X", currentValueOfX);

    // Добавляем новое значение X в список
    xValues.Add(currentValueOfX);

    // Ограничиваем список до последних 5 значений
    if (xValues.Count > 5)
    {
        xValues.RemoveAt(0); // Удаляем самое старое значение
    }

    // Если у нас достаточно значений (не менее 5), то считаем среднее
    if (xValues.Count == 5)
    {
        var averageX = xValues.Average();
        Print("Среднее значение X за последние 5 баров: " + averageX);
    }
}

// Пример функции, которая пересчитывает значение X (нужно заменить на твою логику)
double CalculateNewValueOfX()
{
    // Здесь твой код для вычисления нового значения X
    return new Random().NextDouble() * 100; // Пример случайного значения
}