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

Рейтинг 1373



РЕКОМЕНДУЮ



Два отложенных лиммит ордера

Здравствуйте Андрей, переделайте пожалуйста этот советник www.opentraders.ru/downloads/1147/ в точности наоборот, т.е вместо бай стоп — сэл лиммит, а вместо сэл стоп — бай лиммит?
  • 0
  • Просмотров: 1920
  • 18 апреля 2016, 16:39
  • Vic654321
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

+
0
Сегодня буду смотреть.
avatar

  28  AM2 Сообщений: 9202 - Андрей

  • 18 апреля 2016, 16:49
+
0
Сейчас можно выбирать какие ордера ставить: www.opentraders.ru/downloads/1071/

extern int StopLimit = 1; // 0-Stop 1-Limit



avatar

  28  AM2 Сообщений: 9202 - Андрей

  • 18 апреля 2016, 20:30
+
0
Здорово, спасибо, сразу два вида :) . Только можете убрать добавление ещё одного ордера при срабатывании бай или сэл.
avatar

  4  Vic654321 Автор Сообщений: 42 - Виктор

  • 19 апреля 2016, 18:44
+
+1
Сейчас если открыта поза больше не ставит отложки. Еще добавил время истечения ордера: www.opentraders.ru/downloads/1071/

avatar

  28  AM2 Сообщений: 9202 - Андрей

  • 19 апреля 2016, 20:10
+
0
Андрей, это «оно» спасибо большое*good* . Щас буду тестить. Отпишуся.
avatar

  4  Vic654321 Автор Сообщений: 42 - Виктор

  • 19 апреля 2016, 21:02
+
0
Андрей, тесты предварительно аналогичные :- негативные, видимо от перемены мест слагаемых сумма не меняется. Тогда план «Б»:- Подключить этот скрипт к Excel, и там с помощью формулы получить «плюсы». Я тогда подготовлю Т.З. в отдельном топике.
avatar

  4  Vic654321 Автор Сообщений: 42 - Виктор

  • 19 апреля 2016, 22:18
+
0
Спасибо, что помогаете.*friends* 
avatar

  4  Vic654321 Автор Сообщений: 42 - Виктор

  • 19 апреля 2016, 22:23
+
+1
Тогда план «Б»:- Подключить этот скрипт к Excel

Связку с Excel я никогда не делал, в следующем месяце если разместите топик и можно будет быстро сделать, тогда да :) 
avatar

  28  AM2 Сообщений: 9202 - Андрей

  • 20 апреля 2016, 06:56
+
0
Здравствуйте Андрей, а Вы не могли бы ещё прикрутить к этому советнику трейлинг и бу?
avatar

  4  Vic654321 Автор Сообщений: 42 - Виктор

  • 27 апреля 2016, 20:20
+
+1
avatar

  28  AM2 Сообщений: 9202 - Андрей

  • 27 апреля 2016, 21:17
+
0
Круто Андрей, спасибо большое, *victory*  *good* , щас затестю.
avatar

  4  Vic654321 Автор Сообщений: 42 - Виктор

  • 27 апреля 2016, 22:31
+
0
Андрей здравствуйте, тестил трал и бу, — работают отменно, спасибо. Но тут ещё одна проблема вылезла; вот видео youtu.be/UiomZPOdOZo: Выставлены два стоп ордера, после скачка оба сработали, но затем бай закрылся по профиту, и не может открыться заново, т.к сэлл еще открыт. А можно сделать, чтоб если сработал профит противоположного ордера, то другой ордер принудительно закрылся и они вместе заново открылись?
avatar

  4  Vic654321 Автор Сообщений: 42 - Виктор

  • 28 апреля 2016, 21:25
+
+1
Cделать можно, но на мой взгляд лучше выставить стоп для ордера на тот уровень где стоит тейк противоположного.
avatar

  28  AM2 Сообщений: 9202 - Андрей

  • 29 апреля 2016, 08:43
+
0
Вот два годовых теста:- без стопа, и с ним на уровне профита противоположного, , , соответственно. В первом случае стоп выставлен на чуть больше уровня мах.просадки.
avatar

  4  Vic654321 Автор Сообщений: 42 - Виктор

  • 29 апреля 2016, 13:34
+
0
Таких моментов, когда срабатывают сразу два ордера не много, они из-за резких скачков, и после этого один из ордеров уходит в «свободный полёт» и совсем не профитный:) . На этот случай надо иметь возможность «вернуть его на место». Сделайте пожалуйста Андрей.
avatar

  4  Vic654321 Автор Сообщений: 42 - Виктор

  • 29 апреля 2016, 14:48
+
0
Поэтому весь график регулировать стоплоссом не выгодно, лучше просто указать советнику, что ему делать в таких случаях. :) 
avatar

  4  Vic654321 Автор Сообщений: 42 - Виктор

  • 30 апреля 2016, 12:31
+
0
Закрыл позу когда получили тейк:




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

//--- Inputs
extern double Lots      = 0.1;      // лот
extern int StopLoss     = 500;      // лось
extern int TakeProfit   = 500;      // язь
extern int Delta        = 300;      // расстояние от цены
extern int Expiration   = 10;       // истечение ордера
extern int StopLimit    = 1;        // 0-Stop 1-Limit
extern int Slip         = 30;       // реквот
extern int Magic        = 123;      // магик

datetime t=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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());
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int Last()
  {
   int result=0;
   if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
     {
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
        {
         if(OrderProfit()>0)
           {
            result=1;//tp  
           }
         if(OrderProfit()<0)
           {
            result=2;//sl  
           }
        }
     }
   return(result);
  }
//+------------------------------------------------------------------+
//| Закрытие позиции по типу ордера                                  |
//+------------------------------------------------------------------+
void ClosePos(int ot=-1)
  {
   bool cl;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==0 && (ot==0 || ot==-1))
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),Slip,White);
              }
            if(OrderType()==1 && (ot==1 || ot==-1))
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),Slip,White);
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| OnTick function                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(Last()==1 || Last()==2) DelOrder();

   if(CountTrades()<1)
     {
      if(StopLimit==0)
        {
         if(CountOrders(4)<1)PutOrder(4,Bid+Delta*Point);
         if(CountOrders(5)<1)PutOrder(5,Bid-Delta*Point);
        }

      if(StopLimit==1)
        {
         if(CountOrders(2)<1)PutOrder(2,Bid-Delta*Point);
         if(CountOrders(3)<1)PutOrder(3,Bid+Delta*Point);
        }
     }

   if(Last()==1) ClosePos(-1);
  }
//+------------------------------------------------------------------+

avatar

  28  AM2 Сообщений: 9202 - Андрей

  • 1 мая 2016, 10:08
+
0
Здравствуйте Андрей, с праздником, Христос Воскрес!<img src='http://opentraders.ru/templates/skin/g6h/images/smilies/002.gif' alt=' :) '>&nbsp; . Мда, Вы были правы, этот метод не решает проблему. Оказывается, что срабатывание сразу двух противоположных ордеров «сплошь и рядом» *shock* , а не только при скачках курса. Придётся откатиться к предыдущему варианту, и думать как всё-таки решить её по другому *rabota* . Извиняюсь, что отвлёк попусту, буду по внимательнее.*capitan* 
Редактирован: 1 мая 2016, 13:59
avatar

  4  Vic654321 Автор Сообщений: 42 - Виктор

  • 1 мая 2016, 13:53
+
0
Думал, думал,*think*  чет ничего в голову не приходит пока, кроме как вообще отключить закрытие противоположного ордера по профиту в предыдущем варианте советника www.opentraders.ru/downloads/1071/. Сделаете? Конечно же теперь уже, как будет свободное время*relax* , а то я и так исчерпал все мыслимые лимиты правил заказов. Только не убирайте трэил и бу, я с их настройками попробую поиграть.
avatar

  4  Vic654321 Автор Сообщений: 42 - Виктор

  • 1 мая 2016, 15:37
+
0
Здравствуйте. Ищу советник, который выставляет в заданное время два отложенных ордера. При срабатывании одного из них — второй удаляется. Может у вас имеется готовый советник, который реализует такой алгоритм?
Редактирован: 19 мая 2019, 10:38
avatar

  3  Boris54 Сообщений: 51

  • 22 марта 2019, 06:55

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