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

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

---

## Viktor73 — 2024-11-13 20:40

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

## MakarFX — 2024-11-13 20:53

> Цитата (Viktor73):
> нужна формула динамического расчета профита от лотности открытых ордеров и множителя. это же просто.

Здесь это не надо. Найдите первый пост и почитайте условия.

## Viktor73 — 2024-11-13 20:55

я слежу за Вашей беседой ! )))

## MakarFX — 2024-11-13 20:58

> Цитата (Viktor73):
> я слежу за Вашей беседой ! )))

Вот вся формула которая нужна

> Цитата (S.McDuck):
> (0.15+0.15)*50 получаем 15.00.

## MakarFX — 2024-11-13 21:00

> Цитата (S.McDuck):
> Я вручную открываю ордера, у советника нолевой мейджик.
> Советник ордера подхватывает.
> С индикатором долго ждать.

Слегка изменил процесс закрытия

## Viktor73 — 2024-11-13 21:03

> Цитата (MakarFX):
> Вот вся формула которая нужна

она и получается динамической, так как кол-во ордеров , соответственно лотность растет.

## MakarFX — 2024-11-13 21:09

> Цитата (Viktor73):
> она и получается динамической, так как кол-во ордеров , соответственно лотность растет.

Вы сами себе противоречите. Если Вы видели по какой формуле идет расчет, тогда что Вы предлагали?

> Цитата (Viktor73):
> нужна формула динамического расчета профита от лотности открытых ордеров и множителя

## MakarFX — 2024-11-13 21:20

> Цитата (S.McDuck):
> Я вручную открываю ордера, у советника нолевой мейджик.
> Советник ордера подхватывает.
> С индикатором долго ждать.

Открыл в разные стороны - все работает.

## S.McDuck — 2024-11-13 21:23

> Цитата (MakarFX):
> Слегка изменил процесс закрытия

Судя по скрину так и должно быть.
Проверяю, цена на месте стоит.
Потом отпишусь.

## Kent175 — 2024-11-13 22:16

> Цитата (MakarFX):
> Что поправить надо?

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

## fxover — 2024-11-13 22:17

Здравствуйте уважаемые программисты!
помогите пожалуйста...
Подправьте под последний билд!
Спасибо!

## Surem — 2024-11-13 22:56

Уважаемые, прошу обработать обычный таймер. Как на скрине, разница показывается (вычитание) там где стрелка рисуется это число. Час 10минут значит цифра будет над 10 минут потому что на 4 часа число больше. Вычитаем из большего меньшее и результат отображаем над 10 мин. Когда на разных ТФ оставшееся время свечи одинаковое, тут не считаем.

Надеюсь смог пояснить, уточняйте если что. Есть идея на основе наблюдений, если стабильно будет результат я надеюсь будет, расскажу как применить.  Это чтоб не считать, разгрузить голову.

## Kent175 — 2024-11-14 01:27

> Цитата (Kent175):
> Всем привет!
> Уважаемые кодеры, поправьте пожалуйста советник. Любитель модифицировать и закрывать чужие ордера по своему символу валютной пары.

Кто-нибудь из кодеров поможет и откликнется на мою просьбу?

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

## lori — 2024-11-14 04:07

> Цитата (Surem):
> Уважаемые, прошу обработать обычный таймер.

Приветствую. Поделитесь пожалуйста стрелочками на вашей картинке

## Viktor73 — 2024-11-14 06:32

> Цитата (Kent175):
> Кто-нибудь из кодеров поможет и откликнется на мою просьбу?
>
> Магик надо поправить.
> Он есть, но советник цепляет чужие выставленные ордера на валютной паре. на которой он установлен.
> Любитель модифицировать и закрывать чужие ордера по своему символу валютной пары

Попробуй

## Kent175 — 2024-11-14 07:10

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

Спасибо Viktor73, попробую,если что отпишу))

## MakarFX — 2024-11-14 10:03

> Цитата (Kent175):
> Магик поправить.
> Он есть, но советник цепляет чужие выставленные ордера , на котором симболе установлен.
> Любитель модифицировать и закрывать чужие ордера по своему символу валютной пары.

## MakarFX — 2024-11-14 10:11

> Цитата (fxover):
> Здравствуйте уважаемые программисты!
> помогите пожалуйста...
> Подправьте под последний билд!
> Спасибо!

## Kent175 — 2024-11-14 11:41

Спасибо MakarFX, буду проверять, если что, отпишу вам.

## S.McDuck — 2024-11-14 14:22

> Цитата (MakarFX):
> Слегка изменил процесс закрытия

MakarFX отлично всё отрабатывает.
Спасибо большое за труд.
Не хватает последнего штриха в этом советнике.
А именно функции стоп работы советника при закрытии серии ордеров по ТР.
Запустить советник возможно будет только если передёрнуть тамфрейм или вызвать свойства советника и закрыть.
Мне в одном советнике делали такую функцию.
Вот код, не знаю всё ли скопировал к этому относящееся.
Можно ли этот код вставить в советник.
Если необходимо посмотреть код полностью могу в личу советник прислать.
==============================
extern bool                Stop_Start=true;

datetime TimeStartEA;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
   firstBuy=false;
   firstSell=false;
   StopEA=false;
   TimeStartEA=TimeCurrent();
//   if(!Start_one_or_many)TimeStartEA=0;

   TimeStart=HourStart*60+MinuteStart;
   TimeStop=HourStop*60+MinuteStop;
//----
  // ObjectMakeLabel("myLogo",5,5,2);

   Set_TP_SL=true;

   return(0);
//--
 if(Stop_Start)
     {
      if(isProfLastPos(Symbol(),TimeStartEA,-1,magic))return(0);//StopEA=true;
     }
//--
  if(isProfLastPos(Symbol(),Time,OP_BUY,magic)){firstBuy=false;}
  if(isProfLastPos(Symbol(),Time,OP_SELL,magic))firstSell=false;
 if(use_percent_of_deposit) cfg_lot=GetLot();
      datetime _tim=TimeLocal();
      string _stim=TimeToString(_tim,TIME_MINUTES);
      StringReplace(_stim,":",".");
      double _dtim=StringToDouble(_stim);
      TimeSey4as=int(MathFloor(_dtim)*60+(_dtim-MathFloor(_dtim))*100);
      if(((TimeSey4as>TimeStart || TimeSey4as<TimeStop) && TimeStart>TimeStop) || ((TimeSey4as>TimeStart && TimeSey4as<TimeStop) && TimeStart<TimeStop) || TimeStart==TimeStop)
        {
         OpenOrder=true;
        }
      else
        {
         OpenOrder=false;
        }

      int spread=MarketInfo(Symbol(),MODE_SPREAD);
      if(spread>MaxSpread)OpenOrder=false;

      if(isLossLastPos(Symbol(),-1,kom,magic) && NumberOfPositions(Symbol(),kom,-1)==0)
         OpenOrder=true;

//+------------------------------------------------------------------+
bool isProfLastPos(string sy="",datetime t=0,int op=-1,int mn=-1)
  {

   int      i,j1=-1,k=OrdersHistoryTotal();

   if(sy=="0") sy=Symbol();
   for(i=0; i<k; i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
        {
         if(OrderSymbol()==sy || sy=="")
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL)
              {
               if(op<0 || OrderType()==op)
                 {
                  if(mn<0 || OrderMagicNumber()==mn)
                    {
                     if(t<OrderCloseTime())
                       {
                        t=OrderCloseTime();
                        j1=i;
                       }
                    }
                 }
              }
           }
        }
     }
   if(OrderSelect(j1,SELECT_BY_POS,MODE_HISTORY))
     {
      if(OrderProfit()>0) return(True);
     }
   return(False);
  }
//--

---

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