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

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

---

## vladradon — 2019-12-10 22:54

> Цитата (блондинка):
> что то не так с исходным файлом,причём конкретно не так)

Он требует вставочный файл tmplib1.mqh.

## OSS_5 — 2019-12-11 06:58

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

## FxMen — 2019-12-11 17:04

Может есть укого рабочая версия проги?
Программа FX News Alert - новостной календарь для Форекс. Или кто сможет реанимировать её.

## AlexeNP — 2019-12-11 17:22

> Цитата (FxMen):
> Может есть укого рабочая версия проги?
> Программа FX News Alert - новостной календарь для Форекс. Или кто сможет реанимировать её.

эта прога уже лет этак как не поддерживается...
а чем вас этот календарь не устраивает?

## panand — 2019-12-11 19:36

подскажите мне, не понятному ,почему не открывает позицию , притом 2 раза ,когда кривая линия индикатора пересекла линию уровня
что не так?

> Цитата:
> //+------------------------------------------------------------------+
> void OpenPos()
>   {
> double wepr1=iCustom(NULL,0,IndName,WprPeriod,Lag,NumberOfComputations,Price,2,Shift+0);
> double wepr2=iCustom(NULL,0,IndName,WprPeriod,Lag,NumberOfComputations,Price,2,Shift+1);
>
>    if(wepr1>+openLevel&&wepr2<+openLevel) PutOrder(0,Ask);
>    if(wepr1<-openLevel&&wepr2>-openLevel) PutOrder(1,Bid);
>   }                                                              |
> //+------------------------------------------------------------------+
> void ClosePos()
>   {
>   double wepr3=iCustom(NULL,0,IndName,WprPeriod,Lag,NumberOfComputations,Price,2,Shift+0);
>   double wepr4=iCustom(NULL,0,IndName,WprPeriod,Lag,NumberOfComputations,Price,2,Shift+1);
>
>    if(wepr3<0&&wepr4>0) CloseAll(0);
>    if(wepr3>0&&wepr4<0) CloseAll(1);
>   }
> //+------------------------------------------------------------------+

## AlexeNP — 2019-12-11 19:49

> Цитата (panand):
> подскажите мне, не понятному ,почему не открывает позицию , притом 2 раза ,когда кривая линия индикатора пересекла линию уровня
> что не так?

```
//+------------------------------------------------------------------+
void OpenPos()
{
double wepr1=iCustom(NULL,0,IndName,WprPeriod,Lag,NumberOfComputations,Price,2,Shift+0);
double wepr2=iCustom(NULL,0,IndName,WprPeriod,Lag,NumberOfComputations,Price,2,Shift+1);

if(wepr1>MathAbs(openLevel) && wepr2<MathAbs(openLevel)) PutOrder(0,Ask);
if(wepr1<-1*MathAbs(openLevel) && wepr2>-1*MathAbs(openLevel)) PutOrder(1,Bid);
}
```

а так?

## panand — 2019-12-11 19:52

> Цитата (AlexeNP):
> 
```
//+------------------------------------------------------------------+
> void OpenPos()
> {
> double wepr1=iCustom(NULL,0,IndName,WprPeriod,Lag,NumberOfComputations,Price,2,Shift+0);
> double wepr2=iCustom(NULL,0,IndName,WprPeriod,Lag,NumberOfComputations,Price,2,Shift+1);
>
> if(wepr1>MathAbs(openLevel) && wepr2<MathAbs(openLevel)) PutOrder(0,Ask);
> if(wepr1<-1*MathAbs(openLevel) && wepr2>-1*MathAbs(openLevel)) PutOrder(1,Bid);
> }
```

> а так?

спасибо! проверю,отпишусь Вам.
для ClosePos() без изменений или  MathAbs(0)  ?

## OSS_5 — 2019-12-12 02:46

> Цитата (OSS_5):
> Привет всем.
> Доработайте пожалуйста индикатор, продлив отрисовку всех зон на 3 бара вперед. На скрине выделил белым.

Уже не актуально, спасибо пытавшимся помочь.

## SHEPA — 2019-12-12 08:05

Ребят помогите плиз добавить в трейлинг звуковые файлы для пары EURUSD и GBPUSD (для продаж и покупок) при переносе стопа в безубыток... буду очень благодарен... А для остальных пар я уже сам допишу :) просто не знаю как написать.... нигде примера нет :c и можно ещё добавить, просто стоплосс в этот трал? то есть после открытия ордера чтоб стоплосс он ещё ставил...

## AlexeNP — 2019-12-12 08:22

> Цитата (panand):
> спасибо! проверю,отпишусь Вам.
> для ClosePos() без изменений или  MathAbs(0)  ?

насколько я понимаю - в ClosePos() там с нулем сравнивается, поэтому оставляем как есть)

## AlexeNP — 2019-12-12 09:06

> Цитата (SHEPA):
> Ребят помогите плиз добавить в трейлинг звуковые файлы для пары EURUSD и GBPUSD (для продаж и покупок) при переносе стопа в безубыток... буду очень благодарен... А для остальных пар я уже сам допишу :) просто не знаю как написать.... нигде примера нет :c и можно ещё добавить, просто стоплосс в этот трал? то есть после открытия ордера чтоб стоплосс он ещё ставил...

по поводу установки стоплосса после открытия ордера - так это проще сделать сразу после открытия ордера
по поводу музыки при безубытке - на скорую руку можно сделать так:
  if (OrderType()==OP_BUY) {
    pBid = MarketInfo(OrderSymbol(), MODE_BID);
    if (!ProfitTrailing || (pBid-OrderOpenPrice())>TrailingStop*pp) {
    double oldSL=OrderStopLoss(),newSL=pBid-TrailingStop*pp;
      if (oldSL<pBid-(TrailingStop+TrailingStep-1)*pp) {
        ModifyStopLoss(newSL);
        if(oldSL<OrderOpenPrice() && newSL>OrderOpenPrice())
        PlaySound(bezubytok);
        return;
      }
    }
  }

## SHEPA — 2019-12-12 11:07

> Цитата (AlexeNP):
> по поводу установки стоплосса после открытия ордера - так это проще сделать сразу после открытия ордера
> по поводу музыки при безубытке - на скорую руку можно сделать так:
>   if (OrderType()==OP_BUY) {
>     pBid = MarketInfo(OrderSymbol(), MODE_BID);
>     if (!ProfitTrailing || (pBid-OrderOpenPrice())>TrailingStop*pp) {
>     double oldSL=OrderStopLoss(),newSL=pBid-TrailingStop*pp;
>       if (oldSL<pBid-(TrailingStop+TrailingStep-1)*pp) {
>         ModifyStopLoss(newSL);
>         if(oldSL<OrderOpenPrice() && newSL>OrderOpenPrice())
>         PlaySound(bezubytok);
>         return;
>       }
>     }
>   }

А как добавить звук к определенной валютной паре?) к примеру к EURUSD?) безубыток к продажам и покупкам...

## AlexeNP — 2019-12-12 11:28

> Цитата (SHEPA):
> А как добавить звук к определенной валютной паре?) к примеру к EURUSD?) безубыток к продажам и покупкам...

ну, тут уже открывается простор для фантазии)))
если нам нужно чтобы звучал безубыток строго для EURUSD, то делаем так
if (OrderType()==OP_BUY) {
pBid = MarketInfo(OrderSymbol(), MODE_BID);
if (!ProfitTrailing || (pBid-OrderOpenPrice())>TrailingStop*pp) {
double oldSL=OrderStopLoss(),newSL=pBid-TrailingStop*pp;
if (oldSL<pBid-(TrailingStop+TrailingStep-1)*pp) {
ModifyStopLoss(newSL);
if(OrderSymbol()=="EURUSD" && oldSL<OrderOpenPrice() && newSL>OrderOpenPrice())
PlaySound(bezubytok);
return;
}
}
} 
если же мы хотим чтобы у каждой валютной пары был строго свой звук, то сделаем так...
сначала делаем звуковые файлы с названиями типа EURUSDzvuk.wav
потом при инициализации советника переменной bezubytok присваиваем имя bezubytok=Symbol()+zvuk;

маленький совет: пора уже использовать более интересные функции... к примеру 
MarketInfo(OrderSymbol(), MODE_BID) = SymbolInfoDouble(OrderSymbol(),SYMBOL_BID)
MarketInfo(OrderSymbol(), MODE_POINT) = SymbolInfoDouble(OrderSymbol(),SYMBOL_POINT)

## SHEPA — 2019-12-12 11:37

> Цитата (AlexeNP):
> ну, тут уже открывается простор для фантазии)))
> если нам нужно чтобы звучал безубыток строго для EURUSD, то делаем так
> if (OrderType()==OP_BUY) {
> pBid = MarketInfo(OrderSymbol(), MODE_BID);
> if (!ProfitTrailing || (pBid-OrderOpenPrice())>TrailingStop*pp) {
> double oldSL=OrderStopLoss(),newSL=pBid-TrailingStop*pp;
> if (oldSL<pBid-(TrailingStop+TrailingStep-1)*pp) {
> ModifyStopLoss(newSL);
> if(OrderSymbol()=="EURUSD" && oldSL<OrderOpenPrice() && newSL>OrderOpenPrice())
> PlaySound(bezubytok);
> return;
> }
> }
> }
> если же мы хотим чтобы у каждой валютной пары был строго свой звук, то сделаем так...
> сначала делаем звуковые файлы с названиями типа EURUSDzvuk.wav
> потом при инициализации советника переменной bezubytok присваиваем имя bezubytok=Symbol()+zvuk;
>
> маленький совет: пора уже использовать более интересные функции... к примеру
> MarketInfo(OrderSymbol(), MODE_BID) = SymbolInfoDouble(OrderSymbol(),SYMBOL_BID)
> MarketInfo(OrderSymbol(), MODE_POINT) = SymbolInfoDouble(OrderSymbol(),SYMBOL_POINT)

Спасибо) попробую сделать) надеюсь, получится)

## Slava78 — 2019-12-12 15:36

Уважаемые прогеры, нужна помощь. Сделайте советнику закрытие всех ордеров по профиту или убытку(можно в процентах от депо) 
Описание совы: открывает две сделки, потом закрывает по профиту одну и добавляет еще две и теперь нужно какое-то усреднение трех ордеров!!!

## vladradon — 2019-12-12 17:47

> Цитата (Slava78):
> Сделайте советнику закрытие всех ордеров по профиту или убытку(можно в процентах от депо)

Если ClosePercent=true - профит и просадка задается в процентах от баланса, если false - в единицах счета. 
CloseEquity=true -закрытие по достижении профита или убытка по состоянию эквити - запоминается целевое значение того и другого при отсутствии ордеров. Короче разберешься. Не проверял, но все должно работать.:)

## garry119 — 2019-12-12 17:53

всем привет.
уважаемые специалисты, сделайте, пожалуйста, t3 zero lag tema

## Slava78 — 2019-12-12 18:45

> Цитата (vladradon):
> Если ClosePercent=true - профит и просадка задается в процентах от баланса, если false - в единицах счета.
> CloseEquity=true -закрытие по достижении профита или убытка по состоянию эквити - запоминается целевое значение того и другого при отсутствии ордеров. Короче разберешься. Не проверял, но все должно работать.:)

Спасибо, будем тестить.

## ecurrencyteam — 2019-12-12 19:36

[QUOTE = "mobidik, post: 1385976, member: 76734"]
:)
[/ QUOTE]
Hi sir please provide Open file

## mobidik — 2019-12-12 19:47

[QUOTE = "mobidik, post: 1385976, member: 76734"]
:)
[/ QUOTE]
Hi sir please provide Open file

Ссылку по точнее...

---

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