03.05.2010, 14:34
Аватар для cmillion
cmillion cmillion на форуме Элитный участник
Регистрация: 04.12.2009 / Сообщений: 1,933
Поблагодарили 1,534 раз(а) / Репутация: 1541
  • Отправить сообщение для cmillion с помощью ICQ
ale002, спасибо... но мне нужно нечто иное.
Меня интересует функция, проверяющая последний закрывшийся ордер. И если последний ордер закрыт по стоп-лоссу, то выполняются действия Х. Если последний ордер закрыт по профиту, то выполняются действия У.
Довольно просто, но почему-то у мну не получается вызвать функцию последнего закрывшегося ордера.

double OCP;
int i=OrdersTotal()-1;
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true )
{
OCP=OrderClosePrice();
if (OCP==OrderStopLoss()) k=x*y;
if (OCP==OrderTakeProfit()) k=x/y;

В таком виде советник не желает принимать функцию, он просто напросто не предпринимает никаких действий.

Вот и хотелось бы подсказки, что я делаю не так.
Для вызова этой функции, Вам необходимо определить, что ордер закрылся. Например так:
PHP код:
int Orders;
//+------------------------------------------------------------------+
int start()
  {
   if (
Orders>OrdersTotal()) ВАША_ФУНКЦИЯ();
   
Orders=OrdersTotal();
   return(
0);
  } 
Помогаю в разработке торговых роботов, индикаторов и скриптов для MT4 и MT5
Skype: mqlcmillion
Email: mqlgold@narod.ru
WhatsApp +79283690333