#1526
1 минуту назад, Rigal сказал:

Если хочется знать, первый ли это запуск - проверяем prev_calculated == 0

Если лимит должен быть больше единицы - ну прибавляем к нему единицу по умолчанию и сравниваем limit > 1

честно, prev_calculated == 0 не рассматривал. 

Знаете, когда практически все индикаторы (у меня по крайней мере) идут с limit > 1, а иначе, поневоле ищешь ошибку в коде.

Не находишь - обращаешься на форум

#1527
1 час назад, radioman сказал:

честно, prev_calculated == 0 не рассматривал. 

Знаете, когда практически все индикаторы (у меня по крайней мере) идут с limit > 1, а иначе, поневоле ищешь ошибку в коде.

Не находишь - обращаешься на форум

Ну фракталы, например, требуют больше одного бара с обеих сторон - фрактал просто не может появиться на последнем закрытом баре.

Я не смотрел внимательно на алгоритм, но по наличию выделяемых на каждом тике массивов по триста элементов, ему тоже есть,  чего посчитать ;)

Изменено 16 декабря, 2020 пользователем Rigal

#1528
3 часа назад, Rigal сказал:

массивов по триста элементов, ему тоже есть,  чего посчитать

триста элементов.. да, забыл уменьшить. Размерность выделена на случай увеличения периода индикатора. Я так думаю.

За глаза хватит и 14. Ну 21, по желанию. И шкала от -100 до +100 смотрится лучше.

Я еще сократил код, убрал булевые атавизмы. Голова посвежее будет - распринтовать все..

Спойлер

//+----------------------------------------------+
//|                                     K_II.mq4 |
//+----------------------------------------------+
#property strict
//---- indicator settings
#property indicator_separate_window
#property indicator_minimum -110
#property indicator_maximum  110
#property indicator_buffers  1
#property indicator_color1   clrGold
//---- input parameters
input uint Inp_K_Period = 3; // K_II Period
//---- buffers
double  Ext_Buffer[];
//----
int     nK_Period;
//----
int     nDraw_begin1=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
{
   string sShort_name;
   //----
   IndicatorDigits(1);
   //----
   nK_Period=int(Inp_K_Period < 3 ? 3 : Inp_K_Period);
   //---- indicator line
   SetIndexBuffer(0, Ext_Buffer);
   SetIndexStyle (0, DRAW_LINE); 
   SetIndexLabel (0, "K_II ("+(string)nK_Period+")");
   //---- name for indicator
   sShort_name="K_II";
   IndicatorShortName(sShort_name);
   //----
   nDraw_begin1=nK_Period;
   SetIndexDrawBegin(0,nDraw_begin1);
//---- initialization done
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| 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[])
{
//----
   if(rates_total<=nDraw_begin1) return(0);
   //----
   double dCoefficient=0., dPeriodRatio=0., k,
          dTempValue, dPriceBag, dPriceToAbs, dPreValue, dValue;
   int    nPeriod=0, A=0, B, C;
   double ArrayP[14]={0}, ArrayX[14]={0}, ArrayY[14]={0}, ArrayZ[14]={0};
   //----
   int limit=rates_total-prev_calculated;
   //----
   if(limit=1)// limit>1
     {
      limit=rates_total-nDraw_begin1-1;
      //----
      ArrayInitialize(Ext_Buffer, 0.);
     }
   //---- K_II
   for(int i=limit; i>=0; i--)
     {
      dTempValue= 0.;
      //----
      nPeriod=int(nK_Period-1 >= 2 ? nK_Period : 3);
      //----
      k=nPeriod;
      dCoefficient= 12/(k*(k-1)*(k+1));
      dPeriodRatio= (nPeriod+1)*0.5;
      //----
      for(A=2; A<=nPeriod; A++) ArrayP[A-1]=ArrayP[A];
      //----
      ArrayP[nPeriod]=close[i];
      //===========================================   // Price/ABS border
         for(B=1; B<=nPeriod; B++)
           {
            ArrayY[B]= B;
            ArrayZ[B]= B;
            ArrayX[B]= ArrayP[B];
           }
         //----  
         for(B=1; B<=(nPeriod-1); B++)
           {
            dPriceBag= ArrayX[B];
            C= B;
            A= B+1;
            //----
            for(A=B+1; A<=nPeriod; A++)
              {
               if (ArrayX[A]<dPriceBag)
                 {
                  dPriceBag = ArrayX[A];
                  C = A;
                 }
              }
            //----
            dPriceToAbs= ArrayX[B];
            ArrayX[B]  = ArrayX[C];
            ArrayX[C]  = dPriceToAbs;
            dPriceToAbs= ArrayY[B];
            ArrayY[B]  = ArrayY[C];
            ArrayY[C]  = dPriceToAbs;
           }
         //----  
         dTempValue=0.;
         for(B=1; B<=nPeriod; B++) dTempValue=dTempValue+(ArrayZ[B]-dPeriodRatio)*(ArrayY[B]-dPeriodRatio);
         //----
         dPreValue=dCoefficient*dTempValue;
      //----
      dValue=dPreValue;
      if (dValue==0) dValue=0.00001;
      //----
      Ext_Buffer[i]=dValue*100.;
     }
//----
   return(rates_total);
}
//+------------------------------------------------------------------+

 

 

K_II.mq412 скач.

#1529
3 часа назад, radioman сказал:

триста элементов.. да, забыл уменьшить. Размерность выделена на случай увеличения периода индикатора. Я так думаю.

За глаза хватит и 14. Ну 21, по желанию. И шкала от -100 до +100 смотрится лучше.

Я еще сократил код, убрал булевые атавизмы. Голова посвежее будет - распринтовать все..

  Показать контент


//+----------------------------------------------+
//|                                     K_II.mq4 |
//+----------------------------------------------+
#property strict
//---- indicator settings
#property indicator_separate_window
#property indicator_minimum -110
#property indicator_maximum  110
#property indicator_buffers  1
#property indicator_color1   clrGold
//---- input parameters
input uint Inp_K_Period = 3; // K_II Period
//---- buffers
double  Ext_Buffer[];
//----
int     nK_Period;
//----
int     nDraw_begin1=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
{
   string sShort_name;
   //----
   IndicatorDigits(1);
   //----
   nK_Period=int(Inp_K_Period < 3 ? 3 : Inp_K_Period);
   //---- indicator line
   SetIndexBuffer(0, Ext_Buffer);
   SetIndexStyle (0, DRAW_LINE); 
   SetIndexLabel (0, "K_II ("+(string)nK_Period+")");
   //---- name for indicator
   sShort_name="K_II";
   IndicatorShortName(sShort_name);
   //----
   nDraw_begin1=nK_Period;
   SetIndexDrawBegin(0,nDraw_begin1);
//---- initialization done
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| 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[])
{
//----
   if(rates_total<=nDraw_begin1) return(0);
   //----
   double dCoefficient=0., dPeriodRatio=0., k,
          dTempValue, dPriceBag, dPriceToAbs, dPreValue, dValue;
   int    nPeriod=0, A=0, B, C;
   double ArrayP[14]={0}, ArrayX[14]={0}, ArrayY[14]={0}, ArrayZ[14]={0};
   //----
   int limit=rates_total-prev_calculated;
   //----
   if(limit=1)// limit>1
     {
      limit=rates_total-nDraw_begin1-1;
      //----
      ArrayInitialize(Ext_Buffer, 0.);
     }
   //---- K_II
   for(int i=limit; i>=0; i--)
     {
      dTempValue= 0.;
      //----
      nPeriod=int(nK_Period-1 >= 2 ? nK_Period : 3);
      //----
      k=nPeriod;
      dCoefficient= 12/(k*(k-1)*(k+1));
      dPeriodRatio= (nPeriod+1)*0.5;
      //----
      for(A=2; A<=nPeriod; A++) ArrayP[A-1]=ArrayP[A];
      //----
      ArrayP[nPeriod]=close[i];
      //===========================================   // Price/ABS border
         for(B=1; B<=nPeriod; B++)
           {
            ArrayY[B]= B;
            ArrayZ[B]= B;
            ArrayX[B]= ArrayP[B];
           }
         //----  
         for(B=1; B<=(nPeriod-1); B++)
           {
            dPriceBag= ArrayX[B];
            C= B;
            A= B+1;
            //----
            for(A=B+1; A<=nPeriod; A++)
              {
               if (ArrayX[A]<dPriceBag)
                 {
                  dPriceBag = ArrayX[A];
                  C = A;
                 }
              }
            //----
            dPriceToAbs= ArrayX[B];
            ArrayX[B]  = ArrayX[C];
            ArrayX[C]  = dPriceToAbs;
            dPriceToAbs= ArrayY[B];
            ArrayY[B]  = ArrayY[C];
            ArrayY[C]  = dPriceToAbs;
           }
         //----  
         dTempValue=0.;
         for(B=1; B<=nPeriod; B++) dTempValue=dTempValue+(ArrayZ[B]-dPeriodRatio)*(ArrayY[B]-dPeriodRatio);
         //----
         dPreValue=dCoefficient*dTempValue;
      //----
      dValue=dPreValue;
      if (dValue==0) dValue=0.00001;
      //----
      Ext_Buffer[i]=dValue*100.;
     }
//----
   return(rates_total);
}
//+------------------------------------------------------------------+

 

 

K_II.mq4 8 \u043a\u0411 · 2 загрузки

Имхо можно выделять под период.

double array[];

ArrayResize(array, UserSelectedNumberOfBars);

#1530
В 07.12.2020 в 20:39, Sank сказал:

Здравствуйте, уважаемые программисты!

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

Либо сделать так, что после первого касания он уровень не замечает. Либо (что предпочтительнее) чтобы уровень после первого касания дальше не отрисовывался.

07.12.20 USDCADM5.png

Support and Resistance Alert Revision 2.mq4 6 \u043a\u0411 · 2 загрузки

Пока я нетрезв, выбросить все нафиг,  сформулировать идею - и написать

 

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

#1531

Всем привет! image.gif.85e82c782a8d7dccbdc1dadf62871c59.gif:)
Сделайте пожалуйста отправку сообщение на почту и телефон от индюка Bar value (таймфрем, валютная пара, время).
Желательно чтоб индюк не ждал закрытия свечи и делал отправку сообщений, а отсылал их сразу, как только сработало условие

Bar value.mq413 скач.

#1532

Всем доброго часа. Можно ли сделать алерт на индикатор %WPR (Williams Percent Range) чтобы при касании линий -10 и -90, или -15 и -85, (смотря какие линии выставлены в настройках), подавался сигнал, и еще тогда, когда случается расхождение индикатора с ценой? Пример на скрине.

Screenshot_2.png

#1533

Ув. программисты mql5!  Индикатор выдает ошибки при компиляции. Исправьте, пожалуйста. Заранее признательна за помощь.:-*

CandleColorMidPoint.mq57 скач.

Изменено 9 января, 2021 пользователем iloirin

#1534
4 часа назад, iloirin сказал:

Индикатор выдает ошибки при компиляции

 

CandleColorMidPoint.mq510 скач.

#1535
20 часов назад, Страник сказал:

Всем привет! image.gif.85e82c782a8d7dccbdc1dadf62871c59.gif:)
Сделайте пожалуйста отправку сообщение на почту и телефон от индюка Bar value (таймфрем, валютная пара, время).
Желательно чтоб индюк не ждал закрытия свечи и делал отправку сообщений, а отсылал их сразу, как только сработало условие

Bar value.mq4 3 \u043a\u0411 · 1 загрузка 13 скач.

Нашёлся индикатор с мгновенным аллертом при срабатывании условия (только вместо цифр над/под свечой, теперь рисуются стрелки, что не очень удобно. Если возможно, то поправьте пожалуйста обратно на цифры), только вот без отправки сообщений на телефон и почту. Добавьте пожалуйста отправку сообщений

Bar value v1.mq413 скач.

#1536
3 часа назад, radioman сказал:

Ув. @radioman, огромное спасибо! Прошу ответьте: если я правильно поняла, то это я, меняя код значка в 28 строке, "потеряла" запятую и из-за этого были ошибки?

Изменено 9 января, 2021 пользователем iloirin

#1537
3 часа назад, iloirin сказал:

из-за этого были ошибки?

Здравствуйте. Вы правы, дело было в запятой

#1538
В 09.01.2021 в 20:14, Страник сказал:

Нашёлся индикатор с мгновенным аллертом при срабатывании условия (только вместо цифр над/под свечой, теперь рисуются стрелки, что не очень удобно. Если возможно, то поправьте пожалуйста обратно на цифры), только вот без отправки сообщений на телефон и почту. Добавьте пожалуйста отправку сообщений

Bar value v1.mq4 4 \u043a\u0411 · 2 загрузки 13 скач.

Как оказалось обозначение цифрами осталось..

Нужно было просто отключить стрелки)

Прикрепите плиз отправку сообщений

#1539

Здравствуйте, Уважаемые специалисты.

 

Есть индикатор = Trendlinesday. Он довольно простой и рисует трендовые линии по хаям.

Есть советник = TrendLine_Trading. Он открывает ордера при пересечении заданной нами трендовой линии. В настройках советника пишем название трендовых линии от индикатора. Получается один рисует линии, другой открывает ордера.

Проблема в следующем: советник, при открытии ордера, задает комментарий в описании трендовой линии, и после этого новых ордеров не открывает. Не могли бы Вы подчистить код советника, чтобы:
1. Советник открывал ордера только при пересечении линии тренда в нужном направлении. Т.е. ордер на покупку открывался при пересечении ценой линии Trend UP-0 снизу вверх, а ордер на продажу при пересечении линии Trend DN-0 сверху вниз.

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

 

Спасибо!

ИНД = Trendlinesday.mq413 скач. СОВА = TrendLine_Trading.mq49 скач.

#1540
В 12.01.2021 в 20:18, Страник сказал:

Как оказалось обозначение цифрами осталось..

Нужно было просто отключить стрелки)

Прикрепите плиз отправку сообщений

Помогли на другом форуме. Может кому пригодится...

Bar value v1(+).mq413 скач.

#1541

Приветствую всех. Скажите, можно ли к индикатору добавить дэшборт? Индикатор показывает импульсные свечи (с большими телами). В условиях дэшборда, чтобы можно было указы вать пары и выбирать на каком ТФ показывать сигнал.  Если это очень сложно, сколько это будет стоить? Заранее спасибо.  

momentum_candles_v1.2.mq411 скач.

#1542

Здравствуйте господа программисты, можно ли сделать так чтобы показания этого индикатора отображались на истории, чтобы на каждом предыдущем дне можно было увидеть показания индикатора (Hi/Lo пяти предыдущих дней) 

5 day.png

5day_mod_txt.mq427 скач.

#1543
В 25.01.2021 в 16:34, selavie сказал:

Здравствуйте господа программисты, можно ли сделать так чтобы показания этого индикатора отображались на истории, чтобы на каждом предыдущем дне можно было увидеть показания индикатора (Hi/Lo пяти предыдущих дней) 

5 day.png

5day_mod_txt.mq4 9 \u043a\u0411 · 1 загрузка 27 скач.

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

#1544

Здравствуйте, уважаемые Программисты mql5 - добрые самаритяне!:X

Измените, пожалуйста, алгоритм цветовой раскраски значков в данном индикаторе.

Индикатор ставит значок на середине (средней цене) либо всей свечи, либо тела свечи  - по выбору в настройках. Далее он раскрашивает этот значок в зависимости от типа свечи – бычья, медвежья

Мне нужно, чтобы он раскрашивал значки по другому алгоритму: если середина новой свечи выше середины предыдущей - то бычий цвет, ниже – медвежий, на одном уровне – нейтральный.

Индикатор очень помогает как можно дольше находиться в сделке, следовать за трендом.

Помогите, пожалуйста. Заранее признательна.

CandleColorMidPoint.mq514 скач.

Изменено 3 февраля, 2021 пользователем iloirin

#1545

Уважаемые программисты! Помогите модифицировать индикатор RSI.

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

зеленый квадратик, если RSI пересек и находиться выше уровня 50,

красный квадратик, если RSI пересек и находиться ниже уровня 50.

И самое главное, он должен быть мультитаймфреймовый. 

RSI.mq46 скач.

#1546
20 часов назад, dimon79ua сказал:

Уважаемые программисты! Помогите модифицировать индикатор RSI.

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

зеленый квадратик, если RSI пересек и находиться выше уровня 50,

красный квадратик, если RSI пересек и находиться ниже уровня 50.

И самое главное, он должен быть мультитаймфреймовый. 

RSI.mq4 4 \u043a\u0411 · 0 загрузок

А можно уточнить, что значит «пересек»? Если мы на минутке, значение 80, пересек 50 полчаса назад - он какого цвета?

#1547
В 25.02.2021 в 07:26, Rigal сказал:

А можно уточнить, что значит «пересек»? Если мы на минутке, значение 80, пересек 50 полчаса назад - он какого цвета?

Цвет не меняется, пока на выбранном таймфрейме RSI не пересечет уровень 501795361856_.thumb.png.00ce003b262c31c25795d6a99200be1b.png (подвальный индикатор для примера, он не должен отображаться на графике, только "квадратик" в углу).

#1548

Здравствуйте, уважаемые программисты! Помогите, пожалуйста, модифицировать советник, который выводит на график статистику по всем работающим на счете советникам. Проблема в том, что советник берет всю инфу из истории терминала и выводит ее на график... А если советников было много, за всю историю существования счета, то высоты графика не хватает и статистику по многим советникам попросту не видно. В настройках у него есть переменная "S_13 Исключить из статистики MagicNumber."  Но количество магиков ограничено четырьмя штуками... Т.е. я могу отключить показ статистики только четырех советников. А хотелось бы, что бы можно было отключать неограниченное число магиков.                                                                                   Или может есть аналог такого советника, в более совершенном варианте? Буду признателен, если подскажете.

Statistics.mq412 скач.

Изменено 10 марта, 2021 пользователем Vladislav.k

#1549

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

William36histogram_6thc4.ex413 скач. William36histogram_6thc4.mq415 скач.

Для публикации сообщений создайте учётную запись или авторизуйтесь

Перейти к списку тем
Форум · 2.0.20260627.0025