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

RangeOfDay (Range Of Day) – дневной диапазон

Добавлено: 07 фев 2016, 16:40
evge
Дневной диапазон – индикатор отображает диапазон текущего дня, построенного по экстремумам.
Пример. График с индикаторами Last и RangeOfDay.

Пример:

RangeOfDay-00.png


Исходный текст:

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

function Initialize()
{
  IndicatorName = "RangeOfDay";   
  AddInput("Input", Inputs.Candle);   
  PriceStudy = true;
  AddSeries("RangeOfDay", DrawAs.Histogram, Color.Red);      // Задаем вид линии 2
  AddLevel(0, Color.Green, LineStyles.DashBig, 1, "RangeOfDay");
  AddLevel(0, Color.Red, LineStyles.DashBig, 1, "RangeOfDay");
  AddGlobalVariable("High", Types.Double, 0);
  AddGlobalVariable("Low", Types.Double, 0);
}

function Evaluate()
{
// AlfaDirect. 2015. OX
// RangeOfDay - дневной диапазон
  if (BarDate() == DateTime.Today && BarTime() == AsTime(10, 0, 0))
  {
    High = Input.High[0];
    Low = Input.Low[0];
  }
  else if (BarDate() == DateTime.Today && BarTime() > AsTime(10, 0, 0))
  {
    if ( Input.High[-1] > High && Input.High[0] <= Input.High[-1] && Input.High[-2] <= Input.High[-1])
      High = Input.High[-1];
    if ( Input.Low[-1] < Low && Input.Low[0] >= Input.Low[-1] && Input.Low[-2] >= Input.Low[-1])
      Low = Input.Low[-1];
  }
  if (CurrentIndex < MaxIndex - 2)
  {
    Levels[0].Level = High;
    Levels[1].Level = Low;
  }   
}

Re: RangeOfDay (Range Of Day) – дневной диапазон

Добавлено: 18 фев 2016, 13:19
ShadoW
Подскажите пожалуйста, какой алгоритм прорисовки линий? (мне не совсем ясен код)

Хотелось бы еще такой индикатор который рисовал линию Хай, Лоу предыдущего дня. (т.е. прорисовка таких линий происходит всего один раз на следующие сутки).

Re: RangeOfDay (Range Of Day) – дневной диапазон

Добавлено: 18 фев 2016, 13:33
evge
проверка

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

BarDate() == DateTime.Today && BarTime() == AsTime(10, 0, 0)


Бар текущего дня и времени 10:00

А рисуются линии уровнями (горизонтальные линии)

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

Levels[0].Level = High;
Levels[1].Level = Low;


определены в функции инициализации

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

AddLevel(0, Color.Green, LineStyles.DashBig, 1, "RangeOfDay");
AddLevel(0, Color.Red, LineStyles.DashBig, 1, "RangeOfDay");

Re: RangeOfDay (Range Of Day) – дневной диапазон

Добавлено: 18 фев 2016, 13:37
ShadoW
А по-какому принципу перерисовывается? Каждые 10 минут или может количество бар? У меня как-то на 20минутках корявенько работает.
Можно ли этот индикатор подправить и получить еще один, как писал выше - рисовать линии предыдущего дня?

Спасибо.

Re: RangeOfDay (Range Of Day) – дневной диапазон

Добавлено: 18 фев 2016, 13:48
evge
Ок, напишу. Попозже ссылку дам здесь.

Re: RangeOfDay (Range Of Day) – дневной диапазон

Добавлено: 18 фев 2016, 15:18
evge
ShadoW писал(а):рисовать линии предыдущего дня?


Готово, принимайте. Сообщите о результате.

Yesterday - экстремумы предыдущего дня

Пример

Yesterday-03.png
Yesterday-03.png (38.13 КБ) 38449 просмотров

Re: RangeOfDay (Range Of Day) – дневной диапазон

Добавлено: 18 фев 2016, 15:45
ShadoW
Спасибо! :) Установил, пока отображает нормально. Завтра посмотрю как будет.

Re: RangeOfDay (Range Of Day) – дневной диапазон

Добавлено: 18 фев 2016, 17:55
evge
Обновил индикатор Yesterday, т.к. обнаружилось некорректная работа от ТФ H3 до H12. Описал проблему на странице индикатора.

Re: RangeOfDay (Range Of Day) – дневной диапазон

Добавлено: 18 фев 2016, 18:21
ShadoW
Заметил кое-какой баг. Он связан с этими двумя индикаторами. Линия на минутке и пятиминутке парой не правильно отображается. Вернее ставится там где ее по сути еще не должно быть видно. Это наблюдается когда цена находится у верхней границы графика.

Re: RangeOfDay (Range Of Day) – дневной диапазон

Добавлено: 18 фев 2016, 18:27
evge
Это в последней версии? Была проблема с количеством истории сейчас до М5 должно работать, но если надо ТФ ниже М5 поставьте в MinScan 815 или выше. По скринам не понятно, где отображение Yesterday, а где RangeOfDay. По ним не понял где ошибка.