Lexa0712

 
Уровень 6

  Торгую в компаниях:


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

Рейтинг 2089



РЕКОМЕНДУЮ



советник гридер

Здравствуйте, нужен советник.тех. задание. открывается два противоположенных ордера с тейк профитом, на растояние тейк профита устанавливается отложение ордера лимитники и стоп, ордера сетка, если один из ордеров закрывается по тейк профиту то на его место ставится такой же ордер с теме же параметрами.в советнике нужны изменяющие параметры .1выбор лота.2.тейк.3.закрытие всех ордеров 4. количество ордеров
  • 0
  • Просмотров: 4237
  • 18 марта 2016, 22:27
  • Lexa0712
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

+
0
Так примерно?

avatar

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

  • 19 марта 2016, 16:50
+
0
Да.
avatar

  6  Lexa0712 Автор Сообщений: 32

  • 20 марта 2016, 20:21
+
0
Стопы будут равны? т.е. лось равен тейку?
avatar

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

  • 20 марта 2016, 20:27
+
0
Андрей, а можно убрать из советника, время истечения ордеров?
avatar

  6  Lexa0712 Автор Сообщений: 32

  • 26 марта 2016, 21:38
+
0
Андрей, я немного поторопился с тем что написал что он работает правильно, я хотел чтоб он постоянно выстовлял ордер на место закрывшегося, а он это делает по-моему всего один раз пока он не закроется по ТП!
avatar

  6  Lexa0712 Автор Сообщений: 32

  • 26 марта 2016, 21:38
+
0
Без стопов, только тейк Профит.
avatar

  6  Lexa0712 Автор Сообщений: 32

  • 20 марта 2016, 21:34
+
0
Извращенец :D 
avatar

  0  Strannik Сообщений: 685 - Алексей (деактивирован)

  • 20 марта 2016, 21:59
+
0
Сделал в упрощенном варианте:




//+------------------------------------------------------------------+
//|                                                        Grids.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

extern int    StopLoss    = 0;   //Стоплосс ордера
extern int    TakeProfit  = 250; //Тейкпрофит ордера
extern int    Slip        = 20;  //Проскальзывание ордера
extern int    Step        = 250; //Шаг установки ордеров 
extern int    Count       = 3;   //Количество устанавливаемых ордеров
extern int    Expiration  = 300; //Bремя истечения ордера в минутах
extern int    Magic       = 111; //Магик для ордеров 
extern double Lots        = 0.1; //Лот 

bool b=true,s=true;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
  {
   int    r=0;
   color clr=clrNONE;
   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*60,clr);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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()==0 || OrderType()==1) 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);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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 LastDealType()
  {
   int type=0;

   if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
     {
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
        {
         if(OrderType()==OP_BUY)
           {
            type=1;//buy  
           }
         if(OrderType()==OP_SELL)
           {
            type=2;//sell  
           }
        }
     }
   return(type);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double LastProfitDealOpenPrice()
  {
   double price=0;

   if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
     {
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
        {
         if(OrderProfit()>0) price=OrderOpenPrice();
        }
     }
   return(price);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(CountTrades()<1)
     {
      PutOrder(0,Ask);
      PutOrder(1,Bid);
/**/
      if(CountOrders(4)<1 && CountOrders(3)<1)
        {
         for(int i=1;i<=Count;i++)
           {
            PutOrder(4,Ask+Step*Point*i);
            PutOrder(3,Ask+Step*Point*i);
           }
        }

      if(CountOrders(5)<1 && CountOrders(2)<1)
        {
         for(int i=1;i<=Count;i++)
           {
            PutOrder(5,Ask-Step*Point*i);
            PutOrder(2,Ask-Step*Point*i);
           }
        }

     }

   if(LastDealResult()==1 && LastDealType()==1 && b)
     {
      PutOrder(2,LastProfitDealOpenPrice());
      b=false;
     }

   if(LastDealResult()==1 && LastDealType()==2 && s)
     {
      PutOrder(3,LastProfitDealOpenPrice());
      s=false;
     }
  }
//+------------------------------------------------------------------+

avatar

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

  • 21 марта 2016, 10:57
комментарий был удален 2016-03-26 21:42:23 Lexa0712

+
0
Грамотей! Андрей с большой буквы писать надо:D 
avatar

  18  Kashtan Сообщений: 737 - Игорь

  • 26 марта 2016, 08:17
+
0
спасибо.
avatar

  6  Lexa0712 Автор Сообщений: 32

  • 26 марта 2016, 21:39
+
0
Вот што вышло у меня:


avatar

  11  sprogtm Сообщений: 74 - самозабанен

  • 26 марта 2016, 16:38
+
0
Можно поинтересоваться с какими настройками так получилось!
avatar

  18  Kashtan Сообщений: 737 - Игорь

  • 26 марта 2016, 18:15
комментарий был удален 2016-03-26 21:42:53 Lexa0712

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

  6  Lexa0712 Автор Сообщений: 32

  • 26 марта 2016, 21:39
комментарий был удален 2016-03-26 21:41:06 Lexa0712

+
0
1000 часов поставь в этой опции и все дела
avatar

  18  Kashtan Сообщений: 737 - Игорь

  • 26 марта 2016, 18:14
+
0
Lexa0712( 3.закрытие всех ордеров )поправь, отложники или прибыльные ордера
avatar

  11  sprogtm Сообщений: 74 - самозабанен

  • 26 марта 2016, 18:23
+
0
Lexa0712: Если убрать, время истечения ордеров получится совсем другая и сливная ТЗ
avatar

  11  sprogtm Сообщений: 74 - самозабанен

  • 26 марта 2016, 18:39
+
0
А в конце советник — партизан получается *think* 
avatar

  11  sprogtm Сообщений: 74 - самозабанен

  • 26 марта 2016, 18:52
+
0
Не гридер, а пересижователь
avatar

  11  sprogtm Сообщений: 74 - самозабанен

  • 26 марта 2016, 19:01
комментарий был удален 2016-03-26 21:44:19 Lexa0712

комментарий был удален 2016-03-26 21:40:47 Lexa0712

комментарий был удален 2016-03-26 21:46:47 Lexa0712

+
0
avatar

  11  sprogtm Сообщений: 74 - самозабанен

  • 26 марта 2016, 21:44
+
0
Lexa0712: И это флет?

avatar

  11  sprogtm Сообщений: 74 - самозабанен

  • 26 марта 2016, 21:49
+
0
Lexa0712: Давай завтра предложу свою стратегию к данному ТЗ, всё похоже только открытие отложников другое *drinks* 
avatar

  11  sprogtm Сообщений: 74 - самозабанен

  • 26 марта 2016, 21:57
+
0
Lexa0712: Не надо зря обижаться, мы поможем сможем *bravo* 
avatar

  11  sprogtm Сообщений: 74 - самозабанен

  • 26 марта 2016, 22:02
комментарий был удален 2016-03-26 22:24:10 Lexa0712

+
0
вот флет.
avatar

  6  Lexa0712 Автор Сообщений: 32

  • 26 марта 2016, 22:23
комментарий был удален 2016-03-26 22:21:25 Lexa0712

+
0
Lexa0712: Ордиров выше не видно
avatar

  11  sprogtm Сообщений: 74 - самозабанен

  • 26 марта 2016, 22:27
+
0
их там нету.
avatar

  6  Lexa0712 Автор Сообщений: 32

  • 26 марта 2016, 22:33
+
0
Андрей привет! Если можно поправить советник примерно так:

avatar

  11  sprogtm Сообщений: 74 - самозабанен

  • 27 марта 2016, 11:36
+
0
Вот што вышло:
avatar

  11  sprogtm Сообщений: 74 - самозабанен

  • 27 марта 2016, 12:41

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