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

Рейтинг 2146



РЕКОМЕНДУЮ



Coвeтник oт хая и лoу

Здравствуйте Андрей, прошу написать советник по моему ТЗ:
От каждого хая и лоу МЕСЯЦА отступается пункты заданные в настройках, и открываются сделки(1 sell и 1 bay).

Пример на покупку: от хая отступается 300п и открывается сделка на покупку.
Пример на продажу: от лоу отступается 300п и открывается сделка на продажу.

Важное условие: чтобы при обновлении хая или лоу сделки переставлялись.
  • 0
  • Просмотров: 2959
  • 17 декабря 2017, 20:48
  • lafler356
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

Брокер для ваших роботов, 15 лет на рынке

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

+
0
Важное условие: чтобы при обновлении хая или лоу сделки переставлялись.

Не сделки отложки наверное?
avatar

  35  AM2 Сообщений: 16277 - Андрей

  • 18 декабря 2017, 17:19
+
0
да, именно отложенные ордера, пожалуйста
avatar

  9  lafler356 Автор Сообщений: 305

  • 19 декабря 2017, 13:15
+
0
в пятницу сделаю еще одну попытку.
avatar

  35  AM2 Сообщений: 16277 - Андрей

  • 19 декабря 2017, 17:21
+
0
Спасибо огромное :) ;) )))))))
avatar

  9  lafler356 Автор Сообщений: 305

  • 19 декабря 2017, 17:27
+
0
Если это как то поможет:
if(High[0] > High[1]){}
вот условие на обновление хая


www.mql5.com/ru/forum/166412
и
docs.mql4.com/ru/series/refreshrates
Редактирован: 20 декабря 2017, 12:49
avatar

  9  lafler356 Автор Сообщений: 305

  • 20 декабря 2017, 12:28
+
0
Сейчас нарисовалось что то приблизительное:




//+------------------------------------------------------------------+
//|                                                     ATRLimit.mq4 |
//|                                              Copyright 2017, AM2 |
//|                                      http://www.forexsyatems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, AM2"
#property link      "http://www.forexsyatems.biz"
#property version   "1.00"
#property strict

//--- Inputs
extern double Lots       = 0.1;      // лот
extern int StopLoss      = 2000;     // лось
extern int TakeProfit    = 3000;     // язь
extern int Delta         = 300;      // дельта
extern int Expiration    = 1;        // истечение в днях
extern int Slip          = 30;       // реквот
extern int Magic         = 123;      // магик

double op=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
  {
   int r=0;
   color clr=Green;
   double sl=0,tp=0;

   if(type==1 || type==3 || type==5)
     {
      clr=Red;
      if(StopLoss>0) sl=NormalizeDouble(price+StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(price-TakeProfit*Point,Digits);
     }

   if(type==0 || type==2 || type==4)
     {
      clr=Blue;
      if(StopLoss>0) sl=NormalizeDouble(price-StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(price+TakeProfit*Point,Digits);
     }

   r=OrderSend(NULL,type,Lots,NormalizeDouble(price,Digits),Slip,sl,tp,"",Magic,TimeCurrent()+Expiration*3600*24,clr);
   return;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountTrades()
  {
   int count=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()<2) count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//| Подсчет ордеров по типу                                          |
//+------------------------------------------------------------------+
int CountOrders(int type)
  {
   int count=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==type) count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//| Удаление отложенных ордеров                                      |
//+------------------------------------------------------------------+
void DelOrder()
  {
   bool del;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()>1) del=OrderDelete(OrderTicket());
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   double lo1=iLow(NULL,PERIOD_MN1,1);
   double lo0=iLow(NULL,PERIOD_MN1,0);
   double hi1=iHigh(NULL,PERIOD_MN1,1);
   double hi0=iHigh(NULL,PERIOD_MN1,0);

   if(CountOrders(3)<1 && Bid<MathMax(hi0,hi1)+Delta*Point) PutOrder(3,MathMax(hi0,hi1)+Delta*Point);
   if(CountOrders(2)<1 && Bid>MathMin(lo0,lo1)-Delta*Point) PutOrder(2,MathMin(lo0,lo1)-Delta*Point);

   Comment("\n High 0: ",hi0,
           "\n High 1: ",hi1,
           "\n Low 0: ",lo0,
           "\n Low 1: ",lo1);
  }
//+------------------------------------------------------------------+

avatar

  35  AM2 Сообщений: 16277 - Андрей

  • 21 декабря 2017, 21:16
комментарий был удален 2017-12-22 14:26:46 lafler356

+
0
Спасибо, но есть пару недочётов, исправьте пожалуйста пару моментов(прошу прощения что не уточнил ТЗ по этому поводу)
1) не хай+дельта и лоу-дельта, а наоборот, по ТЗ Если поменять знаки то дублируются сделки
2) Пожалуйста сделайте так чтобы если сделку захватит тогда её уже не откроет повторно, хоть и на другом месте, т.е если добавить больше сделок
Редактирован: 22 декабря 2017, 17:38
avatar

  9  lafler356 Автор Сообщений: 305

  • 22 декабря 2017, 14:40
+
0
т.е. если есть поза отложки больше не ставим?
avatar

  35  AM2 Сообщений: 16277 - Андрей

  • 22 декабря 2017, 17:45
+
0
если есть поза отложки в сел тогда сел не ставим, а бай ставим, если есть и сел и бай тогда ничего не ставим, и пожалуйста исправьте лоу + дельта и хай — дельта
Редактирован: 22 декабря 2017, 18:18
avatar

  9  lafler356 Автор Сообщений: 305

  • 22 декабря 2017, 18:17
+
0
если есть поза отложки в сел тогда сел не ставим, а бай ставим, если есть и сел и бай тогда ничего не ставим, и пожалуйста исправьте лоу + дельта и хай — дельта


это уже что то новенькое :D 
avatar

  35  AM2 Сообщений: 16277 - Андрей

  • 22 декабря 2017, 19:12
+
0
вы не поняли меня)) блин… я опять не так выразился, если открылась отложка в сел тогда повторно она не должна открываться вообще!!! тоже самое для бай, только 1 раз может открыться

и изменить хай — дельта, а сейчас стоит хай + дельта! так же поменять лоу + дельта должна стоять)

Еще раз прошу прощения что не правильно выразился
Редактирован: 22 декабря 2017, 21:38
avatar

  9  lafler356 Автор Сообщений: 305

  • 22 декабря 2017, 21:35
+
0
вы не поняли меня)) блин… я опять не так выразился

Моя реакция когда клиент меняет ТЗ :D 
Редактирован: 22 декабря 2017, 23:43
avatar

  35  AM2 Сообщений: 16277 - Андрей

  • 22 декабря 2017, 23:26
+
0
avatar

  19  Kashtan Сообщений: 739 - Игорь

  • 23 декабря 2017, 00:49
комментарий был удален 2017-12-25 10:44:20 lafler356

комментарий был удален 2017-12-25 10:44:15 lafler356

+
0
Андрей пожалуйста исправьте советник, а именно от хая — 300п и от лоу +300п(т.е поменять знаки) и сделайте так чтобы эти 2 ордера могли открываться только раз в месяц! и всёёё ПОЖАЛУЙСТА
avatar

  9  lafler356 Автор Сообщений: 305

  • 25 декабря 2017, 10:44
+
0
Андрей, пожалуйста добавьте функцию чтобы лимитники больше не открывались, а то они откроются а на их месте опять лимитные ордера если цена будет гулять, ПОЖАЛУЙСТА сделайте чтобы они открывались раз в месяц все то бишь если ордер захватит на его месте больше не должен открыться такой же
avatar

  9  lafler356 Автор Сообщений: 305

  • 27 декабря 2017, 13:56

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