Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Узнай самые обсуждаемые темы на форуме. Заходи в раздел Стена!
Andrey Tuchak
481
Andrey Tuchak 2012.11.24 09:58 

Здравствуйте. Скажу сразу, я новичок. С кодом работаю только 2 день. Нужно написать советника, но не как не могу понять как написать условие для выставления бай лимита.

//+------------------------------------------------------------------+
//|                                                       Пример.mq4 |
//|                                                           Андрей |
//|                                                       Версия 1.1 |
//+------------------------------------------------------------------+
#property copyright ""
#property link      "НЕТ"

// ------------------------------------------------------------------
extern bool       MarketWatch         = True;    //Не знаю что это...
extern double     Цена_отложника      = 1.03719; //Цена отложника.
extern double     Условие_на_покупку  = 1.04219; //Цена условия открытия Buy Limit.
extern double     Условие_на_продажу  = 1.03219; //Цена условия открытия Sell Limit.
extern int        StopLoss            = 200;     //StopLoss.
extern int        TakeProfit          = 500;     //TakeProfit.
extern double     Lots                = 0.1;     //Размер лота
//---------------------------------------------------------------------

double ticket;
// ------------------------------------------------------------------
double start()
    {
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==false)                                              //Проверяеться наличие открытых позиций
  {
//----
  double sl,tp;
  if(Ask==Условие_на_покупку){                                                                       // Условие открытия ордера
  if(!MarketWatch){
    if(StopLoss>0)sl=Ask-StopLoss*Point; else sl=0;
    if(TakeProfit>0)tp=Ask+TakeProfit*Point; else tp=0;
    }
    ticket=OrderSend(Symbol(), OP_BUYLIMIT, Lots, Ask, sl, tp, "Цена_отложника", 0, Green);
    if(MarketWatch==true && ticket>0)                                                                // Установка стопов
    {
      if(OrderSelect(ticket,SELECT_BY_TICKET)){
       if(StopLoss>0)sl=Ask-StopLoss*Point; else sl=0;
        if(TakeProfit>0)tp=Ask+TakeProfit*Point; else tp=0;
          OrderModify(OrderTicket(), OrderOpenPrice(), sl, tp, 0, Blue);
        }
      }
    }
//----
  return(0);
}
// ------------------------------------------------------------------
}

 Если перевести на наш язык то смысл советника должен быть таков: Если Ask = Условие_на_покупку  = 1.04219 то выставляем отложеный бай лимит на уровне Цена_отложника   = 1.03719, со стопом и профитом разобрался.

И так же интересует что значит  "MarketWatch         = True;"

Не могу понять почему он работает по условию:

if(Ask==Условие_на_покупку){  

 Эсли это должно быть условием для выставления ордера по:

Цена_отложника      = 1.03719; //Цена отложника.

 

Благодарю за помощь. 

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