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

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

---

## MrGreen86 — 2014-09-05 16:26

> Цитата (Frolov):
> Уважаемый MrGreen86 , подскажите пожалуйста как можно в условие открытия ордера советника внести изменение чтобы он продолжал открывать ордера в том же направлении если сигнал от индикаторов не изменился. Допустим советник открыл ордер SELL, далее ордер закрылся по ТР и советник ждет нового сигнала , а я хочу чтобы после закрытия первого ордера советник открыт следующий ордер если сигнал остался прежним. если и этот ордер закрылся а сигнал остался прежним , то советник должен снова открыть ордер . Что можно дописать в код, чтобы можно было регулировать 1 сигнал = 1 ордер или 1 сигнал = неограниченное количество последовательно открытых ордеров

Я так понимаю сигнал у советника не постоянны а разовый (как при пересечении МА например). Варианта 2:
1. переделать сигнал так чтобы он отслеживал не пересечение (по примеру с МА) а положение МА отностиельно друг друга. например быстрая выше медленной - бай.
2. хранить сигнал во внешних переменных. 
логичней первое, так как если будет перезапуск советника - по второму варианту сигнал будет утерян.

## стасс — 2014-09-05 16:39

> Цитата (MrGreen86):
>

  
Спасибо большое. Помоги перевести этот индикатор в mql5 .

## trium — 2014-09-05 16:54

> Цитата (стасс):
> Спасибо большое. Помоги перевести этот индикатор в mql5 .

Он вроде рисует.....

## volodymyr67 — 2014-09-05 17:39

> Цитата (MrGreen86):
> отключите ММ (UseMM - false) и регулируйте настройку лота параметров min_lot

Здраствуйте!
И всёэе посмотрите пожалоста нехочет открывать с лотом 0.01 , а открывает только с 0.1

## gek — 2014-09-05 19:07

Ребята ,посмотрите пост 11657!

## arkan4 — 2014-09-05 19:42

Всем доброго дня и здравия.... Уважаемые умельцы прикрутите пожалуйста сюда такие же функции как в стандартном (пользовательском) RSI  или ряда других индикаторов--- а именно возможность установки по CLOSE, OPEN, HIGH, LOW, MEDIAN PRICE(HL/2). Если конечно это возможно...
Очень необходимо..(желательно в MQ4)///

## Frolov — 2014-09-05 20:45

> Цитата (volodymyr67):
> Здраствуйте!
> И всёэе посмотрите пожалоста нехочет открывать с лотом 0.01 , а открывает только с 0.1

Советник работает . У Вас наверное тип счета у которого минимальный лот 0,1 . Уточните у брокера какой минимальный лот на Вашем типе счета . Попробуйте руками открыть ордер с лотом 0,01

## Frolov — 2014-09-05 21:06

> Цитата (MrGreen86):
> Я так понимаю сигнал у советника не постоянны а разовый (как при пересечении МА например). Варианта 2:
> 1. переделать сигнал так чтобы он отслеживал не пересечение (по примеру с МА) а положение МА отностиельно друг друга. например быстрая выше медленной - бай.
> 2. хранить сигнал во внешних переменных.
> логичней первое, так как если будет перезапуск советника - по второму варианту сигнал будет утерян.

Спасибо за отклик. Вы ставили indicator02 (e) в советник 2Sides_v5.0c5_670_ , все отлично работает , открывается четко по сигналу . Вот как допустим этот советник переделать чтобы после сигнала на Н1 он открывал не один ордер , а открывался последовательно до появления нового сигнала ?

## Stearh — 2014-09-05 21:15

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

## zhserg — 2014-09-05 22:24

> Цитата (arkan4):
> Всем доброго дня и здравия.... Уважаемые умельцы прикрутите пожалуйста сюда такие же функции как в стандартном (пользовательском) RSI  или ряда других индикаторов--- а именно возможность установки по CLOSE, OPEN, HIGH, LOW, MEDIAN PRICE(HL/2). Если конечно это возможно...
> Очень необходимо..(желательно в MQ4)///

:)

## MrGreen86 — 2014-09-05 22:37

> Цитата (volodymyr67):
> Здраствуйте!
> И всёэе посмотрите пожалоста нехочет открывать с лотом 0.01 , а открывает только с 0.1

вы даете так много информации, что вам невозможно не помочь.
сарказм :D
что пишет? где пытаетесь его запустить?

## MrGreen86 — 2014-09-05 22:52

> Цитата (стасс):
> Спасибо большое. Помоги перевести этот индикатор в mql5 .

только платно. в ЛС или на почту Nikolay.keep@yandex.ru
хотя может кто здесь и возьмется.

## MrGreen86 — 2014-09-05 23:03

> Цитата (Frolov):
> Спасибо за отклик. Вы ставили indicator02 (e) в советник 2Sides_v5.0c5_670_ , все отлично работает , открывается четко по сигналу . Вот как допустим этот советник переделать чтобы после сигнала на Н1 он открывал не один ордер , а открывался последовательно до появления нового сигнала ?

в данном случае имеет смысл заменить функцию работы с сигналом indicator02. 
Вот как она выглядит после моей модификации:

```

bool indicator02(string SMode)
 {
   int buffer=0;
   if(SMode=="buy") buffer=2;
   if(SMode=="sell") buffer=3;
 
   double ind_value=iCustom(Symbol(),IndTime,"indicator02 (e)",SignalPeriod,ArrowPeriod,Skl_pips,false,false,buffer,1);
   if(ind_value>0) return(true);
 
  //-------------------------
  return(false);
 }

```

в функцию передается запрос на подтверждение сигнала "buy" или "sell".
Чтобы ничего не менять в основном коде, мы с начала найдем последнюю стрелку и запомним ее направление. А затем сравним последнюю стрелку с запросом. и если запрос и стрелка совпадают - вернем true, если не совпадают  -false.
вот как это должно выглядеть:

```
bool indicator02(string SMode)
 {
   // найдем последуюнюю стрелку
   int last_signal=-1; // 0 - бай, 1- селл
   // переберем бары с 1го по 999й в поисках стрелки
   for(int i02=1;i02<999;i02++) {
      // значение стрелки бай на этом баре
      double ind_value_buy=iCustom(Symbol(),IndTime,"indicator02 (e)",SignalPeriod,ArrowPeriod,Skl_pips,false,false,2,**i02**);
      // значение стрелки селл на этом баре
      double ind_value_sell=iCustom(Symbol(),IndTime,"indicator02 (e)",SignalPeriod,ArrowPeriod,Skl_pips,false,false,3,**i02**);
      // есть стрелка бай
      if(ind_value_buy>0) {
         last_signal=0; // запишем что последняя стрелка бай
         break; // прекратим перебирать бары
         }
      // есть стрелка селл
      if(ind_value_sell>0) {
         last_signal=1; // запишем что последняя стрелка селл
         break; // прекрастим перебирать бары
         }
      }
   // если запрос на бай, и стрелка бай - вернем true
   if(SMode=="buy" && last_signal==0) return(true);
   // если запрос на селл, и стрелка селл - вернем true
   if(SMode=="sell" && last_signal==1) return(true);
 
  //-------------------------
  // вернем false если последние 2 условия не выполнены
  return(false);
 }
```

## Frolov — 2014-09-06 01:31

в данном случае имеет смысл заменить функцию работы с сигналом indicator02. 
Вот как она выглядит после моей модификации:

Благодарю , работает нормально

## Stearh — 2014-09-06 01:47

Доброго времени уважаемые модернизаторы, у меня есть еще одна просьба, есть один пробойный советник, мне его в свое время доработали по моему ТЗ из какого то диструбтива, я его накидываю когда по моей стратегии появляется сигнал, он открывает стоп ордера в обе стороны а тейки ставяться по фибо уровням, есть перевод в безубыток, открытие стоп ордеров происходит в задаваемом коридоре времени, границы экстремумов этого коридора и являются сигналом для выставления отложек, проблема в том что не всегда выставляются стоп ордера когда подходит заданное время, оО :not-good:  Прошу разобраться в чем дело, и еще, не всегда удобно ждать время и надо чтобы стоп ордера стали именно в данный момент времени, посему прошу сделать переменную, ну например distanse, и если задать ей параметр, то будут выставляться стоп ордера сразу на расстоянии заданного параметра от цены, а если параметр 0, то стоп ордера будут выставляться не сразу а по заданному времени... ну как то так, надеюсь я доступно объяснил. Надеюсь на вашу помощь. :please:

## arkan4 — 2014-09-06 10:20

zhserg... Мил человек спасибо большое....

## volodymyr67 — 2014-09-06 10:39

> Цитата (MrGreen86):
> вы даете так много информации, что вам невозможно не помочь.
> сарказм :D
> что пишет? где пытаетесь его запустить?

Да вы поставте в любой терминал и сами у видите что с лотом 0.01 неоткрывает

## стасс — 2014-09-06 17:35

Ребята помогите.

## ksardas — 2014-09-06 19:27

> Цитата (стасс):
> Ребята помогите.

Есть такой
;)

## Def Leppard — 2014-09-06 20:18

Всем добрый вечер!
 
Большая просьба, прописать в индикаторе функции чтобы работал на всех парах и таймфреймах. А то он настроен на пару EURUSD и время M15.

---

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