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

Рейтинг 2081



РЕКОМЕНДУЮ



Советник помошник на отложенных ордерах GRID_BU v.1.0

Здравствуйте Андрей.

Есть просьба сделать советник-помошник GRID_BU v.1.0

Советник сразу открывает два отложенных ордера бай стоп и сел стоп на расстоянии степ.
Цена пошла в бай, сработал бай стоп и ставим ордеру безубыток, и тут же советник сразу выставляет отложенный ордер бай стоп через степ.
Если цена дальше пошла и сработал ещё ордер бай стоп, то советник опять выставляет отложку бай стоп через степ и так до бесконечности.
Смотрим что будет если цена развернётся.
Если цена пошла в сел, то сработает безубыток и ордер бай закроется и тут советник сразу должен выставить рыночный ордер на сел. То есть всегда если закрывается бай, то открывается рыночный ордер на сел и если закрывается сел, то откроется рыночный ордер на бай.
Получается какая идея. Что мы всегда будем находится в тренде и чем больше тренд тем больше плюс. Я хочу применить его вместе с другими советниками. Пока другие будут делать минус, то советник помошник буде держать плюс по тренду и не будет просадки.

Параметры в советнике:

— Лот = 0.1
— Степ = 25 //Расстояние на которое ставится отложенный ордер
— extern int BULevel = 20; // уровень БУ
— extern int BUPoint = 1; // пункты БУ
— extern int TrailingStop = 0; // трал
— extern int TrailingStep = 0; // шаг трала
— extern int Slip = 5; // Проскальзывание цены
— extern int Magic = 123; // магик
  • +2
  • Просмотров: 3710
  • 28 мая 2016, 13:53
  • cashyra
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

+
0
В следующем месяце только возьмусь.
avatar

  34  AM2 Сообщений: 15866 - Андрей

  • 28 мая 2016, 14:01
+
0
Спасибо буду ждать. *bravo* 
avatar

  15  cashyra Автор Сообщений: 392 - Юра

  • 28 мая 2016, 14:05
+
0
Вот поправил немного

Советник сразу открывает сетку отложенных ордеров бай стоп и сел стоп на расстоянии степ.
Цена пошла в бай, сработал бай стоп или несколько бай стопов и тут же советник сразу выставляет отложенные ордера бай стоп через степ согласно параметру — extern int AddOrders = 2; // Количество сработавших ордеров в одну сторону для выставления еще сетки.
Если цена дальше пошла и сработал ещё ордер бай стоп, то советник опять выставляет отложку бай стоп через степ и так до бесконечности.

Смотрим что будет если цена развернётся и у ордера бай выставлен безубыток.

Если цена пошла в сел, то сработает безубыток и ордер бай закроется и тут советник сразу должен выставить один отложенный ордер селстоп через StepBS
— extern int StepBS = 25; // Расстояние на которое выставляется один отложенный ордер при закрытии по б/у или тралу
И если сработал селстоп то опять выставляется один ордер селстоп через StepBS.

Если цена развернулась в бай и у ордера сел выставлен безубыток, то он закроется и сразу советник выставит уже один ордер байстоп через StepBS.

То есть всегда только после закрытия бай, открывается отложенный селстоп и только после закрытия сел, откроется отложенный ордер байстоп.

Сетка первая работает сама по себе как и прописали.

Получается, какая идея. Что мы всегда будем находится в тренде и чем больше тренд тем больше плюс. Я хочу применить его вместе с другими советниками. Пока другие будут делать минус, то советник помошник буде держать плюс по тренду и не будет просадки.

И если можно то коментарий — Comment на график, чтобы можно было видеть чего сколько и куда. И ещё просьба чтобы советник проверял и видел только всои ордера со своим магиком, чужие не трогал. И проверку что не нажата кнопка убрать, а то если не включить кнопку то советник удаляется с графика.

Параметры в советнике:

— extern double Lot = 1.0;// Лот
— extern int BULevel = 20; // уровень БУ
— extern int BUPoint = 2; // пункты БУ
— extern int TrailingStop = 0; // трал
— extern int TrailingStep = 0; // шаг трала
— extern int NumOrders = 5;// Количество ордеров выше и ниже цены
— extern int AddOrders = 2; // Количество сработавших ордеров в одну сторону для выставления еще сетки
— extern int StepFirstOrder = 25; // Расстояние первого ордера от цены в пунктах
— extern int StepOrders = 25; // Шаг между ордерами в пунктах
— extern int StepBS = 25; // Расстояние на которое выставляется один отложенный ордер при закрытии по б/у или тралу
— extern int Profit = 100; // Профит в валюте
— extern int Slip = 5; // Проскальзывание цены
— extern int Magic = 123; // магик

Редактирован: 1 июня 2016, 12:54
avatar

  15  cashyra Автор Сообщений: 392 - Юра

  • 1 июня 2016, 12:51
+
0
Идея хорошая, но все равно будет оставаться зависший ордер, который в последствии унесет депозит, если конечно не закроется по общему профиту. Здесь только поможет закрытие зависшего ордера, только как это реализовать пока не знаю *???* 

Можно типа закрывать зависший ордер если открылся встречный ордер, такая схема реализованна в этом советнике zakaz.opentraders.ru/30989.html
avatar

  14  beton2011 Сообщений: 895

  • 2 июня 2016, 11:37
+
0
ВЫ не поняли смысл. А смысл тут в том что мы ставим ордерам только безубыток и сетка срабатывает и накапливаются плюса, если рынок развернётся, то будут закрываться по безуьытку и мы никода не получим минуса. А трен он есть, поэтому всегда валюта за недел. да и пройдёт 100-300 пунктов. А если поставить 5 валютных пар одного направления, да ещё и которые ходят в день по 300 пунктов, то можно хорошо подняться. Допустим все валютные пары которые начинаются с британким фунтом.
avatar

  15  cashyra Автор Сообщений: 392 - Юра

  • 2 июня 2016, 11:52
+
0
Это вы не понимаете. Для того чтоб выставить ордер в БУ надо чтоб цена прошла нужное нам количество пунктов в нужном нам направление. Ну вот представьте такую ситуацию, открылся первый ордер, у нас БУ скажем 10 п, а цена прошла только 5 п и развернулась, это будет уже зависший ордер, а такие будут по любому, поверьте моему опыту :) 
avatar

  14  beton2011 Сообщений: 895

  • 2 июня 2016, 11:59
+
0
Такие ордера тбудут но только один, потому что надо растояние между ордерами ставить больше чем безубыток + спред 3 пункта + 5 пунктов запас. Итого:

Растояние — 34
уровень Безубыток-24
Пункты безубытка -2

Арынок если развернётся то вот я и пишу что надо ставить отложку в противоположную сторону. И по тренду профит в обратку вылезит в плюс. Ну а профит закрыть это уже как кому нравится.
Редактирован: 2 июня 2016, 12:08
avatar

  15  cashyra Автор Сообщений: 392 - Юра

  • 2 июня 2016, 12:07
+
0
Давайте подождем когда будет готов советник, тогда вы сами все увидите.
avatar

  14  beton2011 Сообщений: 895

  • 2 июня 2016, 13:28
+
0
Здравствуйте Андрей.
Наверно у Вас в начале месяца много заказов, но я хотел спросить, Вы возьмётесь за мой заказ. Спасибо.
avatar

  15  cashyra Автор Сообщений: 392 - Юра

  • 2 июня 2016, 07:21
+
0
Действительно много. Вчера 2 сделал, сегодня ночью один и сейчас другой делаю. Как только будет свободное время.
avatar

  34  AM2 Сообщений: 15866 - Андрей

  • 2 июня 2016, 07:26
+
0
Спасибо. *bravo* 
avatar

  15  cashyra Автор Сообщений: 392 - Юра

  • 2 июня 2016, 07:44
+
0
Посмотрел. Советник сложный это не ко мне.
avatar

  34  AM2 Сообщений: 15866 - Андрей

  • 2 июня 2016, 08:08
+
0
Вы такой делали такой советник GRID_Stop_BU, просто я добавил, что после закрытия по безубытку выставляется отложка в обратную сторону. Вот советник, а заказ, что то я не нашёл. Очень хороший советник, и если ему добавить обратку, будет бомба.

cloud.mail.ru/public/4SHu/apzMeAgv1
Редактирован: 2 июня 2016, 08:20
avatar

  15  cashyra Автор Сообщений: 392 - Юра

  • 2 июня 2016, 08:19
+
0
С этого и надо было начинать когда есть основа проще намного.
avatar

  34  AM2 Сообщений: 15866 - Андрей

  • 2 июня 2016, 08:23
+
0
Вы такой делали такой советник GRID_Stop_BU,


Это не мой советник. Оксана делала.
avatar

  34  AM2 Сообщений: 15866 - Андрей

  • 3 июня 2016, 06:33
+
0
Чужой код я править не возьмусь. Первую часть сделал, а вторую еще надо думать как все это машине объяснить.


//+------------------------------------------------------------------+
//|                                                       GridBU.mq4 |
//|                                              Copyright 2016, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"

//--- Inputs
extern double Lots       = 0.1;      // лот
extern int StopLoss      = 50;       // лось
extern int TakeProfit    = 70;       // язь
extern int BULevel       = 0;        // уровень БУ
extern int BUPoint       = 30;       // пункты БУ
extern int Expiration    = 10;       // экспирация
extern int Delta         = 300;      // дельта
extern int Slip          = 30;       // реквот
extern int Magic         = 123;      // магик

datetime t=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//|  Безубыток ордеров   if(BULevel>0) BU();                         |
//+------------------------------------------------------------------+
void BU()
  {
   bool m;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUY)
              {
               if(OrderOpenPrice()<=(Bid-(BULevel+BUPoint)*Point) && OrderOpenPrice()>OrderStopLoss())
                 {
                  m=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+BUPoint*Point,OrderTakeProfit(),0,Yellow);
                  return;
                 }
              }

            if(OrderType()==OP_SELL)
              {
               if(OrderOpenPrice()>=(Ask+(BULevel+BUPoint)*Point) && (OrderOpenPrice()<OrderStopLoss() || OrderStopLoss()==0))
                 {
                  m=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-BUPoint*Point,OrderTakeProfit(),0,Yellow);
                  return;
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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,clr);
   return;
  }
//+------------------------------------------------------------------+
//| Подсчет ордеров по типу                                          |
//+------------------------------------------------------------------+
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(int type)
  {
   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()==type) del=OrderDelete(OrderTicket());
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(BULevel>0) BU();

   if(CountOrders(4)<1) PutOrder(4,Bid+Delta*Point);
   if(CountOrders(5)<1) PutOrder(5,Bid-Delta*Point);
   //if(CountOrders(0)>0) DelOrder(5);
   //if(CountOrders(1)>0) DelOrder(4);
   
   Comment("\n Buy Stop: ",CountOrders(4),
           "\n Sell Stop: ",CountOrders(5));
  }
//+------------------------------------------------------------------+

avatar

  34  AM2 Сообщений: 15866 - Андрей

  • 3 июня 2016, 08:10
+
0
Спасибо. Всё нормально, всё работает. Я так и хотел. Это ты хорошо придумал с экспирацией. Всё осталось добавить ещё пару параметров, чтобы можно было подобрать экспирацию, она тут самая главная.

— extern int TrailingStop = 0; // трал
— extern int TrailingStep = 0; // шаг трала
— extern int Profit = 100; // Общий профит в валюте
extern int BuyProfit = 30; // язь в валюте на бай
extern int SellProfit = 30; // язь в валюте на селл

И ещё добавь коментарий на график.
Сколько ордеров в бай, сколько в сел, баланс, средства, общий профит.
Редактирован: 3 июня 2016, 19:52
avatar

  15  cashyra Автор Сообщений: 392 - Юра

  • 3 июня 2016, 09:23
+
0
ВЫ пишите:
Первую часть сделал, а вторую еще надо думать как все это машине объяснить.

А что объяснить, над чем Вы сейчас думаете. Вроде всё сделали правильно. Может у Вас есть ещё мысль как улучшить систему.
avatar

  15  cashyra Автор Сообщений: 392 - Юра

  • 4 июня 2016, 09:10
+
0
avatar

  15  cashyra Автор Сообщений: 392 - Юра

  • 4 июня 2016, 09:12
+
0
Вчера было 2 сложных заказа один доделал а ваш на после выходных остался.
avatar

  34  AM2 Сообщений: 15866 - Андрей

  • 4 июня 2016, 15:32
+
0
Буду ждать. Вы хоть как то отдыхайте, а то совсем не жалеете себя. Всё о других думаете. *boss* 
avatar

  15  cashyra Автор Сообщений: 392 - Юра

  • 4 июня 2016, 15:42
+
+1
avatar

  34  AM2 Сообщений: 15866 - Андрей

  • 5 июня 2016, 15:11
+
0
Спасибо будем тестировать.
avatar

  15  cashyra Автор Сообщений: 392 - Юра

  • 5 июня 2016, 16:54

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