Напишу советник бесплатно - страница 172

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

Проверяете время открытия последней сделки, если оно >= заданного времени то можно открыть. Функцией приведенной ниже можно считать относительно минутных свечей, в итоге шаг времени будет одна минута и не зависит от выходных, перерывов в котировках и прочего.

MT5

//+------------------------------------------------------------------------------+
//|  Описание : Возвращает номер бара M1 открытия последней позиции или -1.      |
//+------------------------------------------------------------------------------+
//|  Параметры:                                                                  |
//|    sy - наименование инструмента   ("" или NULL - текущий символ)            |
//|    tf - таймфрейм                  (    0       - текущий таймфрейм)         |
//|    op - операция                   (   -1       - любая позиция)             |
//|    mn - MagicNumber                (   -1       - любой магик)               |
//+------------------------------------------------------------------------------+
int MinutsNumberOfBarOpenLastPos(string symb="0", ENUM_TIMEFRAMES tf=PERIOD_M1, int op=-1, int mn=-1)
  {
   datetime t=0;
   int      i, k=PositionsTotal();

   if(symb=="" || symb=="0")
      symb=_Symbol;
   for(i=0; i<k; i++)
     {
      if(po.SelectByIndex(i))
        {
         if(po.Symbol()==symb)
           {
            if(po.PositionType()==OP_BUY || po.PositionType()==OP_SELL)
              {
               if(op<0 || po.PositionType()==op)
                 {
                  if(mn<0 || po.Magic()==mn)
                    {
                     if(t<po.Time())
                        t=po.Time();
                    }
                 }
              }
           }
        }
     }
   return(iBarShift(symb, tf, t, true));
  }
//--- End ---

MT4

//+------------------------------------------------------------------------------+
//|  Описание : Возвращает номер бара M1 открытия последней позиции или -1.      |
//+------------------------------------------------------------------------------+
//|  Параметры:                                                                  |
//|    sy - наименование инструмента   ("" или NULL - текущий символ)            |
//|    tf - таймфрейм                  (    0       - текущий таймфрейм)         |
//|    op - операция                   (   -1       - любая позиция)             |
//|    mn - MagicNumber                (   -1       - любой магик)               |
//+------------------------------------------------------------------------------+
int MinutsNumberOfBarOpenLastPos(string sy="0",int tf=PERIOD_M1,int op=-1,int mn=-1)
  {
   datetime t=0;
   int      i, k=OrdersTotal();

   if(sy=="" || sy=="0")
      sy=_Symbol;
   for(i=0; i<k; i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==sy)
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL)
              {
               if(op<0 || OrderType()==op)
                 {
                  if(mn<0 || OrderMagicNumber()==mn)
                    {
                     if(t<OrderOpenTime())
                        t=OrderOpenTime();
                    }
                 }
              }
           }
        }
     }
   return(iBarShift(sy,tf,t,true));
  }
//--- End ---
 
Лауреат #:
как мне функцию написать если сделка открыта то противоположную сделку можно открыть через определенное время .даже если есть на открытие сделки сигнал. а так все это время запрет. очень интересно спасибо. 

Объясню свою позицию почему отсчет времени в техническом плане более корректный по свечам М1 чем по сравнению времени открытия сделки (позиции, ордера):

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

 
Здравствуйте. У меня есть стратегия, по которой я торгую. Можете ли вы мне помочь сделать советник по ней? 
 
Volodymyr Zubov #:

Объясню свою позицию почему отсчет времени в техническом плане более корректный по свечам М1 чем по сравнению времени открытия сделки (позиции, ордера):

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

спасибо буду изучать .

 
Volodymyr Zubov #:

Проверяете время открытия последней сделки, если оно >= заданного времени то можно открыть. Функцией приведенной ниже можно считать относительно минутных свечей, в итоге шаг времени будет одна минута и не зависит от выходных, перерывов в котировках и прочего.

MT5

MT4

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

 
Лауреат #:

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

      if((MinutsNumberOfBarOpenLastPos(_Symbol,PERIOD_M1,OP_SELL,Magic))>=Input25)// Input 25 время в минутах

Вызов функции в советнике для SELL, для BUY поменяйте SELL в вызове на BUY. В моем случае переменная 

Input25

это время в минутах после открытия последней сделки, после этого времени срабатывает условие

 
Volodymyr Zubov #:

Вызов функции в советнике для SELL, для BUY поменяйте SELL в вызове на BUY. В моем случае переменная 

это время в минутах после открытия последней сделки, после этого времени срабатывает условие

Спасибо буду дальше изучать Ваш прекрасный код. 

 

Есть интересный индикатор, которые я писал 3 года. 

Нужен кодер который поможет довести до робота.


Вот статья в которой я описываю часть функционала.  Ищу человека который сможет сотрудничать

https://docs.google.com/document/d/1Dw-3qki5glRdcHoHNpp0nv6Mju88e5IFJMMHR9AjYpE/edit

С нуля до млн, как торговать в тренд-
С нуля до млн, как торговать в тренд-
  • docs.google.com
Почему Вы не можете заработать на бирже - Потому что вы покупаете там где надо продавать и не покупаете там где пора купить. Эта статья развеет все мифы и заблуждения и даст вам полноценный инструмент для анализа рынка. Покупать надо тогда когда цена растет. Во всех остальных местах надо ...
Файлы:
 
Ivan Strekalov #:

Есть интересный индикатор, которые я писал 3 года. 

Нужен кодер который поможет довести до робота.


Вот статья в которой я описываю часть функционала.  Ищу человека который сможет сотрудничать

https://docs.google.com/document/d/1Dw-3qki5glRdcHoHNpp0nv6Mju88e5IFJMMHR9AjYpE/edit

вы ошиблись разделом. Это в "интересное и юмор" :-)

иначе с 10% от упомянутого могли бы нанять сразу отдел MQ на неделю-две :-)