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

Рейтинг 1497



РЕКОМЕНДУЮ



Изменить и добавить один параметр.

В советнике BuySell5.mq4 (20 Kb)

1)В место ТП (тейка) ставить 100% Лок- таким же объемом как и эта прибыльная позиция. То есть параметр ТП в настройках, будет означать уровень Лока.

Вся остальная основная логика остается без изменения!
топик

2)Сов. считает кол-во Локов.После заданного кол-ва(на пример: 10 Локов), ставит 11-й Лок при этом закрывает самый первый(старый), и т. д. делает последующий новый Лок, при этом будет закрываться самый старый-начальный Лок. Так поддерживается заданное кол-во Локов в рынке.
Добавить параметр:

Кол-во Локов=50 // заданное кол-во Локов, после которого будет закрываться самый старый-начальный Лок.

За ранее огромное СПАСИБО!
  • 0
  • Просмотров: 1155
  • 31 января 2019, 23:57
  • Marik007
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

+
0
на 5-е
avatar

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

  • 1 февраля 2019, 10:23
+
0
что за лок, каким объемом? все на скринах пожалуйста
avatar

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

  • 3 февраля 2019, 12:57
+
0
что за лок, каким объемом?


В ТЗ все четко прописано: "… Лок- таким же объемом как и эта прибыльная позиция."

Лок --Локирующие ордера – это ордера одинакового объема(противоположного направления к локируемой позиции), открытые на одном и том же инструменте, образуется положительный замок.
Редактирован: 3 февраля 2019, 15:31
avatar

  13  Marik007 Автор Сообщений: 288 - Forexman

  • 3 февраля 2019, 15:20
+
0
Вот схематично:

avatar

  13  Marik007 Автор Сообщений: 288 - Forexman

  • 3 февраля 2019, 15:54
+
0
В ТЗ все четко прописано:

нужно пошагово скрины с пояснениями. больше тз вытягивать не буду.
avatar

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

  • 3 февраля 2019, 15:55
+
0
Андрей, скрина что выше достаточно?*think* 
avatar

  13  Marik007 Автор Сообщений: 288 - Forexman

  • 3 февраля 2019, 16:07
+
0
читаю тз и не представляю как делать. за такие не берусь.
Редактирован: 3 февраля 2019, 20:49
avatar

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

  • 3 февраля 2019, 17:42
+
0
Ок! Спасибо, ожидаю...:) 
avatar

  13  Marik007 Автор Сообщений: 288 - Forexman

  • 3 февраля 2019, 20:20
комментарий был удален 2019-02-04 17:25:45 Marik007

+
0
читаю тз и не представляю как делать.


--Не большое пояснение, возможно натолкнет на мысль ;) 

1) Локирующий ордер ставится без ТП и СЛ и все! Этот положительный лок(замок) сов больше не видит. При этом начальный ордер модифицируется, у него удаляется СЛ.

--Дальше сов работает по основной логике, ставит поз. по направлению движения цены, если в + снова новый замок.

--Если по СЛ закрылся, то перевернулся и ставит поз. по движению цены, дальше в + и снова новый Лок(замок)и т. д.…

2)Что бы сов не видел своих предшествующих Локов, а работал только с текущей позицией, нужно каждому новому Локу присваивать новый магик, то есть каждый последующий это «Магик+1» *good* 
avatar

  13  Marik007 Автор Сообщений: 288 - Forexman

  • 4 февраля 2019, 00:03
+
0
вот набросок:

1. ставит лок на профите
2. кроет по лосю
3. меняет магик


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

//--- Inputs
extern double Lots       = 0.1;      // лот
extern double KLot       = 2;        // умножение лота
extern double MaxLot     = 5;        // максимальный лот
extern int StopLoss      = 300;      // лось
extern int TakeProfit    = 444;      // язь
extern int Slip          = 30;       // реквот
extern int BuySell       = 1;        // 1-бай 2-селл 
int magic                = 1;        // магик
//+------------------------------------------------------------------+
//| 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;

   if(type==1 || type==3 || type==5)
     {
      clr=Red;
     }

   if(type==0 || type==2 || type==4)
     {
      clr=Blue;
     }

   r=OrderSend(NULL,type,Lot(),NormalizeDouble(price,Digits),Slip,0,0,"",magic,0,clr);
   return;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;

   if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
     {
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
        {
         if(OrderProfit()<0) lot=OrderLots()*KLot;
        }
     }

   if(lot>MaxLot)lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//| Тип последней сделки                                             |
//+------------------------------------------------------------------+
int LastDealType()
  {
   int type=8;

   if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
     {
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
        {
         type=OrderType();
        }
     }
   return(type);
  }
//+------------------------------------------------------------------+
//| Результат последней сделки                                       |
//+------------------------------------------------------------------+
int LastDealResult()
  {
   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);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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 CloseAll(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);
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CloseLast()
  {
   bool cl;

   if(OrderSelect(OrdersTotal()-1,SELECT_BY_POS,MODE_TRADES))
     {
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
        {
         if(OrderType()==0)
           {
            RefreshRates();
            cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),Slip,White);
           }
         if(OrderType()==1)
           {
            RefreshRates();
            cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),Slip,White);
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int Points()
  {
   int pr=0;

   if(OrderSelect(OrdersTotal()-1,SELECT_BY_POS,MODE_TRADES))
     {
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
        {
         if(OrderType()==0) pr=(int)((Bid-OrderOpenPrice())/_Point);
         if(OrderType()==1) pr=(int)((OrderOpenPrice()-Bid)/_Point);
        }
     }
   return(pr);
  }
//+------------------------------------------------------------------+
//| Тип последней сделки                                             |
//+------------------------------------------------------------------+
int LastOrderType()
  {
   int type=8;

   if(OrderSelect(OrdersTotal()-1,SELECT_BY_POS,MODE_TRADES))
     {
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
        {
         type=OrderType();
        }
     }
   return(type);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(Points()>TakeProfit)
     {
      if(LastOrderType()==0) PutOrder(1,Bid);magic++;
      if(LastOrderType()==1) PutOrder(0,Ask);magic++;      
     }
     
   if(CountTrades()<1)
     {
      if(BuySell==1) PutOrder(0,Ask);
      if(BuySell==2) PutOrder(1,Bid);
     }

   if(Points()<-StopLoss)
     {
      CloseLast();
     }

   Comment("\n Points: ",Points(),
           "\n Trades: ",CountTrades(),
           "\n Magic: ",magic,
           "\n Last Order Type: ",LastOrderType());
  }
//+------------------------------------------------------------------+


avatar

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

  • 4 февраля 2019, 15:14
+
0
Андрей, я прогнал сова в тестере, результат:

--По тренду, ставит Локи(замки), все замечательно!*good* 

--Но, не много нарушена основная логика:

1) Когда поз. закрывается по СЛ, он должен разворачиваться и ставить позу. противоположного направления(с учетом KLot), а он ставит поз. того же направления(это не правильно). Надо поправить!

На пример: Бай=0,01 закрылся по СЛ, здесь же открывается Сел=0,02. Ну а дальше, если в + то Лок(замок)а если Сел=0,02 по СЛ закрылся то Бай=0,04 тут же открылся и т. д.…
avatar

  13  Marik007 Автор Сообщений: 288 - Forexman

  • 4 февраля 2019, 23:02
+
0
доработка в следующем топике
avatar

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

  • 5 февраля 2019, 18:28
+
0
доработка в следующем топике


--Да это вроде не доработка,*???*  а поправить как было в начальной логике, не много нарушилось в результате исполнения доработки… *yes* 
avatar

  13  Marik007 Автор Сообщений: 288 - Forexman

  • 5 февраля 2019, 19:19
+
0
результате добавления якобы одного параметра пришлось заново писать всю логику, разработать несколько уникальных функций и др. это только кажется что все так просто и еще неизвестно впишутся далее функции которые были в советнике или нет.
avatar

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

  • 5 февраля 2019, 20:17
+
0
Где можно скачать этот локировщик?
avatar

  9  cehfy Сообщений: 170 - Сергей

  • 8 февраля 2019, 22:53
+
0
вот набросок:


— 5 коментов выше, «качайте», все в открытом доступе…
— Или вот здесь в привычном виде… zakaz.opentraders.ru/49360.html
avatar

  13  Marik007 Автор Сообщений: 288 - Forexman

  • 8 февраля 2019, 23:27

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