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

Раздел: Язык программирования MQL4
Автор темы: machzelet
Создана: 2010-02-26 20:00
Ответов: 12060 | Просмотров: 1843395
Страница 183 из 604
Источник: https://forexsystemru.com/threads/61956/page-183

---

## teapeak — 2013-01-02 23:07

> Цитата (eevviill):
> 1) Мог бы попробовать, но надо дэкомпилировать.
> 2) Это интересный индикатор по прайс экшену. Попробуй ещё этот(увеличь сенсетив).

рисуэт ПБФ индюк? Какоэ настройки рекомендуэс для М1?

## Ермек — 2013-01-02 23:44

Уважаемые ! Можете сказать что за индюки на сриншоте ?? Есть у кого они ?? Особенно нужен верхний рисующий красный и зеленые линии !!

## eevviill — 2013-01-03 11:42

> Цитата (oleglt):
> дождался таки Вас евил )) Прошу помощи с индюком - начальное сообщение тут http://forexsystemsru.com/541322-post3411.html
>
> спс

Вообще ничего не понял. Картинку нарисуй.

## eevviill — 2013-01-03 11:43

> Цитата (teapeak):
> рисуэт ПБФ индюк? Какоэ настройки рекомендуэс для М1?

Уже спрашивали. Дэфолтные.

## eevviill — 2013-01-03 12:48

> Цитата (Vip_di):
> Прошу вылечить индикатор от перерисовки, так чтобы у него вообще не было никакого желания рисовать.
>
> P.S. РИСУЕТ РОВНО 2 БАРА.

Перерисовку не убрал, но теперь его можно зжать.
Там всередине МА. Рекомендую например от THV или от Pallada взять индикатор похожий. Там намного лучше.

## Regwall — 2013-01-03 12:55

> Цитата (Ермек):
> Уважаемые ! Можете сказать что за индюки на сриншоте ?? Есть у кого они ?? Особенно нужен верхний рисующий красный и зеленые линии !!

Пользуй...

## Валютный Щипач. — 2013-01-03 12:55

**Глючит сова!**

Помогите найти проблему в роботе! У него идет повышение лота, с открытием встречной сделки!  Но иногда он открывает не по умножителю!
И нет определенного растояния, когда открывать ордер.

Вот ниже ссылка на обсуждение совы! в соседней ветке!

[http://forexsystemsru.com/sovetniki/70497-sovetnik-rich-1x2-lot.html#post552275](http://forexsystemsru.com/sovetniki/70497-sovetnik-rich-1x2-lot.html#post552275)

## eevviill — 2013-01-03 12:56

> Цитата (AleksanderQ2012):
> Поздравляю всех с Новым годом!
> Меня интересует индикатор T3MA-ALARM.
> Он не обновляет свои сигналы, т.е. появляется стрелка в одну сторону - движение по сигналу, на незначительном откате появляется противоположный сигнал, и цена разворачивается в сторону первого сигнала. При этом, новый сигнал не появляется (видимо, по своей логике, индикатор запомнил наличие первого сигнала), а предыдущий не удаляется.
> Можно подправить индикатор, чтобы он обновлял сигналы на каждом баре?
> Индикатор, на всякий случай прикладываю.
> P.S. Обновляет сигналы через свойства и Ok.

По моему он всё хорошо рисует. Попробуй с параметром period поигратся.

## teapeak — 2013-01-03 13:13

Уважаемые, mожете сказать что проблема с етим индюком? Кагда я настройим MA шифт функциу он чудесне рисуэт как на картинке. помогите исправит етую ошибку. Спосибо.

## eevviill — 2013-01-03 13:20

> Цитата (Валютный Щипач.):
> ...У него идет повышение лота, с открытием встречной сделки!  Но иногда он открывает не по умножителю!
> И нет определенного растояния, когда открывать ордер.
> ...

1)Сделал.
2)По моему turn отвечает за растояние.

## eevviill — 2013-01-03 13:26

> Цитата (teapeak):
> Уважаемые, mожете сказать что проблема с етим индюком? Кагда я настройим MA шифт функциу он чудесне рисуэт как на картинке. помогите исправит етую ошибку. Спосибо.

Это не ошибка. Поставь простую МА на график с таким сдвигом и увидешь. -3 значит что на последних 3 барах нету МА вообще. Если +3 то МА будет на 3 несуществующих барах.

## Ванька Пряников — 2013-01-03 17:45

Уважаемые программисты! Возможно ли сделать сову - "трал" так ,чтобы тейк профит она выставляла по индикатору "Ганн сел " но с поправкой в 
минус 10 пунктов.

## AleksanderQ2012 — 2013-01-03 22:12

**Прошу подправить индикатор.**

> Цитата (eevviill):
> По моему он всё хорошо рисует. Попробуй с параметром period поигратся.

Проблема осталась. Индикатор не обновляет свои сигналы.

## oleglt — 2013-01-03 23:39

> Цитата (eevviill):
> Вообще ничего не понял. Картинку нарисуй.

так там и картинка была... ток почему то не загрузилась. Описываю все сначала.

В настоящиймомент индюк рисует стрелки в правом углу если МА или RSI дают сигнал (соотв. UP или DOWN). Никак не удается сделать так, чтобы когда обе стрелки показывали одно направление, на графике, на текущем баре также нарисовалась стрелка в том направлении (как бы сигнал для входа).
Пример:
[[изображение: http://i53.fastpic.ru/thumb/2013/0103/1b/2d1f4d23634f303fa407e7a50e489e1b.jpeg]](http://fastpic.ru/view/53/2013/0103/2d1f4d23634f303fa407e7a50e489e1b.jpg.html)

Индюк ломанный, но мне бы хотябы нарисовку стрелок для начала сделать,a дальше сам попробую разобраться... Сзаранее спасибо за помощь.

## HeadbaY — 2013-01-04 14:58

Требуется помощь. Имеется сова, она открывает ордера если значение индюка больше/либо равно выставленному значению в настройках. Так мне требуется что бы она открывала ордера если значения только равны.
Как я понял это описано в данном блоке >>>

double Price1 = (iClose(Symbol_1,0,0) - iClose(Symbol_1,0,i)) / MarketInfo(Symbol_1, MODE_POINT);
   double Price2 = K*(iClose(Symbol_2,0,0) - iClose(Symbol_2,0,i)) / MarketInfo(Symbol_2, MODE_POINT);
   double Spread = Price1 - Price2;
   //----------------------------------------------------------------   
   if (Terminal()==0) lot = Lot;
   //---------------------------------------------------------------- 
   bool   Sig_Buy    = MathAbs(Spread) >= Delta+Step*Mas_Tip_Symb1 && Spread < 0 && Mas_Tip_Symb1<=Count;
   bool   Sig_Sell   = MathAbs(Spread) >= Delta+Step*Mas_Tip_Symb1 && Spread > 0 && Mas_Tip_Symb1<=Count;
   //---------------------------------------------------------------- 
   if(Spread < 0) 
      {
       Text_1 = Symbol_1+" Buy ";
       if(Revers)Text_2 = Symbol_2+" Buy ";
       else Text_2 = Symbol_2+" Sell ";
      }
   if(Spread > 0) 
      {
       Text_1 = Symbol_1+" Sell ";
       if(Revers)Text_2 = Symbol_2+" Sell ";
       else Text_2 = Symbol_2+" Buy ";
      }
   if((Mas_Tip_Symb1+Mas_Tip_Symb1)==0) Text_3 = "0"; else Text_3 = (Mas_Tip_Symb1+Mas_Tip_Symb1) - 1;
   if(OpenPair) Text_4 = "разрешена";    else Text_4 = "запрещена";
   //---------------------------------------------------------------- 

или в этом >>>

   // Open
   //-------------------------------------------------------------------- 
   if(Step<=0 && Terminal()!=0)return(0);
   if(Sig_Sell)                                    // Sell
     {
      if(Revers) 
         {
          OPENORDER (Symbol_1, lot, "Sell");
          OPENORDER (Symbol_2, lot, "Sell");
         }
      else 
         {
          OPENORDER (Symbol_1, lot, "Sell");
          OPENORDER (Symbol_2, lot, "Buy");
         }  
      CountLots();       
     }
   if(Sig_Buy)                                     // Buy
     {
      if(Revers) 
         {
          OPENORDER (Symbol_1, lot, "Buy");
          OPENORDER (Symbol_2, lot, "Buy");
         }
      else 
         {
          OPENORDER (Symbol_1, lot, "Buy");
          OPENORDER (Symbol_2, lot, "Sell");
         }
      CountLots(); 
     }   
   //--------------------------------------------------------------------   
return(0);
}
// END

Подскажите что требуется поменять/дописать ?
Сама сова><

## Norman Lito — 2013-01-04 15:16

Доброго дня коллеги, есть вот такой индик профиля:

На данный момент в нем выбирается тф D W или M. Можно ли добавить возможность выбора H1 H4. Заранее благодарю.

## alexshell — 2013-01-04 15:22

> Цитата (HeadbaY):
> Требуется помощь. Имеется сова, она открывает ордера если значение индюка больше/либо равно выставленному значению в настройках. Так мне требуется что бы она открывала ордера если значения только равны.
> Как я понял это описано в данном блоке >>>
> 
> double Price1 = (iClose(Symbol_1,0,0) - iClose(Symbol_1,0,i)) / MarketInfo(Symbol_1, MODE_POINT);
>    double Price2 = K*(iClose(Symbol_2,0,0) - iClose(Symbol_2,0,i)) / MarketInfo(Symbol_2, MODE_POINT);
>    double Spread = Price1 - Price2;
>    //----------------------------------------------------------------
>    if (Terminal()==0) lot = Lot;
>    //----------------------------------------------------------------
>    bool   Sig_Buy    = MathAbs(Spread) >= Delta+Step*Mas_Tip_Symb1 && Spread < 0 && Mas_Tip_Symb1<=Count;
>    bool   Sig_Sell   = MathAbs(Spread) >= Delta+Step*Mas_Tip_Symb1 && Spread > 0 && Mas_Tip_Symb1<=Count;
>    //----------------------------------------------------------------
>    if(Spread < 0)
>       {
>        Text_1 = Symbol_1+" Buy ";
>        if(Revers)Text_2 = Symbol_2+" Buy ";
>        else Text_2 = Symbol_2+" Sell ";
>       }
>    if(Spread > 0)
>       {
>        Text_1 = Symbol_1+" Sell ";
>        if(Revers)Text_2 = Symbol_2+" Sell ";
>        else Text_2 = Symbol_2+" Buy ";
>       }
>    if((Mas_Tip_Symb1+Mas_Tip_Symb1)==0) Text_3 = "0"; else Text_3 = (Mas_Tip_Symb1+Mas_Tip_Symb1) - 1;
>    if(OpenPair) Text_4 = "разрешена";    else Text_4 = "запрещена";
>    //----------------------------------------------------------------
> 
> или в этом >>>
> 
>    // Open
>    //--------------------------------------------------------------------
>    if(Step<=0 && Terminal()!=0)return(0);
>    if(Sig_Sell)                                    // Sell
>      {
>       if(Revers)
>          {
>           OPENORDER (Symbol_1, lot, "Sell");
>           OPENORDER (Symbol_2, lot, "Sell");
>          }
>       else
>          {
>           OPENORDER (Symbol_1, lot, "Sell");
>           OPENORDER (Symbol_2, lot, "Buy");
>          }
>       CountLots();
>      }
>    if(Sig_Buy)                                     // Buy
>      {
>       if(Revers)
>          {
>           OPENORDER (Symbol_1, lot, "Buy");
>           OPENORDER (Symbol_2, lot, "Buy");
>          }
>       else
>          {
>           OPENORDER (Symbol_1, lot, "Buy");
>           OPENORDER (Symbol_2, lot, "Sell");
>          }
>       CountLots();
>      }
>    //--------------------------------------------------------------------
> return(0);
> }
> // END
> 
> Подскажите что требуется поменять/дописать ?
> Сама сова><

>= выделил красным замени на ==

## HeadbaY — 2013-01-04 16:20

> Цитата (alexshell):
> >= выделил красным замени на ==

Большое спасибо.
Поменял, но вылезла другая проблема. Индюк может и не показать 50(которые выставили в настройках для входа) к примеру ровно, а может 48 и следом 53 и сова соответственно ничего не откроет(так как 50 и не было) :-(
Как добавить проскальзывание(если это вообще можно прикрутить к значению индюка) или диапазон к примеру +-10 пунктов к значению выставленному в настройках?

## fxfxfxfx — 2013-01-04 17:17

если возможно с этими переменными написать простенькую сову из 2 индикаторов 

extern bool ReverseSignal- Переворачивать сигнал стратегии. 
extern int Magic=777;                     // Магический номер
extern int StopLoss=0;                    // Стоплосс, 0 - не используется
extern int TakeProfit=0;                  // Тейкпрофит , 0 - не используется
extern int Slippage=0;                    // Проскальзывание
extern bool MarketWatch=false;            // Режим торговли по MarketWatch true  = сначала выставляются позиции/ордера без стопов, потом происходит модификация - для некоторых брокеров
extern bool ClosePosifChange=true;        // Закрывать позиции при обратном сигнале
extern double Lots=0.1;                   // Фиксирвоанный лот 
extern bool DynamicLot=false;             // Динамический лот
extern double LotBalancePcnt=20;          // % от депозита
extern double MinLot = 0.1;               // Минимальный лот при расчете
extern double MaxLot = 5;                 // Максимальный лот при расчете
extern double Martin=1; // Если 1 то не используется, Коэффициент мартина на следующую сделку после убытончой

необязательно
extern string timetrade_="Настройки времени торговли";
extern int OpenHour=0;                    // Час открытия торгов
extern int OpenMinute=0;                  // Минута открытия торгов
extern int CloseHour=23;                  // Час закрытия торгов
extern int CloseMinute=59;                // Минута закрытия торгов
входы на скрине
спасибо заранее
замной настройки

## alexshell — 2013-01-04 17:59

> Цитата (HeadbaY):
> Большое спасибо.
> Поменял, но вылезла другая проблема. Индюк может и не показать 50(которые выставили в настройках для входа) к примеру ровно, а может 48 и следом 53 и сова соответственно ничего не откроет(так как 50 и не было) :-(
> Как добавить проскальзывание(если это вообще можно прикрутить к значению индюка) или диапазон к примеру +-10 пунктов к значению выставленному в настройках?

Добавь в настроиках еще один диапазон. В одном задашь допустим 48 в другом 52.  А в условиях  сравнение  . условие>=диапозон1&&условие<=диапозон2. Надеюсь разберешься. Если что завтра помогу. Сейчас компа под рукой нет.

---

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