Напишу советник бесплатно - страница 169

 
torrr #:
Все работает. Спасибо. Но у меня нет опыта работы с подобными инструментами, поэтому вдруг, после проверки, я понял, что допустил ошибку и не указал запрос в ТЗ: пожалуйста, исправьте его так, чтобы советник закрывал только ту валютную пару (один или несколько ордеров), на графике которой он запущен.
Просто добавьте магию. С уважением.
//+------------------------------------------------------------------+
//|                                                     Practica.mq4 |
//|                        Copyright 2022, Antonio Simón Del Vecchio |
//|                    https://www.mql5.com/es/users/simondelvecchio |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, Antonio Simón Del Vecchio"
#property link      "https://www.mql5.com/es/users/simondelvecchio"
#property version   "1.00"
#property strict


input int Magic = 12345;
input int Periodo = 50;


//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(OrdersTotal() > 0 && CruceMediaPrecio())
     {
      Cerrar();
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Cerrar()
  {
   double Precio = 0;
   for(int i = OrdersTotal() - 1; i >= 0; i--)
     {
      if(OrderSelect(i, SELECT_BY_POS))
        {
         if(OrderType() == OP_BUY && OrderMagicNumber()== Magic)
            Precio = Bid;
         else
            Precio = Ask;
         if(!OrderClose(OrderTicket(), OrderLots(), Precio, 3, clrNONE))
            Print("Error al cerrar la órden: ", GetLastError());
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool CruceMediaPrecio()
  {
   double Media = iMA(Symbol(), PERIOD_CURRENT, Periodo, 0, MODE_SMA, PRICE_CLOSE, 0);
   double Max = iHigh(Symbol(), PERIOD_CURRENT, 0);
   double Min = iLow(Symbol(), PERIOD_CURRENT, 0);
   if(Max > Media && Min < Media)
     {
      return(true);
     }
   return(false);
  }
//+------------------------------------------------------------------+
 
Antonio Simon Del Vecchio #:

Спасибо еще раз! Только мне не понятно где взять магик, ведь все сделки были открыты вручную (может комментарии при открытии ордеров подойдут?)

P.S. Нашел скрипт, открывающий ордер вручную с возможностью задания магика. Думаю, так сработает.
 
torrr #:

Еще раз спасибо. Я просто не понимаю, откуда брать magik, ведь все сделки открывались вручную (может, помогут комментарии при открытии ордеров?).

P.S. Я нашел скрипт, который открывает ордера вручную с возможностью установки магика. Я думаю, что это будет работать следующим образом.

Я думал, что позиции были открыты другим советником. Если вы открываете их вручную, этот вариант вам подойдет.

//+------------------------------------------------------------------+
//|                                                     Practica.mq4 |
//|                        Copyright 2022, Antonio Simón Del Vecchio |
//|                    https://www.mql5.com/es/users/simondelvecchio |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, Antonio Simón Del Vecchio"
#property link      "https://www.mql5.com/es/users/simondelvecchio"
#property version   "1.00"
#property strict

input int Periodo = 50;


//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(OrdersTotal() > 0 && CruceMediaPrecio())
     {
      Cerrar();
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Cerrar()
  {
   double Precio = 0;
   for(int i = OrdersTotal() - 1; i >= 0; i--)
     {
      if(OrderSelect(i, SELECT_BY_POS))
        {
         if(OrderType() == OP_BUY && OrderSymbol() == Symbol())
            Precio = Bid;
         else
            Precio = Ask;
         if(!OrderClose(OrderTicket(), OrderLots(), Precio, 3, clrNONE))
            Print("Error al cerrar la órden: ", GetLastError());
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool CruceMediaPrecio()
  {
   double Media = iMA(Symbol(), PERIOD_CURRENT, Periodo, 0, MODE_SMA, PRICE_CLOSE, 0);
   double Max = iHigh(Symbol(), PERIOD_CURRENT, 0);
   double Min = iLow(Symbol(), PERIOD_CURRENT, 0);
   if(Max > Media && Min < Media)
     {
      return(true);
     }
   return(false);
  }
//+------------------------------------------------------------------+
 
Antonio Simon Del Vecchio #:

Я думал, что позиции были открыты другим советником. Если вы открываете их вручную, этот вариант вам подойдет.

Спасибо большое! Буду тестировать.
 

Приветствую всех, вопрос, у меня есть полный код советника, но я хотел бы знать, если вы можете добавить информативную панель, где вы можете сообщить аспекты момента как, баланс, эквити, # открытых сделок, прибыль дня, недели, месяца и т.д....

Спасибо.

 
Здравствуйте, напишите пожалуйста советник для MT5,

который продает при пересечении верхней полосы Боллинджера, если текущая цена является текущим максимумом текущего бара.
Параметры полос Боллинджера, таймфрейм, размер лота, тейкпрофит и стоплосс в качестве ручных входных данных.

Спасибо большое :)
 
Dac coyr полосы Боллинджера, если текущая цена является текущим максимумом текущего бара.
Параметры полос Боллинджера, таймфрейм, размер лота, тейкпрофит и стоплосс в качестве ручных входных данных.

Спасибо большое :)

Сделайте, пожалуйста, скриншот терминала MetaTrader 5 и нанесите индикаторы на график. И еще одна просьба: фон графика должен быть белым.

 
Vladimir Karputov #:

Сделайте, пожалуйста, скриншот терминала MetaTrader 5 и наложите индикаторы на график. И еще одна просьба: фон графика должен быть белым.


Это всего лишь один индикатор, но ордер на продажу будет исполнен, когда цена пересечет верхнюю полосу Боллинджера, если текущая цена соответствует самой высокой цене текущего/нового бара.

Это означает, что ордер на продажу будет открываться для каждой новой более высокой цены выше верхней полосы Боллинджера.
Файлы:
 
привет. я новичок в торговле. я хочу знать, как использовать робота в торговле?
 
fahadshah #:
привет. я новичок в торговле. я хочу знать, как использовать робота в торговле?

Торговля?

Какая торговля?