Среднее значение глобальной переменной
Добавлено: 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; // Пример случайного значения
}