02.05.2010, 20:56
Аватар для cmillion
cmillion cmillion вне форума Элитный участник
Регистрация: 04.12.2009 / Сообщений: 1,819
Поблагодарили 1,475 раз(а) / Репутация: 1482
  • Отправить сообщение для cmillion с помощью ICQ
cmillion, спасибо ))
Теперь возникла другая проблема - хочу добавить в советник функцию определения последней сделки закрытой по стоп-лоссу, чтобы с ее помощью высчитать размер следующей сделки. Только вот никак не могу найти функцию, которая определяет последнюю сделку, которая закрылась по стоп-лоссу (((
Вроде бы эта - OrderStopLoss(), но что в скобках прописать, чтобы советник определил?

Вообще, то что мне нужно, следующее:
kLots = величина последней стоповой сделки * коэффициент валюты / тейк профит (в пипсах)

Не поможете с этим?
Заранее благодарен.
OrderStopLoss( ) Возвращает значение цены закрытия позиции при достижении уровня убыточности (stop loss) для текущего выбранного ордера.

Вот индикатор, он сигналит при закрытии ордера и показывает по какому стопу ордер закрылся.
PHP код:
//+------------------------------------------------------------------+
//|                                              AlertCloseOrder.mq4 |
//|                               Copyright © 2010, Vladimir Hlystov |
//|                                         http://cmillion.narod.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, Vladimir Hlystov"
#property link      "http://cmillion.narod.ru"
#property indicator_chart_window
int Orders;
//+------------------------------------------------------------------+
int start()
  {
   if (
Orders>OrdersTotal()) AlertOrder();
   
Orders=OrdersTotal();
   return(
0);
  }
//+------------------------------------------------------------------+
void AlertOrder()
{
   
string txt;
   
double OCP;
   
int i=OrdersHistoryTotal()-1;
   if(
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true)
   {                                     
      
OCP=OrderClosePrice();
      if (
OCP==OrderStopLoss()  ) txt="SL";
      if (
OCP==OrderTakeProfit()) txt="TP";
      
Alert("Ордер N ",OrderTicket()," закрыт по ",txt," ",
      
DoubleToStr(OCP,Digits)," прибыль ",DoubleToStr(OrderProfit(),2));
}  }
//+------------------------------------------------------------------+ 
Если добавить в него пару строк, то получится то, что Вам нужно.
Удачи!
Пишу на заказ торговых роботов для MT4 и MT5
Skype: mqlcmillion . . . . Email: mqlgold@narod.ru