Скачать MetaTrader 5

Условие "сегодня не закрывались сделки с убытком"

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Не знаешь, как пользоваться виджетом? Прочитай об этом статью!
Serg_Mao
41
Serg_Mao 2015.02.12 06:12 

Добрый день!

 Помогите правильно задать условие (логику):

 "В ходе текущей торговой не закрывались сделки с убытком" ?

 

  заранее спасибо.

Vitalii Ananev
8136
Vitalii Ananev 2015.02.12 07:24  
Serg_Mao:

Добрый день!

 Помогите правильно задать условие (логику):

 "В ходе текущей торговой не закрывались сделки с убытком" ?

 

  заранее спасибо.

int GetLastCloseOrderTicket(string Smb, int MN)
{
   datetime tclose=0;
   int i=0,ticket=0;
   for (i=0; i<OrdersHistoryTotal(); i++) 
   {
      if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;
      if (MN!=0) 
         if (OrderMagicNumber()!=MN) continue;
      if (OrderSymbol()!=Smb) continue;
      if (tclose<OrderCloseTime())
      {
         tclose=OrderCloseTime();
         ticket=OrderTicket();         
      }
   }
   if (OrderSelect(ticket,SELECT_BY_TICKET)) return(OrderTicket());
   else return(-1);
}

Привет!

Попробуйте эту функцию она возвращает тикет последнего закрытого ордера. Данные берет из торговой истории.

bool LastCloseOrderStopLoss(string Smb, int MN)
{
   int ticket;
   ticket = GetLastCloseOrderTicket(Smb,MN);
   if (ticket==-1)
   {
      return(false);
   }else
   {
      if (OrderProfit()<0)
      {
         if (OrderType()==OP_BUY)
            if (OrderStopLoss()>=OrderClosePrice()) return(true);
         if (OrderType()==OP_SELL)
            if (OrderStopLoss()<=OrderClosePrice()) return(true);           
      }
   }
   return(false);

}

 А эта функция использует выше написанную функцию и возвращает true если последний ордер был закрыт по стоп лосс, иначе false.

Можете их переделать под ваш случай. 

Serg_Mao
41
Serg_Mao 2015.02.12 07:48  
vitales:

Привет!

Попробуйте эту функцию она возвращает тикет последнего закрытого ордера. Данные берет из торговой истории.

 А эта функция использует выше написанную функцию и возвращает true если последний ордер был закрыт по стоп лосс, иначе false.

Можете их переделать под ваш случай.  



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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий