Код: Выделить всё
function Initialize() {
IndicatorName = "VOLUME_CANDLES_II";
PriceStudy = true;
// Изменяем входные данные (чтобы получить Open, Close, High, Low)
AddInput("Input", Inputs.Candle);
// Добавляем серии данных
AddSeries("VolOpen", DrawAs.Custom, Color.MediumSpringGreen);
AddSeries("VolClose", DrawAs.Custom, Color.MediumSpringGreen);
AddSeries("VolHigh", DrawAs.Custom, Color.MediumSpringGreen);
AddSeries("VolLow", DrawAs.Custom, Color.MediumSpringGreen);
AddSeries("VolWidth", DrawAs.Custom, Color.MediumSpringGreen);
}
function Evaluate() {
var open = Input.Open[0];
var close = Input.Close[0];
var high = Input.High[0];
var low = Input.Low[0];
var volume = Input.Volume[0];
// Вывод в лог
Console.WriteLine("O: " + open + " C: " + close + " H: " + high + " L: " + low + " V: " + volume);
// Найдём максимальный объём за последние 50 баров
var maxVolume = 0.0;
for (var i = 0; i < 50; i++) {
if (Input.Volume[i] > maxVolume) {
maxVolume = Input.Volume[i];
}
}
double widthFactor = Math.Max(0.5, Math.Min(2.0, (volume / maxVolume) * 2.5));
// Записываем значения в серии
VolOpen[0] = open;
VolClose[0] = close;
VolHigh[0] = high;
VolLow[0] = low;
VolWidth[0] = widthFactor;
// Рисуем фигуру (уменьшил размер)
VolOpen.DrawFigure(Figure.Square, Color.MediumSpringGreen, Line.Solid, (int)(widthFactor * 3), Color.MediumSpringGreen, 40);
}