# Доработка ботов (советников, индикаторов) vol. 2

Раздел: Язык программирования MQL4
Автор темы: chocolate
Создана: 2014-10-02 12:48
Ответов: 33795 | Просмотров: 6649671
Страница 1050 из 1690
Источник: https://forexsystemru.com/threads/77111/page-1050

---

## CAHDPO — 2020-05-04 10:38

> Цитата (ludaedFX):
> Подвал!!!!
>
> Спасибо, что откликнулись, но немного не то, что нужно. В вашем варианте остался расчет машки по цене, а интересовало, можно ли сделать расчет с того индикатора, на который накидываем машку.

## старый хохмач — 2020-05-04 12:13

Господа программисты.Приблизьте пожалуйста стрелку к графику.А ещё будет лучше если сделаете так,что бы самому можно было регулировать расстояние от стрелки до графика.Заранее спасибо

## ludaedFX — 2020-05-04 13:00

> Цитата (старый хохмач):
> Господа программисты.Приблизьте пожалуйста стрелку к графику.А ещё будет лучше если сделаете так,что бы самому можно было регулировать расстояние от стрелки до графика.Заранее спасибо

Пожалуйста!;)

## berk — 2020-05-04 13:30

Ребят, всем привет! Помогите пожалуйста прикрутить к советнику закрытие по уровню стохастика. При выходе из зоны перекупленности - перепроданности (30,70) надо чтобы закрывал все открытые позиции.

## старый хохмач — 2020-05-04 14:23

> Цитата (старый хохмач):
> Господа программисты.Приблизьте пожалуйста стрелку к графику.А ещё будет лучше если сделаете так,что бы самому можно было регулировать расстояние от стрелки до графика.Заранее спасибо

Ещё раз спасибо

## ludaedFX — 2020-05-04 14:26

> Цитата (старый хохмач):
> Ещё раз спасибо

Смотри пост выше я все сделал!

## dadik — 2020-05-04 14:48

Привет ребята..пожалуйсто подрихтуйте ....ценовая метка работает не корректно...при появлении следующего бара метка не перекидывается на текущий.

## ludaedFX — 2020-05-04 14:55

> Цитата (dadik):
> Привет ребята..пожалуйсто подрихтуйте ....ценовая метка работает не корректно...при появлении следующего бара метка не перекидывается на текущий.

Посмотри в этой ветке https://forexsystemsru.com/threads/strategija-na-indikatore-gannsignalcel_v4.88104/

## dadik — 2020-05-04 15:08

я же не исчу...

## Slava78 — 2020-05-04 17:21

> Цитата (berk):
> Ребят, всем привет! Помогите пожалуйста прикрутить к советнику закрытие по уровню стохастика. При выходе из зоны перекупленности - перепроданности (30,70) надо чтобы закрывал все открытые позиции.

Попробуй

## berk — 2020-05-04 18:38

> Цитата (Slava78):
> Попробуй

Что то не срабатывает. Вот на скрине показал как должно быть.  :unsure:

p.s. Тут медленная нитка стохастика убрана. Только по быстрой ориентируемся.

## Slava78 — 2020-05-04 18:59

> Цитата (berk):
> Что то не срабатывает. Вот на скрине показал как должно быть.  :unsure:
>
> p.s. Тут медленная нитка стохастика убрана. Только по быстрой ориентируемся.

Сразу надо скрин выкладывать. Уровни поменяй местами

## berk — 2020-05-04 19:11

> Цитата (Slava78):
> Сразу надо скрин выкладывать. Уровни поменяй местами

Все равно не закрывает. Поменял уровни местами.
Вот на скрине должен был закрыть. Все условия соблюдены.

## berk — 2020-05-04 19:15

Даже раньше должен был закрыть.

## Slava78 — 2020-05-04 19:28

> Цитата (berk):
> Все равно не закрывает. Поменял уровни местами.
> Вот на скрине должен был закрыть. Все условия соблюдены.

Закрытие по сигналу 1 !!!

## berk — 2020-05-04 19:32

> Цитата (Slava78):
> Закрытие по сигналу 1 !!!

Точно! Ай молодца!! Работает! (y)

## tirion — 2020-05-04 21:23

[QUOTE = "tirion, post: 1534119, member: 169178"]
Dear programmers! Large request to replace the colored stripes with colored vertical lines. So much more practical. [ATTACH = full] 378677 [/ ATTACH]
[/ QUOTE]
A. Changed to lines.

Огромное спасибо!Thank you so much!

## tirion — 2020-05-04 21:35

> Цитата (1715):
> Прикрутите стрелки к индикатору пожалуйста.

Может я что-то пропустил. Очень большая просьба "прикрутить" стрелки или прописать коды.Многим будет большое подспорье.

## MERFY — 2020-05-05 16:25

Добрый день! Прошу сделать небольшую доработку индикатора, возможность продлить линию Millera на N баров вперед, чтобы видеть его цикл, за ранее большое спасибо.

## IRIP — 2020-05-05 16:36

Здравствуйте, помогите пожалуйста, решить проблему

Индикаторы. 
Если выбираю  tf_cu  = PERIOD_CURRENT, по умолчанию, то 

int             ColorBars          = 500;

рисуется верно, и раскрашивает только указанных 500 баров (или 1, 5, 10 сколько нужно)
если выбираю  tf_cu равным любому другому (большему)
значению - то 
ColorBars перестает работать 
на сколько я вижу, проблема тут 

```
   if (TimeFrame == _Period)
```

а как починить, пока не пойму

```
//+------------------------------------------------------------------+
//|                                                               XO |
//|                                                           mladen |
//+------------------------------------------------------------------+
#property link      "www.forex-station.com"
#property copyright "www.forex-station.com"

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1  clrDeepSkyBlue
#property indicator_color2  clrPaleVioletRed
#property indicator_width1  2
#property indicator_width2  2
#property indicator_minimum 0
#property indicator_maximum 1

//
//
//
//
//

enum enTimeFrames
{
   tf_cu  = PERIOD_CURRENT, // Current time frame
   tf_m1  = PERIOD_M1,      // 1 minute
   tf_m5  = PERIOD_M5,      // 5 minutes
   tf_m15 = PERIOD_M15,     // 15 minutes
   tf_m30 = PERIOD_M30,     // 30 minutes
   tf_h1  = PERIOD_H1,      // 1 hour
   tf_h4  = PERIOD_H4,      // 4 hours
   tf_d1  = PERIOD_D1,      // Daily
   tf_w1  = PERIOD_W1,      // Weekly
   tf_mn1 = PERIOD_MN1,     // Monthly
   tf_n1  = -1,             // First higher time frame
   tf_n2  = -2,             // Second higher time frame
   tf_n3  = -3              // Third higher time frame
};

extern enTimeFrames    TimeFrame          = tf_cu;
extern double          BoxSize            = 6.5;//300;//34
extern bool            alertsOn           = true;            // Turn alerts on?
extern bool            alertsOnCurrent    = true;             // Alerts on current (still opened) bar?
extern bool            alertsMessage      = true;             // Alerts should show pop-up message?
extern bool            alertsPushNotif    = false;            // Alerts should send push notification?
extern bool            alertsSound        = false;            // Alerts should play a sound?
extern bool            alertsEmail        = false;            // Alerts should send email?
extern bool            arrowsVisible      = true;            // Arrows visible?
extern bool            arrowsOnNewest     = true;//false;            // Arrows drawn on newest bar of higher time frame bar?
extern string          arrowsIdentifier   = "xo Arrows1";     // Unique ID for arrows
extern double          arrowsUpperGap     = 0.1;              // Upper arrow gap
extern double          arrowsLowerGap     = 0.1;              // Lower arrow gap
extern color           arrowsUpColor      = Blue;   // Up arrow color
extern color           arrowsDnColor      = Crimson; // Down arrow color
extern int             arrowsUpCode       = 116;              // Up arrow code
extern int             arrowsDnCode       = 116;              // Down arrow code
extern bool            showHigherTimeFrameCurrentBarLine = true;
extern string          lineID             = "XO vertline";
extern color           lineColor          = clrDimGray;
extern ENUM_LINE_STYLE lineStyle          = STYLE_DOT;
extern int             lineWidth          = 0;
extern bool            ShowBars           = true;
extern color           ColorUp            = clrDeepSkyBlue;
extern color           ColorDown          = clrPaleVioletRed;
extern string          ColorUniqueID      = "XO color bars";
extern int             ColorWidth         = 2;
extern int             ColorBars          = 500;
extern int             widthWick          = 0;
extern int             widthBody          = 2;

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
//
//
//
//
//

int start()
{
   int counted_bars=IndicatorCounted();
      if(counted_bars<0) return(-1);
      if(counted_bars>0) counted_bars--;
         int limit = MathMin(Bars-counted_bars,Bars-1); count = limit;
        
   //
   //
   //
   //
   //
    
   if (TimeFrame == _Period)
   {
      int cb = ColorBars; if (ColorBars==0) cb = Bars-1; cb = MathMin(Bars-1,cb);
      double pipModifier = 1; if (Digits==3 || Digits==5) pipModifier=10;
      for(int i=limit; i>=0; i--)
      {         
         if (i>=(Bars-2)) { Hi[i+1]=Close; Lo[i+1]=Close; continue; }

         //
         //
         //
         //
         //
      
         double cur = Close;
         Hi    = Hi[i+1];
         Lo    = Lo[i+1];
         no    = no[i+1];
         kr    = kr[i+1];
         trend = trend[i+1];

            if (cur > (Hi+BoxSize*pipModifier*Point)) { Hi = cur; Lo = cur-BoxSize*pipModifier*Point; kr = 1; no = 0; trend= 1;}
            if (cur < (Lo-BoxSize*pipModifier*Point)) { Lo = cur; Hi = cur+BoxSize*pipModifier*Point; no = 1; kr = 0; trend=-1;}
              
               //
               //
               //
               //
               //
              
               if (arrowsVisible)
               {
                  string lookFor = arrowsIdentifier+":"+(string)Time; ObjectDelete(lookFor);           
                     if (trend != trend[i+1])
                     {
                        if (trend == 1) drawArrow(i,arrowsUpColor,arrowsUpCode,false);
                        if (trend ==-1) drawArrow(i,arrowsDnColor,arrowsDnCode, true);
                     }
               }
              
               //
               //
               //
               //
               //
              
               if (ShowBars && cb>=i)
               {
                 if (trend==-1)
                       drawBar(Time,High,Low,Open,Close,ColorDown,ColorDown);
                 else  drawBar(Time,High,Low,Open,Close,ColorUp,ColorUp);
               }                     
      }
      
      //
      //
      //
      //
      //
      
      if (alertsOn)
      {
        if (alertsOnCurrent)
             int whichBar = 0;
        else     whichBar = 1;
        if (trend != trend[whichBar+1])
        {
           if (trend == 1) doAlert(whichBar,"up");
           if (trend ==-1) doAlert(whichBar,"down");
        }         
      }
      return(0);
   }
  
   //
   //
   //
   //
   //
  
   limit = MathMax(limit,MathMin(Bars,_mtfCall(5,0)*TimeFrame/_Period));
   cb = ColorBars; if (ColorBars==0) cb = Bars-1; cb = MathMin(Bars-1,cb*TimeFrame/Period());
   for (i=limit;i>=0;i--)
   {
      int y = iBarShift(NULL,TimeFrame,Time);
         kr    = _mtfCall(0,y);
         no    = _mtfCall(1,y);
         trend = _mtfCall(4,y);
      
         if (trend==-1)
               drawBar(Time,High,Low,Open,Close,ColorDown,ColorDown);
         else  drawBar(Time,High,Low,Open,Close,ColorUp,ColorUp);
   }
   if (showHigherTimeFrameCurrentBarLine)
   {
      ObjectCreate(lineID,OBJ_VLINE,0,0,0);
         ObjectSet(lineID,OBJPROP_TIME1,iTime(NULL,TimeFrame,0));
         ObjectSet(lineID,OBJPROP_COLOR,lineColor);
         ObjectSet(lineID,OBJPROP_STYLE,lineStyle);
         ObjectSet(lineID,OBJPROP_WIDTH,lineWidth);
   }
return(0);         
}

}
```

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

---

Следующая страница: https://forexsystemru.com/threads/77111/page-1051
