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

Рейтинг 1418



РЕКОМЕНДУЮ



Советник по Стратегии Плавающие ордера

Нашёл систему в инете. Может попробуешь сделать советник.

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

2. Далее.
Цена движется тиками, поэтому необходимо, чтобы отложенные ордера
двигались вслед за ценой с каждым тиком.

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

При небольших откатах цены назад ордер селл стоп стоит. т.к.
растояние не достаточно для продолжения движения, в то же время,
если у отложенника бай стоп появилась возможность двигаться за
ценой (расстояние позволяет — больше 50 пунктов), он начинает
движение.

В итоге, два отложенных ордера начинают сближаться.

3. Дальше идем.
Предположим, цена дошла до отложенного ордера бай стоп и активизировала
его по цене 1.5050, селл стоп подтянулся за ценой на уровень 1.5000,
и в тот момент, когда цена открыла ордер бай стоп, советник тут же откладывает
новый отложенный ордер по цене 1.5100 взамен сработавшему отложеннику.

В итоге имеем одну открытую позицию в бай и два отложенных ордера бай стоп
и селл стоп. Что происходит дальше?

4. Допустим, цена пошла дальше, набирая профит для открытой позиции бай — селл стоп продолжает движение за ценой на расстоянии 50 пунктов, тем самым сокращая расстояние до открытой позиции.
Например, цена прошла 20 пунктов в профит и советник должен поставить безубыток (в настройках указываем уровень БУ и пункты БУ), селл стоп подтянулся на отметку 1.5020
и цена решила развернуться и пойти к отложенному ордеру селл стоп.
Отложенный селл стоп остановился. Цена продолжила падение закрыла наш бай по безубытку и открыла отложенник селл стоп
по цене 1.5020, подтянув при этом уже противоположный отложенный ордер бай стоп
на уровень 1.5070. Советник тут же отложил новый отложенник селл стоп по цене 1.4970

В работе всегда находится три ордера — открытая позиция и два отложенника — не больше, не меньше.

5. Ждём общего профита в валюте депозита и закрываемся.

Параметры:

extern double Lots = 0.1; // лот
extern double KLot = 1.2; // умножение лота
extern double MaxLot = 5; // максимальный лот
extern int StopLoss = 0; // лось
extern int TakeProfit = 0; // язь
extern int Profit = 250; // Профит в валюте
extern int BULevel = 0; // уровень БУ
extern int BUPoint = 0; // пункты БУ
extern int TrailingStop = 0; // трал
extern int TrailingStep = 0; // шаг трала
extern int Slip = 5; // реквот
extern int StepOrder = 20; // расстояние, на которое откладываются отложенники от текущей цены
extern int Magic = 123; // магик
  • +6
  • Просмотров: 8321
  • 25 июня 2016, 18:04
  • cashyra
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

+
0
Неплохая стратегия, а при достижении профита или безубытка отложенники выставляются сразу, я так понимаю? *za* 
avatar

  10  kalmyk Сообщений: 29 - Дмитрий

  • 26 июня 2016, 04:51
+
+1
Да, я дую так. Может есть дополнения Вы пишите. Вот кстате сайт где парень пишет, я правда чуть изменил, так как у него присутствуе стоп лос, а я не люблю его. Но потом он пишет про безубыток, так я и вписал его сразу.

www.invest74.ru/forex_laboratory/sistema_plavaushie_ordera/
avatar

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

  • 26 июня 2016, 09:21
+
0
У вас в этом месяце уже 2 выполненных заказа. Напомните в июле.
avatar

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

  • 26 июня 2016, 13:22
+
0
Хорошо спасибо. *bravo* 
avatar

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

  • 26 июня 2016, 14:05
+
0
Интересно протестировать, ждем :) 
avatar

  6  anathem Сообщений: 122

  • 26 июня 2016, 15:34
+
0
Вы просили напомнить в этом месяце.
avatar

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

  • 1 июля 2016, 08:36
+
0
Сейчас буду смотреть.
avatar

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

  • 1 июля 2016, 10:27
+
0
Cоветник непростой, буду делать шаг за шагом. Сейчас есть тянулка и бу.




//+------------------------------------------------------------------+
//|                                                        Casha.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    = 3;        // истечение ордера в часах
extern int Delta         = 100;      // дельта
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("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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 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 Mode()
  {
   bool m;
   double delta=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() || OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUYSTOP)
              {
               delta=NormalizeDouble(OrderOpenPrice()-Bid,Digits);
               if(delta>Delta*Point)
                 {
                  m=OrderModify(OrderTicket(),NormalizeDouble(Bid+Delta*Point,Digits),OrderStopLoss(),OrderTakeProfit(),0,Yellow);
                  return;
                 }
              }

            if(OrderType()==OP_SELLSTOP)
              {
               delta=NormalizeDouble(Bid-OrderOpenPrice(),Digits);
               if(delta>Delta*Point)
                 {                  
                  m=OrderModify(OrderTicket(),NormalizeDouble(Bid-Delta*Point,Digits),OrderStopLoss(),OrderTakeProfit(),0,Yellow);
                  return;
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   Mode();
   if(BULevel>0) BU();
   if(CountOrders(4)<1) PutOrder(4,Bid+Delta*Point);
   if(CountOrders(5)<1) PutOrder(5,Bid-Delta*Point);
  }
//+------------------------------------------------------------------+

avatar

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

  • 1 июля 2016, 11:08
+
0
Сейчас есть все самые основные моменты ТЗ. И это нарисовало мне такую картику за полтора года <img src='http://opentraders.ru/templates/skin/g6h/images/smilies/002.gif' alt=' :) '>&nbsp; 



www.opentraders.ru/downloads/1226/
Редактирован: 1 июля 2016, 11:57
avatar

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

  • 1 июля 2016, 11:36
+
0
Почему то на демке открывает только селл стоп, потом переводит их в селл и тянет до профита. На условие — «В работе всегда находится три ордера — открытая позиция и два отложенника — не больше, не меньше» как то совсем не похоже. В чем может быть причина?
avatar

  2  andy2016 Сообщений: 1

  • 1 июля 2016, 13:22
+
0
сырой еще.
avatar

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

  • 1 июля 2016, 16:37
+
0
А полная версия будет? *hi* 
avatar

  6  anathem Сообщений: 122

  • 5 июля 2016, 20:09
+
0
Автор молчит, видимо идею проверил.
avatar

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

  • 5 июля 2016, 21:55
+
0
Да нет я просто жду когда сделаешь полную версию, не хочу тебя грузить, может у тебя много работы.
avatar

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

  • 6 июля 2016, 03:42
+
0
Да нет я просто жду когда сделаешь полную версию, не хочу тебя грузить, может у тебя много работы.

Вы смотрите по работе советника, что работает не так и пишите об этом, я этого и жду.
avatar

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

  • 6 июля 2016, 06:42
+
0
В работе всегда находится три ордера — открытая позиция и два отложенника — не больше, не меньше.


Вот этот пункт у меня вызывает вопросы. А что делать если ордер сработал, поза зависла и не перешла в БУ?
avatar

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

  • 6 июля 2016, 06:36
+
0
Посмотрел исходную стратегию. Вы забыли скопипастить этот момент:

Оба отложенных ордера являются как бы стоп лоссом и тейк профитом для открытой
позиции! Другими словами, при срабатывании одного из отложенных ордеров
автоматически закрывается открытая позиция не зависимо, был взят профит
или словили стоп лосс и откладывается новый отложенник взамен сработавшему.


Поэтому и зависает куча ордеров.
avatar

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

  • 6 июля 2016, 06:55
+
0
Ну давайте сделаем так, я просто не люблю стоп лосы. Мне кажется, что если есть стоп лос, то сразу не получить прибыль, а надо ждать. Давайте сделаем так со стоп лосом, посмотрим что получится.
avatar

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

  • 6 июля 2016, 07:43
+
0
Сейчас близко к авторской стратегии, в рынке 3 ордера: www.opentraders.ru/downloads/1236/


Редактирован: 6 июля 2016, 09:43
avatar

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

  • 6 июля 2016, 09:17
+
0
Добрый день.
В журнале очень много
Casha EURUSD,M15: OrderModify error 130
Так и должно быть?
avatar

  4  mrlsv Сообщений: 32

  • 4 сентября 2016, 11:18
+
0
Давайте сделаем так со стоп лосом, посмотрим что получится.


В гадалки играть не будем, если не получается по ТЗ это уже не ко мне. По исходному ТЗ все сделано.
avatar

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

  • 6 июля 2016, 09:24
+
0
Добрый день.
В журнале очень много
Casha EURUSD,M15: OrderModify error 130
Так и должно быть?


Оформляйте как заказ, буду смотреть.
avatar

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

  • 4 сентября 2016, 15:42

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