Пользовательские индикаторы > EvgeBars - бары evge

Дополнительные индикаторы от пользователей Альфа-Директ 4. Готовые решения от пользователей.
Аватара пользователя
evge
Администратор
Сообщения: 1807
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 361 раз
Контактная информация:

EvgeBars - бары evge

Непрочитанное сообщение evge » 12 фев 2016, 14:37

Индикатор EvgeBars рисует бычьи или медвежьи бары в зависимости от цены закрытия текущего бара по отношению к минимуму и максимуму предыдущего бара.

  • Если закрытие выше максимума предыдущего бара, рисуется бычий бар.
  • Если закрытие ниже минимума предыдущего бара, рисуется медвежий бар.
  • Если закрытие произошло внутри предыдущего бара, т.е. ниже максимума и выше минимума, бар рисуется в предшествующем виде.
Между барами проходит линия закрытия цены.

Отсутствуют тени. Бар содержит весь диапазон движения цены от Low до High.

Примеры работы

EvgeBars-01.png
EvgeBars-01.png (39.16 КБ) 26182 просмотра

EvgeBars-06.png
Дополнительный вариант с OHLC барами (см. сообщение ниже)
EvgeBars-06.png (26.48 КБ) 26129 просмотров


Исходный текст индикатора

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

function Initialize()
{
   IndicatorName = "EvgeBars";   
   AddInput("Input", Inputs.Candle);   
   AddSeries("Bear", DrawAs.Custom, Color.Red, AxisType.Default, true, Axes.New);
   AddSeries("Bull", DrawAs.Custom, Color.Green, AxisType.Default, true, Axes.New);
   AddSeries("Close", DrawAs.Custom, Color.Black, AxisType.Default, true, Axes.New);
 
   AddGlobalVariable("Last", Types.Boolean, false);
}

function Evaluate()
{
//evge 12.02.2016 http://alfadirect4.ru

Bear = Input.Low[0];
Bull = Input.High[0];
    
if (Input.Close[0] > Input.High[1])
   {
      Bull.DrawHistogram(Bear);
      Last = true;
   }
   else if (Input.Close[0] < Input.Low[1])
   {
      Bear.DrawHistogram(Bull);
      Last = false;
   }
   else
   {
      if (Last)
         Bull.DrawHistogram(Bear);
         else
         Bear.DrawHistogram(Bull);
   }

Close = Input.Close[0];
Close.DrawLine();
}


Скачать исходный текст

EvgeBars.zip
с отображением в области цены
(829 байт) 1430 скачиваний

EvgeBars.zip
с отображением в отдельной области
(34.35 КБ) 1405 скачиваний
никогда такого не было и вот опять

Аватара пользователя
evge
Администратор
Сообщения: 1807
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 361 раз
Контактная информация:

Вариант с отображением в области цены

Непрочитанное сообщение evge » 12 фев 2016, 14:43

Вариант отображения в области цены, где саму цену можно выставить отображать в виде линии и получаем тот же эффект но без дополнительной области индикатора и работа как с обычным графиком (покупка \ продажа)

Пример

EvgeBars-02.png
EvgeBars-02.png (39.73 КБ) 26180 просмотров

EvgeBars-03.png
EvgeBars-03.png (49.4 КБ) 26178 просмотров

EvgeBars-04.png
Работа в связке с TrendLines VBH6
EvgeBars-04.png (44.28 КБ) 26161 просмотр

EvgeBars-05.png
Работа в связке с TrendLines SIH6
EvgeBars-05.png (46.34 КБ) 26156 просмотров

Ссылка на индикатор TrendLines

EvgeBars-06.png
Вариант отображения EvgeBars с OHLC барами
EvgeBars-06.png (26.48 КБ) 26131 просмотр


Исходный текст индикатора EvgeBars с отображением в области цены

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

function Initialize()
{
   IndicatorName = "EvgeBars";   
   AddInput("Input", Inputs.Candle);   
   AddSeries("Bear", DrawAs.Custom, Color.Red, AxisType.Default, true, Axes.Parent);
   AddSeries("Bull", DrawAs.Custom, Color.Green, AxisType.Default, true, Axes.Parent);
 
   AddGlobalVariable("Last", Types.Boolean, false);
}

function Evaluate()
{
//evge 12.02.2016 http://alfadirect4.ru

Bear = Input.Low[0];
Bull = Input.High[0];
    
if (Input.Close[0] > Input.High[1])
   {
      Bull.DrawHistogram(Bear);
      Last = true;
   }
   else if (Input.Close[0] < Input.Low[1])
   {
      Bear.DrawHistogram(Bull);
      Last = false;
   }
   else
   {
      if (Last)
         Bull.DrawHistogram(Bear);
         else
         Bear.DrawHistogram(Bull);
   }

}
никогда такого не было и вот опять

Аватара пользователя
evge
Администратор
Сообщения: 1807
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 361 раз
Контактная информация:

Re: EvgeBars - бары evge

Непрочитанное сообщение evge » 04 мар 2016, 13:56

Ещё один вариант индикатора (усложненный и утяжеленный), который не каждому понравится, но смысл в усложнении имеется.

Дополнительный функционал:

- Фиолетовым цветом рисуются бары повышающиеся (open < close) внутри медвежьей тенденции;
- Светло-зеленым цветом рисуются бары понижающиеся (open > close) внутри бычьей тенденции;
- В дополнительной области под графиком рисуется общая тенденция зеленым - bull, красным - bear в виде гистограммы с значением 1 или -1.

Пример:

EvgeBars-06.png
EvgeBars-06.png (36.68 КБ) 25986 просмотров


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

function Initialize()
{
   IndicatorName = "EvgeBars";   
   AddInput("Input", Inputs.Candle);   

   PriceStudy = false;
   
   AddSeries("BuySell", DrawAs.Custom, Color.Green, AxisType.ZeroBased);

   AddSeries("Bear", DrawAs.Custom, Color.Red, AxisType.Default, true, Axes.Parent);
   AddSeries("Bull", DrawAs.Custom, Color.Green, AxisType.Default, true, Axes.Parent);
   AddSeries("BearPoor", DrawAs.Custom, Color.Magenta, AxisType.Default, true, Axes.Parent);
   AddSeries("BullPoor", DrawAs.Custom, Color.LawnGreen, AxisType.Default, true, Axes.Parent);

   AddGlobalVariable("Last", Types.Boolean, false);
}

function Evaluate()
{
//evge 04.03.2016 http://alfadirect4.ru

Bear = Input.Low[0];
Bull = Input.High[0];
BearPoor = Input.Low[0];
BullPoor = Input.High[0];

var H = Input.High[1];
var L = Input.Low[1];
    
if (Input.Close[0] > H)
   {
      Bull.DrawHistogram(Bear);
      Last = true;
   }
   else if (Input.Close[0] < L)
   {
      Bear.DrawHistogram(Bull);
      Last = false;
   }
   else
   {
      if (Last)
         {
         if (Input.Open[0] < Input.Close[0])
            Bull.DrawHistogram(Bear);
            else
            BullPoor.DrawHistogram(Bear);
         } else
         {
         if (Input.Open[0] > Input.Close[0])
            Bear.DrawHistogram(Bull);
            else
            BearPoor.DrawHistogram(Bull);
         }
   }

if (Last)
BuySell = 1;
else
BuySell = -1;

if (BuySell > 0)
BuySell.DrawHistogram(Color.Green);
else
BuySell.DrawHistogram(Color.Red);

}
никогда такого не было и вот опять

Аватара пользователя
evge
Администратор
Сообщения: 1807
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 361 раз
Контактная информация:

Re: EvgeBars - бары evge

Непрочитанное сообщение evge » 06 дек 2016, 20:54

Вариант без отрисовки баров в области цены, только серию BuySell в отдельной области

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

function Initialize()
{
   IndicatorName = "EvgeBarsBS";   
   AddInput("Input", Inputs.Candle);   
   PriceStudy = false;   
   AddSeries("BuySell", DrawAs.Custom, Color.Green, AxisType.ZeroBased);
   AddGlobalVariable("Last", Types.Boolean, false);
}

function Evaluate()
{
//evge 06.12.2016 http://alfadirect4.ru

var H = Input.High[1];
var L = Input.Low[1];
     
if (Input.Close[0] > H) Last = true;
else
if (Input.Close[0] < L) Last = false;
   
if (Last)
BuySell = 1;
else
BuySell = -1;

if (BuySell > 0)
BuySell.DrawHistogram(Color.Green);
else
BuySell.DrawHistogram(Color.Red);
}
никогда такого не было и вот опять

Bizlis
Сообщения: 4
Зарегистрирован: 18 янв 2020, 15:41
Благодарил (а): 1 раз

Re: EvgeBars - бары evge

Непрочитанное сообщение Bizlis » 30 янв 2020, 19:57

Подскажите, а можно сделать подобный индикатор, который выделяет бары прямоугольником, только немного по другому принципу, пример:
скрин http://prntscr.com/qv66xt

в данном примере на ТФ М5 прямоугольной областью выделены свечи входящие в М30

Аватара пользователя
evge
Администратор
Сообщения: 1807
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 361 раз
Контактная информация:

Re: EvgeBars - бары evge

Непрочитанное сообщение evge » 30 янв 2020, 20:55

Можно: BarFrame
никогда такого не было и вот опять

Bizlis
Сообщения: 4
Зарегистрирован: 18 янв 2020, 15:41
Благодарил (а): 1 раз

Re: EvgeBars - бары evge

Непрочитанное сообщение Bizlis » 31 янв 2020, 22:46

evge писал(а):Можно: BarFrame

такой вариант я видел, к сожалению он мне не подходит, мусора много получается, хотелось бы обойтись одним прямоугольником, а не забором из прямоугольников

George69
Сообщения: 2
Зарегистрирован: 13 авг 2020, 15:32
Благодарил (а): 2 раза

Re: EvgeBars - бары evge

Непрочитанное сообщение George69 » 21 авг 2020, 13:51

Эти бары интересны. Надо их изучить. Вообще я искал Range Bars. Но не нашел тут. У вас есть уже прописанный код для них?


Вернуться в «Пользовательские индикаторы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 9 гостей