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

Рейтинг 2073



РЕКОМЕНДУЮ



Советник-пробойник на индикаторе Morning Flat с элементами переворотного мартингейла

Здравствуйте, Андрей! Прошу написать советник на индикаторе Morning flat, на пробой уровней, с переворотным мартингейлом. Вход двумя отложенными ордерами — у первого ордера тейкпрофит на отметке внешнего уровня, у второго ордера тейкпрофит задается отдельно. Стопы на других уровнях внутренней коробки. Когда первый ордер закрывается по тейкпрофиту, второй переводится в безубыток. Затем включается трал через заданное количество пунктов с заданным шагом. В полночь ордера закрываются, если в плюсе, не сработавшие ордера удаляются. Если ордера в минусе, когда наступает следующий день, они не закрываются, остаются до отработки, новые отложки соответстветвенно не открываются. При срабатывании первых отложек соответственно вторые умножаются на заданный коэффициент. Хотелось бы опцию, когда включать умножение, на каком перевороте. И когда первый ордер закрывается по тейкпрофиту, вторые отложки удалять/не удалять, хотелось бы опцию. Плюс отклонение плюс минус от уровней где выставляются отложки и уровень тейкпрофита первого ордера. Вывести внешние настройки индикатора в советнике, по которым выставляются уровень тейка и фильтр на минимум коробки, при котором не будут открываться ордера, и на максимум коробки, при котором не будут открываться ордера. Вроде все.
MorningFlat.mq4 (5 Kb)
  • +5
  • Просмотров: 7307
  • 15 сентября 2016, 16:22
  • Lexx79
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

+
0
Посмотрю сегодня.
avatar

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

  • 15 сентября 2016, 17:22
+
0
Напрямую уровни из индикатора не получить, если получится восстановить уровни по формулам из индикатора, тогда может что то и нарисуется.
avatar

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

  • 16 сентября 2016, 08:14
+
0
Хорошо, надеюсь получиться.
avatar

  7  Lexx79 Автор Сообщений: 40

  • 16 сентября 2016, 08:21
+
0
Вроде бы сдвинулось с мертвой точки, пока самый простой вариант:




//+------------------------------------------------------------------+
//|                                                      Morning.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 double KLot       = 1;        // умножение лота
extern double MaxLot     = 5;        // максимальный лот
extern int StopLoss      = 300;      // лось
extern int TakeProfit    = 700;      // язь
extern int TrailingStop  = 35;       // трал
extern int Expiration    = 10;       // истечение ордера
extern int Delta         = 100;      // дельта
extern int Slip          = 30;       // реквот
extern int Magic         = 123;      // магик

extern string Start      = "00:00";  // начало коробки
extern string End        = "8:00";   // конец коробки

datetime t=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;

   if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
     {
      if(OrderProfit()<0)
        {
         lot=OrderLots()*KLot;
        }
     }
   if(lot>MaxLot)lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//| Простой трал                                                     |
//+------------------------------------------------------------------+
void Trailing()
  {
   bool mod;
   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(Bid-OrderOpenPrice()>TrailingStop*Point)
                 {
                  if(OrderStopLoss()<Bid-TrailingStop*Point)
                    {
                     mod=OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*Point,OrderTakeProfit(),0,Yellow);
                     return;
                    }
                 }
              }

            if(OrderType()==OP_SELL)
              {
               if((OrderOpenPrice()-Ask)>TrailingStop*Point)
                 {
                  if((OrderStopLoss()>(Ask+TrailingStop*Point)) || (OrderStopLoss()==0))
                    {
                     mod=OrderModify(OrderTicket(),OrderOpenPrice(),Ask+TrailingStop*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,Lot(),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());
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutRect(string name,datetime t1,double p1,datetime t2,double p2,color clr)
  {
   ObjectDelete(0,name);
//--- создадим прямоугольник по заданным координатам
   ObjectCreate(0,name,OBJ_RECTANGLE,0,t1,p1,t2,p2);
//--- установим цвет прямоугольника
   ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   int EndBar=iBarShift(NULL,0,StringToTime(End));
   int StartBar=iBarShift(NULL,0,StringToTime(Start));
   int DeltaBars=MathAbs(StartBar-EndBar);
   double h = High[iHighest(NULL,0,MODE_HIGH,DeltaBars+1,EndBar)];
   double l = Low[iLowest(NULL,0,MODE_LOW,DeltaBars+1,EndBar)];

   if(TrailingStop>0) Trailing();

   if(TimeCurrent()>StringToTime(End) && CountTrades()<1)
     {
      PutRect("Rect",Time[EndBar],l,Time[StartBar],h,Blue);
      if(CountOrders(4)<1 && Bid<h) PutOrder(4,h+Delta*Point);
      if(CountOrders(5)<1 && Bid>l)PutOrder(5,l-Delta*Point);
     }

   Comment("\n End: ",iBarShift(NULL,0,StringToTime(End)),
           "\n Start: ",iBarShift(NULL,0,StringToTime(Start)));
  }
//+------------------------------------------------------------------+


Редактирован: 16 сентября 2016, 09:28
avatar

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

  • 16 сентября 2016, 09:08
+
0
Ставит ордера на 2 уровня:




//+------------------------------------------------------------------+
//|                                                      Morning.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 double KLot        = 1;        // умножение лота
extern double MaxLot      = 5;        // максимальный лот
extern double TargetLevel = 161.8;    // уровень 
extern int StopLoss       = 300;      // лось
extern int TakeProfit     = 700;      // язь
extern int TrailingStop   = 35;       // трал
extern int Expiration     = 10;       // истечение ордера
extern int Delta          = 100;      // дельта
extern int Slip           = 30;       // реквот
extern int Magic          = 123;      // магик

extern string Start       = "00:00";  // начало коробки
extern string End         = "8:00";   // конец коробки

datetime t=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;

   if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
     {
      if(OrderProfit()<0)
        {
         lot=OrderLots()*KLot;
        }
     }
   if(lot>MaxLot)lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//| Простой трал                                                     |
//+------------------------------------------------------------------+
void Trailing()
  {
   bool mod;
   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(Bid-OrderOpenPrice()>TrailingStop*Point)
                 {
                  if(OrderStopLoss()<Bid-TrailingStop*Point)
                    {
                     mod=OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*Point,OrderTakeProfit(),0,Yellow);
                     return;
                    }
                 }
              }

            if(OrderType()==OP_SELL)
              {
               if((OrderOpenPrice()-Ask)>TrailingStop*Point)
                 {
                  if((OrderStopLoss()>(Ask+TrailingStop*Point)) || (OrderStopLoss()==0))
                    {
                     mod=OrderModify(OrderTicket(),OrderOpenPrice(),Ask+TrailingStop*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,Lot(),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());
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutRect(string name,datetime t1,double p1,datetime t2,double p2,color clr)
  {
   ObjectDelete(0,name);
//--- создадим прямоугольник по заданным координатам
   ObjectCreate(0,name,OBJ_RECTANGLE,0,t1,p1,t2,p2);
//--- установим цвет прямоугольника
   ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   int EndBar=iBarShift(NULL,0,StringToTime(End));
   int StartBar=iBarShift(NULL,0,StringToTime(Start));
   int DeltaBars=MathAbs(StartBar-EndBar);
   double h = High[iHighest(NULL,0,MODE_HIGH,DeltaBars+1,EndBar)]+Delta*Point;
   double l = Low[iLowest(NULL,0,MODE_LOW,DeltaBars+1,EndBar)]-Delta*Point;
   double h2=(h-l)*(TargetLevel-100)/100+h;
   double l2=l-(h-l)*(TargetLevel-100)/100;

   if(TrailingStop>0) Trailing();

   if(TimeCurrent()>StringToTime(End) && CountTrades()<1)
     {
      PutRect("Rect",Time[EndBar],l,Time[StartBar],h,Blue);
      if(CountOrders(4)<1 && Bid<h)
        {
         PutOrder(4,h);
         PutOrder(4,h2);
        }
      if(CountOrders(5)<1 && Bid>l)
        {
         PutOrder(5,l);
         PutOrder(5,l2);
        }
     }

   Comment("\n End: ",iBarShift(NULL,0,StringToTime(End)),
           "\n Start: ",iBarShift(NULL,0,StringToTime(Start)));
  }
//+------------------------------------------------------------------+

avatar

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

  • 16 сентября 2016, 09:46
+
0
Стопы ордеров на границах коробки, тейк первого на открытии второго, тп второго задаваемый:




//+------------------------------------------------------------------+
//|                                                      Morning.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 double KLot        = 1;        // умножение лота
extern double MaxLot      = 5;        // максимальный лот
extern double TargetLevel = 161.8;    // уровень 
extern int StopLoss       = 300;      // лось
extern int TakeProfit     = 700;      // язь
extern int TrailingStop   = 35;       // трал
extern int Expiration     = 10;       // истечение ордера
extern int Delta          = 100;      // дельта
extern int Slip           = 30;       // реквот
extern int Magic          = 123;      // магик

extern string Start       = "00:00";  // начало коробки
extern string End         = "8:00";   // конец коробки

datetime t=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;

   if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
     {
      if(OrderProfit()<0)
        {
         lot=OrderLots()*KLot;
        }
     }
   if(lot>MaxLot)lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//| Простой трал                                                     |
//+------------------------------------------------------------------+
void Trailing()
  {
   bool mod;
   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(Bid-OrderOpenPrice()>TrailingStop*Point)
                 {
                  if(OrderStopLoss()<Bid-TrailingStop*Point)
                    {
                     mod=OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*Point,OrderTakeProfit(),0,Yellow);
                     return;
                    }
                 }
              }

            if(OrderType()==OP_SELL)
              {
               if((OrderOpenPrice()-Ask)>TrailingStop*Point)
                 {
                  if((OrderStopLoss()>(Ask+TrailingStop*Point)) || (OrderStopLoss()==0))
                    {
                     mod=OrderModify(OrderTicket(),OrderOpenPrice(),Ask+TrailingStop*Point,OrderTakeProfit(),0,Yellow);
                     return;
                    }
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price,double sl,double tp)
  {
   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,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());
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutRect(string name,datetime t1,double p1,datetime t2,double p2,color clr)
  {
   ObjectDelete(0,name);
//--- создадим прямоугольник по заданным координатам
   ObjectCreate(0,name,OBJ_RECTANGLE,0,t1,p1,t2,p2);
//--- установим цвет прямоугольника
   ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   int EndBar=iBarShift(NULL,0,StringToTime(End));
   int StartBar=iBarShift(NULL,0,StringToTime(Start));
   int DeltaBars=MathAbs(StartBar-EndBar);
   double h = High[iHighest(NULL,0,MODE_HIGH,DeltaBars+1,EndBar)]+Delta*Point;
   double l = Low[iLowest(NULL,0,MODE_LOW,DeltaBars+1,EndBar)]-Delta*Point;
   double h2=(h-l)*(TargetLevel-100)/100+h;
   double l2=l-(h-l)*(TargetLevel-100)/100;
   double st=0,tk=0;

   if(TrailingStop>0) Trailing();

   if(TimeCurrent()>StringToTime(End) && CountTrades()<1)
     {
      PutRect("Rect",Time[EndBar],l,Time[StartBar],h,Blue);
      if(CountOrders(4)<1 && Bid<h)
        {
         st=NormalizeDouble(l,Digits);
         tk=NormalizeDouble(h2,Digits);
         PutOrder(4,h,st,tk);
         tk=NormalizeDouble(h2+TakeProfit*Point,Digits);
         PutOrder(4,h2,st,tk);
        }
        
      if(CountOrders(5)<1 && Bid>l)
        {
         st=NormalizeDouble(h,Digits);
         tk=NormalizeDouble(l2,Digits);
         PutOrder(5,l,st,tk);
         tk=NormalizeDouble(l2-TakeProfit*Point,Digits);
         PutOrder(5,l2,st,tk);
        }
     }

   Comment("\n End: ",iBarShift(NULL,0,StringToTime(End)),
           "\n Start: ",iBarShift(NULL,0,StringToTime(Start)));
  }
//+------------------------------------------------------------------+

avatar

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

  • 16 сентября 2016, 10:09
+
0
И добавил закрытие положительных и удаление отложенных ордеров после указанного времени. Ну и все для бесплатного заказа объем работы выполнен, уже весь код сюда не лезет :D 
www.opentraders.ru/downloads/1319/


Редактирован: 16 сентября 2016, 10:27
avatar

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

  • 16 сентября 2016, 10:27
+
0
А то есть если я захочу что-то доделать или переделать, это только в следующем месяце?
avatar

  7  Lexx79 Автор Сообщений: 40

  • 16 сентября 2016, 13:28
+
0
Посмотрите как работает и пока есть свободное время могу еще 1-2 пункта добавить из ТЗ. Только подробнее опишите а то там каша.
avatar

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

  • 16 сентября 2016, 17:24
+
0
Стопы ордеров на границах коробки, тейк первого на открытии второго, тп второго задаваемый:


А как сделать так что б стопы и тейки были не зависимыми?
avatar

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

  • 18 сентября 2016, 09:58
+
0
Пропишите необходимое в функции установки ордера.
avatar

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

  • 18 сентября 2016, 10:06
+
0
В общем, просьба такая — убрать внутренние отложки, оставить только внешние, и закрытие открытых ордеров либо по времени, допустим 23.00, либо через заданное количество часов. Мартин убрать. Дельту оставить. Всё.
avatar

  7  Lexx79 Автор Сообщений: 40

  • 19 сентября 2016, 15:35
+
0
avatar

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

  • 21 сентября 2016, 07:58
+
0
Здорово, спасибо!
avatar

  7  Lexx79 Автор Сообщений: 40

  • 21 сентября 2016, 19:33
+
0
Ааа, я извиняюсь, но по ссылке вроде как тот же самый советник?
Редактирован: 21 сентября 2016, 19:46
avatar

  7  Lexx79 Автор Сообщений: 40

  • 21 сентября 2016, 19:45
+
0
avatar

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

  • 21 сентября 2016, 19:54
+
0
да. теперь все нормально, спасибо!
avatar

  7  Lexx79 Автор Сообщений: 40

  • 21 сентября 2016, 20:23

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