0
Да. Совместно с автором топика (ссылка) её прорабатываем.
avatar

USDPump

  • 22 ноября 2021, 18:04
0
Уточнение: для mt4. Задавайте вопросы, если таковые будут.
avatar

USDPump

  • 22 ноября 2021, 17:37
0
Андрей приветствую.
Попробую пояснить. Случается, что после периода накопления/разгрузки (продолжительного и не очень) происходит импульсное движение цены. Начало данного движения можно фиксировать резким выбросом цены за границы полос боллинджера и закрытием свечи за полосой. Для того, чтобы индикатор нарисвал стрелку должны выполниться следующие условия:
1) произошло расширение верхней полосы относительно скользящей средней.
2) произошло расширение нижней полосы относительно скользящей средней.
3) свеча закрылась за верхней или нижней полосой боллинджера.
Рисунок с пояснением прилагаю.
Применять его можно для БО. Вход на следующей после стрелки свече.

Сможете поправить индикатор?
avatar

USDPump

  • 25 мая 2021, 10:57
0
Андрей, с праздниками!
Прошу поставить на май корректировку формул в данном индикаторе.
avatar

USDPump

  • 1 мая 2021, 15:02
0
Отлично. В этой теме или оформить новый топик?
avatar

USDPump

  • 30 апреля 2021, 19:25
0
Андрей, добрый день.
Можно в новом топике (в мае) в данном индикаторе исключить ложные срабатывания, чтобы сравнивались значения верхней и нижней полос боллинджера сравнивались со скользящей средней?
avatar

USDPump

  • 29 апреля 2021, 12:15
0
Все верно, индикатор сравнивает значения верхней и нижней полос боллинджера. delta=bup[i]-bdn[i].
Андрей, а можно данный индикатор выполнить таким образом, чтобы он сравнивал
1) bup[i]-ma[i]
2) ma[i]-dn[i]?
тогда, вероятно, мы сможем исключить ложные срабатывания.
Попробовал поправить код, но выдаются ошибки.

#property strict
#property indicator_chart_window

#property indicator_buffers 5

input int candle=1000;
input int count=1;
input int period=20;
input double dev=2;
input double procent=10;

datetime t=0;
double up[],dn[],bup[],bdn[],ma[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping

   Comment("");

   SetIndexStyle(0,DRAW_ARROW,0,1,Aqua);
   SetIndexArrow(0,108);
   SetIndexBuffer(0,up);

   SetIndexStyle(1,DRAW_ARROW,0,1,Red);
   SetIndexArrow(1,108);
   SetIndexBuffer(1,dn);

   SetIndexStyle(2,DRAW_LINE,0,1,DarkSlateGray);
   SetIndexBuffer(2,bup);

   SetIndexStyle(3,DRAW_LINE,0,1,DarkSlateGray);
   SetIndexBuffer(3,bdn);

   SetIndexStyle(4,DRAW_LINE,0,1,DarkSlateGray);
   SetIndexBuffer(4,ma);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Delta()
  {
   double delta=0;

   for(int i=1; i<count; i++)
     {
      delta=bup[i]-ma[i];
     }

   delta=delta/count;

   return(delta);
  }
//+------------------------------------------------------------------+
double Delta1()
  {
   double delta1=0;

   for(int i=1; i<count; i++)
     {
      delta1=ma[i]-bdn[i];
     }

   delta1=delta1/count;

   return(delta1);
  }

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   double delta=0,pro=0;

   if(t!=time[0])
     {
      for(int i=0; i<candle; i++)
        {
         bup[i]=iBands(NULL,0,period,dev,0,0,MODE_UPPER,i);
         bdn[i]=iBands(NULL,0,period,dev,0,0,MODE_LOWER,i);
         ma[i]=iBands(NULL,0,period,dev,0,0,MODE_MAIN,i);

         delta=bup[i]-ma[i];
         pro=(delta-Delta())*100/delta;
         
         delta1=ma[i]-bdn[i];
         pro1=(delta1-Delta1())*100/delta1
         
         

         if(delta>Delta() && pro>procent && delta1>Delta1 && pro1>procent())
           {
            if(close[i]>bup[i])
              {
               up[i]=high[i];
              }
            if(close[i]<bdn[i])
              {
               dn[i]=low[i];
              }
           }
        }
     }

//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

avatar

USDPump

  • 27 апреля 2021, 20:53
0
Индикатор свою функцию выполняет. Правда заметил некоторые ложные сигналы когда:
1. Одна полоса раскрывается, а вторая стоит на месте.
2. Обе полосы идут в одном направлении.
Настройки ставил: count =1, procent=30.
Не понял в коде, какую величину сравниваем, похоже что расстояние между полосами. Вероятно, если бы сравнивались значения каждой из полос в отдельности, то можно было бы исключить ложные срабатывания.
Ложные срабатывания:




avatar

USDPump

  • 18 апреля 2021, 15:35
0
Закинуть куда? На сайт или в терминал?
avatar

USDPump

  • 17 апреля 2021, 09:55
0
Я бы добавил регулировку числа свечей на которых бы данный индикатор работал: вся история или только последние (1 или 10 свечей). Чтобы не захламплять график стрелками, тк могут использоваться стрелки от других индикаторов.
avatar

USDPump

  • 15 апреля 2021, 19:51
0
Готов выступить поручителем.
avatar

USDPump

  • 15 апреля 2021, 11:07
0
Андрей, удастся написать данный индикатор (с нуля) в этом месяце? Нужны корректировки ТЗ или все понятно по последнему комментарию?
avatar

USDPump

  • 14 апреля 2021, 19:23
0
Конечно. Индикаторы прикладывались для объяснения их смысла работы.
Возможно написать данный индикатор с нуля?
Цель, чтобы индикатор отслеживал серию (из заданного числа) последовательных импульсных свечей и появление первой противоположной (сигнальной) свечи в тот момент, когда цена заходит в зону перепроданности или перекупленности индикатора стохастик? Стрелка нужна на сигнальной свече (сигнал на вход). Круги только на тех импульсных свечах, которые находятся в зонах 20/80 стохастика (сигнализирующие о приближении о близости к моменту разворота цены).
avatar

USDPump

  • 13 апреля 2021, 22:48
0
Андрей, приветствую. Хотел уточнить по поводу ТЗ данного топика. Получится ли выполнить вышеописанный индикатор?
avatar

USDPump

  • 13 апреля 2021, 21:38
0
Я могу расценить раскрытие как
Слабое:

Среднее:

Сильное:

Пока не встречался инструмент способный формализовать силу раскрытия боллинджера. Кроме как ширина полос.
avatar

USDPump

  • 8 апреля 2021, 22:44
0
kalabster какая конкретика нужна по раскрытию?
Раскрытие либо есть, либо его нет.
Если раскрытие есть, то нужно оценить силу этого раскрытия. Если раскрытие сильное, то это условие выполняется. Вопрос в том, какими характеристикам можно объяснить терминалу, что данное раскрытие сильное и должно учитываться. В ТЗ написаны варианты по которым можно попробовать оценить силу раскрытия: по изменению отклонения полос боллинджера или по изменению скользящей средней.
Если у тебя есть варианты, как еще можно оценить силу раскрытия боллинджера, не держи в себе, поделись мыслями.
avatar

USDPump

  • 8 апреля 2021, 22:27
0
Наверняка проще. Но тут акцент именно на раскрытие полос и закрытие за ними, как я понял. Полосы то могут сужаться, расширяться, идти в одну сторону.
avatar

USDPump

  • 8 апреля 2021, 17:28
0
Интересный индикатор. Похож на тот что здесь, только смысл в другую сторону.
avatar

USDPump

  • 8 апреля 2021, 17:23
0
Доброго дня, Андрей.
Есть вариант, как исключить ложные срабатывания индикатора.
У нас есть несколько импульсных медвежьих свечей, которые заходят в зону 20 стохастика. Индикатор candle помечает их кружками. При появлении сигнальной бычьей свечи рисуется стрелка и срабатывает алерт.
Аналогичным образом для импульсных бычьих свечей и зоной 80 стохастика.
На свечах, не входящих в зону стохастика за обозначенные уровни, индикатор candle не реагирует. (не рисует кружки).
Кружки и стрелки указателей упираются (или находятся на небольшом расстоянии) в хай (или лой) импульсных и сигнальных свечей (или цены открытия/закрытия, если нет тени, т.к. требуется видеть тени свечей).
Прошу включить данные дополнения в ТЗ.
avatar

USDPump

  • 7 апреля 2021, 20:46