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

EvgeBars - бары evge

Добавлено: 12 фев 2016, 14:37
evge
Индикатор EvgeBars рисует бычьи или медвежьи бары в зависимости от цены закрытия текущего бара по отношению к минимуму и максимуму предыдущего бара.

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

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

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

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

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


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

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

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 скачиваний

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

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

Пример

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

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

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

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

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

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


Исходный текст индикатора 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);
   }

}

Re: EvgeBars - бары evge

Добавлено: 04 мар 2016, 13:56
evge
Ещё один вариант индикатора (усложненный и утяжеленный), который не каждому понравится, но смысл в усложнении имеется.

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

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

Пример:

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


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

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);

}

Re: EvgeBars - бары evge

Добавлено: 06 дек 2016, 20:54
evge
Вариант без отрисовки баров в области цены, только серию 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);
}

Re: EvgeBars - бары evge

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

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

Re: EvgeBars - бары evge

Добавлено: 30 янв 2020, 20:55
evge
Можно: BarFrame

Re: EvgeBars - бары evge

Добавлено: 31 янв 2020, 22:46
Bizlis
evge писал(а):Можно: BarFrame

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

Re: EvgeBars - бары evge

Добавлено: 21 авг 2020, 13:51
George69
Эти бары интересны. Надо их изучить. Вообще я искал Range Bars. Но не нашел тут. У вас есть уже прописанный код для них?