Добрый день, друзья!
давайте что-ли общими усилиями VOLUME CANDLES подумаем, который есть на новом графике?
[code][/code]
Пользовательские индикаторы > VOLUME CANDLES !!!
Re: VOLUME CANDLES !!!
пока так
Код: Выделить всё
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);
}
Re: VOLUME CANDLES !!!
получше, но все равно чёт не то.
Код: Выделить всё
function Initialize() {
IndicatorName = "VOLUME_CANDLES_II";
// Настройка входных данных (добавляем свечи)
AddInput("Input", Inputs.Candle);
// Добавляем серии данных для отображения объёма
AddShadowSeries("VolOpen", DrawAs.Custom, Color.MediumSpringGreen);
AddShadowSeries("VolClose", DrawAs.Custom, Color.MediumSpringGreen);
AddShadowSeries("VolHigh", DrawAs.Custom, Color.MediumSpringGreen);
AddShadowSeries("VolLow", DrawAs.Custom, Color.MediumSpringGreen);
AddShadowSeries("VolWidth", DrawAs.Line, 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 = maxVolume > 0 ? Math.Max(0.5, Math.Min(2.0, (volume / maxVolume) * 2.5)) : 0.5;
// Записываем значения в серии данных
VolOpen[0] = open;
VolClose[0] = close;
VolHigh[0] = high;
VolLow[0] = low;
VolWidth[0] = widthFactor;
// Отрисовка (здесь возможны ошибки, см. ниже)
VolOpen.DrawSquare(Color.MediumSpringGreen, Line.Solid, (int)(widthFactor * 13), Color.MediumSpringGreen, 100);
}
-
- Сообщения: 13
- Зарегистрирован: 23 дек 2024, 14:53
- Благодарил (а): 5 раз
- Поблагодарили: 1 раз
Re: VOLUME CANDLES !!!
Я предлагаю прикрутить индикатор VWMA - Взвешенная по объему скользящая средняя – это скользящая средняя, для которой в качестве весовой функции используется объем. А измерять свечки через коэффициент:
K = open \ close
VK = K * VWMA
нужно еще определить цвет свечи, ввести этот параметр для красной и зеленой свечи
Что-то в этом роде, извините, если это покажется бредом
K = open \ close
VK = K * VWMA
нужно еще определить цвет свечи, ввести этот параметр для красной и зеленой свечи
Что-то в этом роде, извините, если это покажется бредом
Вернуться в «Пользовательские индикаторы»
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 13 гостей