Группа "Стол заказов MQL"

Рейтинг 1418



РЕКОМЕНДУЮ



Доработка советника OPEN для МТ5

Здравствуйте, Андрей!
Прошу доработать советник OPEN, созданный Вами в прошлом месяце.
1. Советник фиксирует в своих «мозгах» точку OPEN текущей свечи.
2. Ордер открывается вручную.
3. Советник не выставляет стоп-лосс при открытии ордера.
4. Он держит ситуацию под контролем, постоянно сравнивая текущее значение цены со значением цены OPEN.
5. И как только эти две цены становятся равными по величине сделка закрывается.
С уважением, Антонина.
  • 0
  • Просмотров: 801
  • 6 мая 2019, 17:04
  • Antonyna
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Советник по индикатору candle_patterns
Следующая запись в группе  
Сова для MT4 из индюка Ma_normalized
06 мая 2019
06 мая 2019

Комментарии (14)

+
0
на 10-е
avatar

  29  AM2 Сообщений: 9792 - Андрей

  • 6 мая 2019, 17:28
+
0
Он держит ситуацию под контролем, постоянно сравнивая текущее значение цены со значением цены OPEN


цену оупен какой свечи запоминаем?
avatar

  29  AM2 Сообщений: 9792 - Андрей

  • 8 мая 2019, 18:47
+
0
сделал вариант закрытия по цене оупен текущей свечи. но здесь одно но, если открылась следующая свеча автоматом поза закрывается т.к. соблюдается условие :) 


//+------------------------------------------------------------------+
//|                                                         Open.mq5 |
//|                                              Copyright 2019, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"

#include <Trade\Trade.mqh> 
#include <Trade\PositionInfo.mqh> 

CTrade trade;
CPositionInfo pos;

//--- глобальные переменные
input int TP=111;//язь
input double LT=1;//лот

double op[1];
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   PutButton("B",100,80,"BUY");
   PutButton("S",100,40,"SELL");

   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ObjectDelete(0,"B");
   ObjectDelete(0,"S");
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutButton(string name,int x,int y,string text)
  {
   ObjectCreate(0,name,OBJ_BUTTON,0,0,0);
//--- установим координаты кнопки
   ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
   ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
//--- установим размер кнопки
   ObjectSetInteger(0,name,OBJPROP_XSIZE,80);
   ObjectSetInteger(0,name,OBJPROP_YSIZE,30);
//--- установим угол графика, относительно которого будут определяться координаты точки
   ObjectSetInteger(0,name,OBJPROP_CORNER,2);
//--- установим текст
   ObjectSetString(0,name,OBJPROP_TEXT,text);
//--- установим шрифт текста
   ObjectSetString(0,name,OBJPROP_FONT,"Arial");
//--- установим размер шрифта
   ObjectSetInteger(0,name,OBJPROP_FONTSIZE,12);
//--- установим цвет текста
   ObjectSetInteger(0,name,OBJPROP_COLOR,Red);
//--- установим цвет фона
   ObjectSetInteger(0,name,OBJPROP_BGCOLOR,White);
//--- установим цвет границы
   ObjectSetInteger(0,name,OBJPROP_BORDER_COLOR,Blue);
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов
   ObjectSetInteger(0,name,OBJPROP_HIDDEN,false);
//--- установим приоритет на получение события нажатия мыши на графике
   ObjectSetInteger(0,name,OBJPROP_ZORDER,0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CloseAll()
  {
   for(int i=PositionsTotal()-1;i>=0;i--)
     {
      if(pos.SelectByIndex(i)) trade.PositionClose(_Symbol);
     }
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   CopyOpen(NULL,0,0,1,op);

   double Ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
   double Bid=SymbolInfoDouble(_Symbol,SYMBOL_BID);

   if(ObjectGetInteger(0,"B",OBJPROP_STATE)==1)
     {
      trade.Buy(LT,NULL,Ask,0,Bid+TP*_Point);
      ObjectSetInteger(0,"B",OBJPROP_STATE,false);
     }

   if(ObjectGetInteger(0,"S",OBJPROP_STATE)==1)
     {
      trade.Sell(LT,NULL,Bid,0,Ask-TP*_Point);
      ObjectSetInteger(0,"S",OBJPROP_STATE,false);
     }

   if(Bid==op[0]) CloseAll();

   Comment("\n Open: ",op[0]);
  }
//+------------------------------------------------------------------+

avatar

  29  AM2 Сообщений: 9792 - Андрей

  • 8 мая 2019, 18:53
+
0
Здравствуйте, Андрей!
Значение OPEN фиксируется только 1 раз на той свече, на которой поставлен ордер, на свече входа.
avatar

  6  Antonyna Автор Сообщений: 21

  • 9 мая 2019, 12:59
+
0
Значение OPEN фиксируется только 1 раз на той свече, на которой поставлен ордер, на свече входа.</blockquote
этого не было в тз

а было вот что и не пишите что это подразумевалось :D 

Советник фиксирует в своих «мозгах» точку OPEN текущей свечи

посмотрю еще в праздники
avatar

  29  AM2 Сообщений: 9792 - Андрей

  • 9 мая 2019, 19:40
+
0
avatar

  29  AM2 Сообщений: 9792 - Андрей

  • 10 мая 2019, 11:55
+
0
Здравствуйте, Андрей!
Вот здесь советник не сработал. На зеленой свече открыт ордер BUY. Советник должен запомнить OPEN этой свечи (на скрине это дно зеленой свечи). Это значение не должно меняться до закрытия ордера. Цена развернулась в обратную сторону, вниз. Ордер должен был закрыться тогда, когда цена стала на уровень дна зеленой свечи (значение цены стало такое же, как то значение OPEN, которое советник запомнил при открытии ордера). В этот момент ордер должен закрыться. Такая операция очень уменьшает просадку, если цена пошла не в ту сторону.
Если надо, я сниму ролик, в котором нарисую алгоритм закрытия сделки по OPEN входящей свечи и объясню возможные варианты (BUY SELL).
avatar

  6  Antonyna Автор Сообщений: 21

  • 10 мая 2019, 22:59
+
0
если не сработал, значит не совпало условие бид = оупен.
avatar

  29  AM2 Сообщений: 9792 - Андрей

  • 11 мая 2019, 09:58
+
0
В связи с тем, что я не знала, что цена движется скачками, а не последовательно, и существует вероятность того, что она перескочит через значение точки OPEN входящей свечи, прошу дополнить алгоритм следующими условиями контроля
— для ордера, выставленного BUY закрытие ордера осуществляется в случае если:
1) текущая цена = значению точки OPEN входящей свечи;
2) текущая цена меньше точки OPEN входящей свечи.
— для ордера, выставленного SELL закрытие ордера осуществляется в случае если:
1) текущая цена = значению точки OPEN входящей свечи;
2) текущая цена больше точки OPEN входящей свечи.
Извините за мою непонятливость.
avatar

  6  Antonyna Автор Сообщений: 21

  • 11 мая 2019, 20:25
+
0
лучше взять дельту небольшую. плюс минус N пунктов от оупен.
avatar

  29  AM2 Сообщений: 9792 - Андрей

  • 11 мая 2019, 20:55
+
0
Хорошо, Андрей. Только внесите величину дельты в настройки советника, пожалуйста.
avatar

  6  Antonyna Автор Сообщений: 21

  • 11 мая 2019, 21:09
+
0
Андрей, хочу уточнить по поводу дельты. Сделка не должна закрываться до OPEN, это не имеет смысла. Дельта может работать только после OPEN.
avatar

  6  Antonyna Автор Сообщений: 21

  • 11 мая 2019, 22:23
+
0
ok
avatar

  29  AM2 Сообщений: 9792 - Андрей

  • 11 мая 2019, 23:14
+
0
Здравствуйте, Андрей. Прошу продолжить работу над советником ОPEN. Если будут вопросы — пишите.
avatar

  6  Antonyna Автор Сообщений: 21

  • 11 июля 2019, 12:24

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий
Начать торговлю с Альпари