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

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

---

## ДЬЯВОЛ из АДА — 2017-05-28 00:18

> Цитата (Belizas):
> есть он у меня и настройки терминала по оповещению включены и микшер тоже включен

У Вас есть этот **.wav** ( расширение файла ) но **нет самих звуковых файлов alarm.wav, beep.wav и bang.wav в звуковой папке**. ( на скрине я их никак не вижу )
P.S.  Я имел  ввиду что это расширение надо обязательно указывать в коде в настройках
P.S. 2.      на скрине не видно этого расширения файла **.wav** только потому, что у Вас в Винде **отключён показ расширения файлов**

## sergeysv — 2017-05-28 00:30

> Цитата (Belizas):
> есть он у меня

:):):)

## Belizas — 2017-05-28 00:33

> Цитата (ДЬЯВОЛ из АДА):
> У Вас есть этот **.wav** ( расширение файла ) но **нет самих звуковых файлов alarm.wav, beep.wav и bang.wav в звуковой папке**. ( на скрине я их никак не вижу )
> P.S.  Я имел  ввиду что это расширение надо обязательно указывать в коде в настройках
> P.S. 2      на скрине не видно этого расширения файла **.wav** только потому, что у Вас в Винде **отключён показ расширения файлов**

Огромное спасибо всем, кто помогает мне, я сам ничего не понимаю, хотя не чайник

## ДЬЯВОЛ из АДА — 2017-05-28 00:34

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

Давно надо было поделиться, чтоб людей не мучать

## Belizas — 2017-05-28 00:34

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

вот тупица я))))) alarm и alert не отличил))))

## ДЬЯВОЛ из АДА — 2017-05-28 00:42

> Цитата (Belizas):
> я сам ничего не понимаю

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

## Belizas — 2017-05-28 00:44

да, я понял, он, как я понимаю уже прописан и в нужную папку все уложено)))) жду понедельника

## fs256 — 2017-05-28 18:11

> Цитата (islamilshatovich):
> Помогите,пожалуйста,с советником.Я просто 1ый раз делал,и к сожалению он не работает .
> Вот индикатор:
> Вот сам советник:
> Вот сам код:
> 
> //+------------------------------------------------------------------+
> //|                                             Moving average 2.mq4 |
> //|                        Copyright 2017, MetaQuotes Software Corp. |
> //|                                             mql5.com |
> //+------------------------------------------------------------------+
> #property copyright "Copyright 2017, MetaQuotes Software Corp."
> #property link      "mql5.com"
> #property version   "1.00"
> #property strict
>
> //--------------------------------------------
> extern double Lots     = 0.1;
> extern int  TakeProfit = 400;
> extern int  StopLoss    =500;
> extern int Magic        =111;
> extern int Slippage     =3;
> //--------------------------------------------
> extern string Moving   = "Параметры Индикатора";
> extern int  MAPeriod    =100;
> extern int  MAMethod    =0;
> extern int  MAPrice     =0;
> extern bool SoundAlert =true;
> //--------------------------------------------
> double PriceHight, PriceLow;
> int ticket;
>
>
>
> //+------------------------------------------------------------------+
> //| Expert initialization function                                   |
> //+------------------------------------------------------------------+
> int OnInit()
> {
>    if(Digits == 3 || Digits == 5)
>    {
>       TakeProfit *= 10;
>       StopLoss   *= 10;
>       Slippage   *= 10;
>    }
>    return(INIT_SUCCEEDED);
> }
> //+------------------------------------------------------------------+
> //| Expert deinitialization function                                 |
> //+------------------------------------------------------------------+
> void OnDeinit(const int reason)
> {
>
> }
> //+------------------------------------------------------------------+
> //| Expert tick function                                             |
> //+------------------------------------------------------------------+
> void OnTick()
>  {
>     PriceHigh = iCustom(NULL, 0,"pricema_cross_alert", MAPeriod, MAMethod, MAPrice, SoundAlert, 0, 0);
>     PriceLow = iCustom(NULL, 0,"pricema_cross_alert", MAPeriod, MAMethod, MAPrice, SoundAlert, 1, 0);
>
>     if(CountSell() == 0 && Bid >= PriceHigh)
>     {
>   ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "Moving ROBOT", Magic, 0, OrangeRed);
>   if (ticket >0)
>   {
>     SL =NormalizeDouble( Bid + StopLoss*Point, Digits );
>     TP =NormalizeDouble( Bid - TakeProfit*Point, Digits );
>     if (OrderSelect(ticket, SELECT_BY_TICKET))
>     if (OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))
>     Print("Ошибка Модификации ордера на продажу!");
>   }
>
>   if(CountBuy() == 0 && Ask <= PriceLow)
>     {
>   ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "Moving ROBOT", Magic, 0, DeepSkyBlue);
>   if (ticket >0)
>   {
>     TP =NormalizeDouble( Ask + TakeProfit*Point, Digits );
>     SL =NormalizeDouble( Ask - StopLoss*Point, Digits );
>     if (OrderSelect(ticket, SELECT_BY_TICKET))
>     if (OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))
>     Print("Ошибка Модификации Ордера на покупку!");
>   }
>
> }
>    if (Ask <= PriceLow && CountSell () >0)
>    {
>        for(int i= OrdersTotal() -1; i>=0; i--)
>        {
>          if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
>          {
>             if(OrderMagicNumber() == Magic && OrderType() == OP_SELL)
>             OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, Black);
>
>          }
>        }
>    }
>    if (Bid >= PriceHight && CountBuy () >0)
>    {
>        for(int i= OrdersTotal() -1; i>=0; i--)
>        {
>          if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
>          {
>             if(OrderMagicNumber() == Magic && OrderType() == OP_BUY)
>             OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Black);
>
>          }
>        }
>    }
> }
> //+------------------------------------------------------------------+
> int CountSell()
> {
>    int count = 0;
>
>    fot(int trade = OrdersTotal ()-1; trade>=0; trade--)
> {
>   if (OrderSelect(treade, SELECT_BY_POS, MODE_TRADES))
> {
>     if (OrderSymbol () == Symbol() && OrderMagicNumber == Magic && OrderType() == OP_SELL)
>     count++;
> }
>
> }
>   return(count);
> }
> //+------------------------------------------------------------------+
> int CountBuy()
> {
>    int count = 0;
>
>    fot(int trade = OrdersTotal ()-1; trade>=0; trade--)
> {
>   if (OrderSelect(treade, SELECT_BY_POS, MODE_TRADES))
> {
>     if (OrderSymbol () == Symbol() && OrderMagicNumber == Magic && OrderType() == OP_BUY)
>     count++;
> }
>
> }
>   return(count);
>
>
>
> //+----------------------------------------------------------------
> 
>
> Буду очень сильно благодарен если поможете.Огромное спасибо.

По машкам столько сов по сети - поищи.

## islamilshatovich — 2017-05-28 19:21

Большое спасибо

## oleg1343 — 2017-05-28 20:48

привет всем кто поможет переделать индикатор чтобы он стрелки на графике показывал в место подвального индикатора ???
заранее огромное спасибо!!!!

## islamilshatovich — 2017-05-28 21:55

**Помогите,пожалуйста,поправ ить советник.**

Здравствуйте,мне сегодня один из очень добрых форучан сделал советник на основе Moving Average , 
но он не корректно работает . Я поставил MAPERIOD 350 ,где за 5 дней было всего 3 пересечения,а он открыл сделок 20 вот скрин:

[изображение: https://charts.mql5.com/15/164/eurusd-m30-ifcmarkets-corp.png]

И + когда происходит новое пересечение - старый ордер не закрывается,а если 1ый ордер закрылся в плюс , почему то открывается еще 1 ордер в ту же самую сторону итд .Можете ,пожалуйста,посмотреть в чем проблема.Буду очень сильно благодарен.
Вот сам советник:
Либо у меня есть индикатор,который тоже основан на мувинге ,но только при пересечении MA с графиком выходит стрелка.По нему тоже можно сделать советник(если конечно не трудно).
Вот этот индикатор:  
Вот скрины ,как он выглядит при нас тройках 350:1:3 :

 [изображение: https://charts.mql5.com/15/164/eurusd-m30-ifcmarkets-corp-5.png]
 [изображение: https://charts.mql5.com/15/164/eurusd-m30-ifcmarkets-corp-4.png]

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

## Ugar — 2017-05-28 22:08

А что очень добрый форумчанин, написавший это не доводит до ума?
Я так понял советник написан только для проверки идеи в тестере. 
Кстати
if(Bid>iMA(NULL,0,MAPeriod,MAShift,MAMethod,MAPrice,0)) buy=true;
 if(Ask<iMA(NULL,0,MAPeriod,MAShift,MAMethod,MAPrice,0)) sell=true;
Эти условия не про пересечение МА, а про выше или ниже МА.

## islamilshatovich — 2017-05-28 22:14

А ты можешь,пожалуйста,поправить параметры этого советника ?

## luncharra — 2017-05-28 22:48

> Цитата (luncharra):
> Доброго времени суток!
> Скажите, можно к этому индикатору фракталов прикрутить алерт, но не при появлении стрелки, а по закрытию второго бара после стрелки (при подтверждении фрактала)? В идеале хорошо бы еще линию максимума второго бара после стрелки вниз и минимума второго бара после стрелки вверх.

Никто не знает, как мне помочь?

## AlanG — 2017-05-28 23:06

> Цитата (islamilshatovich):
> Вот сам советник:sov.ex4

нужен формат mq4
.ex4 - нельзя изменить

## incomeasset — 2017-05-29 01:08

Privet vot mojet tebe eto pomojet na seot indikatora pricema_cross_alert.ex4

stavi evo v etot EA i budet gatovii sovetnik

## islamilshatovich — 2017-05-29 10:32

Большое спасибо!

## sergeysv — 2017-05-29 10:40

**ДЬЯВОЛ из АДА**, СПАСИБО.

## AlenaS — 2017-05-29 12:31

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

## поручик — 2017-05-29 20:06

alertsOnCurrent     = false;

попробуй так

---

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