Общие вопросы по разработке > Совместить два индикатора в одном окне
Совместить два индикатора в одном окне
Здравствуйте! Помогите пожалуйста совместить два индикатора: дельта и открытый интерес (Delta и OI) в одном окне. Заранее спасибо если кто откликнется!
- evge
- Администратор
- Сообщения: 1813
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 367 раз
- Контактная информация:
Re: Совместить два индикатора в одном окне
Здравствуйте!
Можно.
Опишите на словах или покажите визуально как совмещать.
Переведу в код индикатора АД4.
Как это должно выглядеть на единой шкале там, где будут выводится оба значения? Значения несопоставимые могут быть. Например, если ОИ = 10 млн, а дельта будет 10000, то 10000 растворится в 10 млн на шкале 10 млн.
Можно.
Опишите на словах или покажите визуально как совмещать.
Переведу в код индикатора АД4.
Как это должно выглядеть на единой шкале там, где будут выводится оба значения? Значения несопоставимые могут быть. Например, если ОИ = 10 млн, а дельта будет 10000, то 10000 растворится в 10 млн на шкале 10 млн.
никогда такого не было и вот опять
Re: Совместить два индикатора в одном окне
Самый нижний индикатор - дельта(красно-зелёная) и открытый интерес(серая гистограмма) в одном окне. По отдельности у меня есть скрипты и дельты и ои(каждый индикатор в своём окне)-но хотелось бы их в одном окне уместить.
- evge
- Администратор
- Сообщения: 1813
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 367 раз
- Контактная информация:
Re: Совместить два индикатора в одном окне
Значит ОИ там только как графическая информация, без числовых значений. На оси видно только значения дельты.
никогда такого не было и вот опять
- evge
- Администратор
- Сообщения: 1813
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 367 раз
- Контактная информация:
Re: Совместить два индикатора в одном окне
В АД4 если вывести идикатор OI видно что он масштабируется и минимальное видимое значение не от 0 обычно.
Если его наложить на другой индикатор (например на delta), то масштабироваться он перестанет и визуально будет не очень ифнормативным отображение ОИ от 0.
Как в одном окне в АД4 задать разный автомасштаб для каждого из индикаторов мне неизвестно, скорее всего этого там и нет.
Пример попытки масштабировать вручную к значениям Delta.
Если его наложить на другой индикатор (например на delta), то масштабироваться он перестанет и визуально будет не очень ифнормативным отображение ОИ от 0.
Как в одном окне в АД4 задать разный автомасштаб для каждого из индикаторов мне неизвестно, скорее всего этого там и нет.
Пример попытки масштабировать вручную к значениям Delta.
никогда такого не было и вот опять
- evge
- Администратор
- Сообщения: 1813
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 367 раз
- Контактная информация:
Re: Совместить два индикатора в одном окне
Думаю, что удалось мне "вручную" смашстабировать ОИ к дельте.
Само приведенное абсолютное числовое значение ОИ на шкале дельты конечно ничего вообще говорить не будет абсолютно. Только визуально можно его анализировать изменения рост \ падение относительно прошлого значения.
Вот пример, где я вывел индикатор ОИ и индикатор DeltaOI для сравнения работы.
DeltaOI - совмещенный индикатор изменения объема "Delta" и приведенный ОИ в его масштаб за определенный период.
Необходимо задать период начала отсчета для поиска минимального и максимального значения ОИ и Delta, для дальнейшего приведения ОИ к Delta, а так же отрисовки приведенного ОИ за этот же период.
Само приведенное абсолютное числовое значение ОИ на шкале дельты конечно ничего вообще говорить не будет абсолютно. Только визуально можно его анализировать изменения рост \ падение относительно прошлого значения.
Вот пример, где я вывел индикатор ОИ и индикатор DeltaOI для сравнения работы.
DeltaOI - совмещенный индикатор изменения объема "Delta" и приведенный ОИ в его масштаб за определенный период.
Код: Выделить всё
function Initialize()
{
IndicatorName = "DeltaOI";
AddParameter("Period", 500);
AddInput("Input", Inputs.Candle);
PriceStudy = false;
AddSeries("Delta", DrawAs.Custom, Color.Green, AxisType.ZeroBased);
AddSeries("DeltaOI", DrawAs.Custom, Color.Blue, AxisType.ZeroBased);
AddGlobalVariable("MaxDelta", Types.Double, 0);
AddGlobalVariable("MinDelta", Types.Double, 0);
AddGlobalVariable("MaxOI", Types.Double, 0);
AddGlobalVariable("MinOI", Types.Double, 0);
}
function Evaluate()
{
if (MinOI == 0) MinOI = Double.MaxValue;
Delta = Input.VolumeAsk[0] - Input.VolumeBid[0];
if (MaxIndex - CurrentIndex < Period)
{
if (Delta > MaxDelta) MaxDelta = Delta;
if (Delta < MinDelta) MinDelta = Delta;
if (Input.OpenInterest[0] > MaxOI) MaxOI = Input.OpenInterest[0];
if (Input.OpenInterest[0] < MinOI) MinOI = Input.OpenInterest[0];
}
if (Delta > 0 )
Delta.DrawHistogram(Color.Green, Color.Green, 100);
else
Delta.DrawHistogram(Color.Red, Color.Red, 100);
if (CurrentIndex == MaxIndex)
{
var K = (MaxOI - MinOI) / (MaxDelta - MinDelta);
for (int x = 0; x < Period; x++)
DeltaOI[x] = (Input.OpenInterest[x] - (MinOI + MaxOI) * 0.5) / K;
}
DeltaOI.DrawHistogram(Color.Silver, Color.Silver, 50);
}
Необходимо задать период начала отсчета для поиска минимального и максимального значения ОИ и Delta, для дальнейшего приведения ОИ к Delta, а так же отрисовки приведенного ОИ за этот же период.
никогда такого не было и вот опять
- evge
- Администратор
- Сообщения: 1813
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 367 раз
- Контактная информация:
Re: Совместить два индикатора в одном окне
Если хочется выводить ОИ не относительно 0, то тогда надо заменить строку:
на
Пример
Весь код на всякий случай (в нем изменена только одна строка)
Код: Выделить всё
AddSeries("DeltaOI", DrawAs.Custom, Color.Blue, AxisType.ZeroBased);
на
Код: Выделить всё
AddSeries("DeltaOI", DrawAs.Custom, Color.Blue, AxisType.Default);
Пример
Весь код на всякий случай (в нем изменена только одна строка)
Код: Выделить всё
function Initialize()
{
IndicatorName = "DeltaOI";
AddParameter("Period", 500);
AddInput("Input", Inputs.Candle);
PriceStudy = false;
AddSeries("Delta", DrawAs.Custom, Color.Green, AxisType.ZeroBased);
AddSeries("DeltaOI", DrawAs.Custom, Color.Blue, AxisType.Default);
AddGlobalVariable("MaxDelta", Types.Double, 0);
AddGlobalVariable("MinDelta", Types.Double, 0);
AddGlobalVariable("MaxOI", Types.Double, 0);
AddGlobalVariable("MinOI", Types.Double, 0);
}
function Evaluate()
{
if (MinOI == 0) MinOI = Double.MaxValue;
Delta = Input.VolumeAsk[0] - Input.VolumeBid[0];
if (MaxIndex - CurrentIndex < Period)
{
if (Delta > MaxDelta) MaxDelta = Delta;
if (Delta < MinDelta) MinDelta = Delta;
if (Input.OpenInterest[0] > MaxOI) MaxOI = Input.OpenInterest[0];
if (Input.OpenInterest[0] < MinOI) MinOI = Input.OpenInterest[0];
}
if (Delta > 0 )
Delta.DrawHistogram(Color.Green, Color.Green, 100);
else
Delta.DrawHistogram(Color.Red, Color.Red, 100);
if (CurrentIndex == MaxIndex)
{
var K = (MaxOI - MinOI) / (MaxDelta - MinDelta);
for (int x = 0; x < Period; x++)
DeltaOI[x] = (Input.OpenInterest[x] - (MinOI + MaxOI) * 0.5) / K;
}
DeltaOI.DrawHistogram(Color.Silver, Color.Silver, 50);
}
никогда такого не было и вот опять
Вернуться в «Общие вопросы по разработке»
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 11 гостей