Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Подключи MQL5 Cloud Network. Увеличивай свой рейтинг!
qwanya
93
qwanya 2012.12.05 16:19 

Здравствуйте, подскажите что исправить

 int start()

//Функция PriceOpenNearPos().
//Эта функция возвращает цену открытия ближайшей позиций. В качестве критерия "близости" позиции 
//выступает минимум расстояния в пунктах между ценой открытия позиции и текущей рыночной ценой. 
//Отбор учитываемых позиций задаётся внешними параметрами:

//sy - Наименование рыночного инструмента. Если задать этот параметр, то функция учтёт позиции 
//только заданного инструмента. Значение по умолчанию - "" означает любой рыночный инструмент. 
//Значение NULL означает текущий инструмент.
//op - Торговая операция, тип позиции. Допустимые значения: OP_BUY, OP_SELL или -1.
// Значение по умолчанию -1 означает любую позицию.
//mn - Идентификатор позиции, MagicNumber. Значение по умолчанию -1 означает любой идентификатор.
//-----------

  double PriceOpenNearPos(string sy="", int op=OP_BUY, int mn=-1) 
  {
   double mi, oop=0, p;
   int    i, k=OrdersTotal(), pp=0;

   if (sy=="0") sy=Symbol();
   for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (mn<0 || OrderMagicNumber()==mn) {
            if (OrderType()==OP_BUY)  mi=MarketInfo(OrderSymbol(), MODE_ASK);                                        
            if (OrderType()==OP_SELL) mi=MarketInfo(OrderSymbol(), MODE_BID);
            p=MarketInfo(OrderSymbol(), MODE_POINT);
            if (p==0) if (StringFind(sy, "JPY")<0) p=0.00001; else p=0.01;
            if (pp==0 || pp>MathAbs(OrderOpenPrice()-mi)/p) {
              pp=MathAbs(OrderOpenPrice()-mi)/p;
              oop=OrderOpenPrice();
            }
          }
        }
      }
    }
  }
  return(oop);
}                                                                       //если ближайший ордер BUY в убытке больше чем 150 Point

 {                                                                      //то

   OrderSend(Symbol(),OP_BUY,1.0,Ask,3,0);         //надо сделать это

   return;                                   

  }

возможно ли такое? 

Спасибо 

Роман
7939
Роман 2012.12.05 17:18  
qwanya:

1. Здравствуйте, подскажите что исправить


2. возможно ли такое? 

3. Спасибо 


1. Добрый вечер. Править ничего не нужно. Надо изучить учебник и документацию по языку.

2. Для Вас возможно только через раздел "Работа".

3. Пожалуйста.

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