Напишу советник бесплатно - страница 157

 
Ivan Butko #:
Предыдущий, к сожалению, не подошёл. Перерыв внимательней кодбазу, нашёл почти то, что нужно

https://www.mql5.com/ru/code/10236

//+------------------------------------------------------------------+
//|                                                    i`lbeback.mq4 |
//|                                Copyright ? 2011, AM2 && Tiburond |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright ? 2011, AM2 && Tiburond"
#property link      "http://www.forexsystems.biz"

#define MAGIC  20110406

extern int StopLoss    = 1300;   //???????? ??????
extern int StartHour   = 21;     //??? ?????? ????????(???????????? ?????)
extern int Distance    = 250;    //?????????? ?? ???? ??? ????????? ??????
extern int Step        = 50;     //??? ????????? ???????
extern int Count       = 4;      //?????????? ??????????????? ???????
extern int Expiration  = 4;      //????? ????????? ??????
extern double Lots     = 1;      //???
extern bool MM         = true;   //?????????? ???????????????
extern double TSP      = 5;      //????
extern bool BU         = true;   //?????????? ?????? ??????? ? ????????? ? ??????? ???
extern int BUHour      = 2;      //??? ????? ??????? ??????? ??????? ? ?????????

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
   int b=0,s=0,res;
   datetime expiration = TimeCurrent()+3600*Expiration;
   double BuyPrice=fND(Open[0]-Distance*Point);
   double SellPrice=fND(Open[0]+Distance*Point);  
   for (int i=OrdersTotal()-1;i>=0;i--)
     {
      if (OrderSelect(i, SELECT_BY_POS))
        {  
         if (OrderSymbol()!=Symbol() || OrderMagicNumber()!=MAGIC) continue;
         if (OrderType()==OP_BUYLIMIT) b++;
         if (OrderType()==OP_SELLLIMIT) s++;
        }  
     }
   if (Hour()>BUHour && Hour()<StartHour && AllProfit()>0) ClosePositions();
   if (Hour()>BUHour && DayOfWeek() == 5) ClosePositions();  
   if (Hour()==StartHour && b<1 && DayOfWeek() != 5)
   for(i=1;i<=Count;i++)
    {
     {              
      res=OrderSend(Symbol(),OP_BUYLIMIT,fLots(),fND(Ask-(Distance*Point+i*Step*Point)),3,fND(BuyPrice-StopLoss*Point),fND(Open[0]),"",MAGIC,expiration,Blue);      
      Sleep(3000);
      if(res<0)
         {
            Print("??????: ",GetLastError());
         } else {
            RefreshRates();
         }    
     }
    }
        
   if (Hour()==StartHour && s<1 && DayOfWeek() != 5)
   for(i=1;i<=Count;i++)
    {  
     {              
      res=OrderSend(Symbol(),OP_SELLLIMIT,fLots(),fND(Bid+(Distance*Point+i*Step*Point)),3,fND(SellPrice+StopLoss*Point),fND(Open[0]),"",MAGIC,expiration,Red );
      Sleep(3000);
      if(res<0)
         {
            Print("??????: ",GetLastError());
         } else {
            RefreshRates();
         }    
     }
    }    
//----  
   return(0);
  }
//+------------------------------------------------------------------+
double fND(double d, int n=-1)
  {  
   if (n<0) return(NormalizeDouble(d, Digits));
   return(NormalizeDouble(d, n));
  }
//+------------------------------------------------------------------+
double fLots()
  {
   double lot=Lots;
   double  lot_min =MarketInfo( Symbol(), MODE_MINLOT  );
   double  lot_max =MarketInfo( Symbol(), MODE_MAXLOT  );
   if (MM)
     {
      double  lot_step =MarketInfo( Symbol(), MODE_LOTSTEP );
      double  lotcost =MarketInfo( Symbol(), MODE_TICKVALUE );      
      double  dollarsPerPip=0.0;

      lot = AccountFreeMargin()*TSP/100.0;
      dollarsPerPip=lot/StopLoss;
      lot=fND(dollarsPerPip/lotcost, 2);      
      lot=fND(lot/lot_step, 0) * lot_step;
     }
   if (lot<lot_min) lot=lot_min;
   if (lot>lot_max) lot=lot_max;
   return(lot);
  }
//+------------------------------------------------------------------+
void ClosePositions()
  {
   if(BU)
   for (int i=OrdersTotal()-1;i>=0;i--)
    {
      OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() == Symbol())
       {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC)
          {
            if (OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, 3, Blue);
            if (OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), Ask, 3, Red);
          }
         Sleep(1000);
      }
    }
  }
//+------------------------------------------------------------------+
double AllProfit()
  {
   double Profit = 0;
   for (int i=OrdersTotal()-1;i>=0;i--)
    {
      OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() != Symbol() || OrderMagicNumber() != MAGIC) continue;
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC)
         if (OrderType() == OP_BUY || OrderType() == OP_SELL) Profit += OrderProfit();
    }
   return (Profit);
  }
//+------------------------------------------------------------------+


Прошу помочь внести правки. Данный советник не закрывает открытые ордера в принудительном порядке. Хотелось бы, чтобы наряду с временем установления лимиток можно было бы устанавливать также время их принудительного закрытия. 
Для оптимизации нужны ТП и тралл. Тралл, чтобы все лимитки по-немногу, но собирали ночной шум.

Внес удаление ордеров, по времени, выставление стопов и трал(взял здесь https://www.mql5.com/ru/code/32662, там же объяснения).

Trailing 2SL
Trailing 2SL
  • www.mql5.com
Трал с двумя уровнями стопа. И с установкой ТП
Файлы:
Limit.mq4  25 kb
 
Как узнать id
 
Анна Калмыкова #:
Как узнать id
ИД чего?
 
Как снять деньги.
 
Снять откуда?
 
Помогите написать советник торговый робот. Первый лот бай 0,01 или меньше. Если два пункта взял то закрылся, снова бай 0,01 два пункта. Если нет то лот всегда удваивается и идет наоборот селл 0,02 на два или 3 пункта взависимости от правил торговли за пункт.и закрылся. Если не взял то бай 0,04 и закрылся, если не взял 0,08 и так до восьми раз, т.е до 0,128 лот. И всегда меняем направление. Если взял , то снова 0,01. ***
 
Пишите ли вы платно советники и без обсуждения на форуме?
 
Lydvik-kaskad #:
Пишите ли вы платно советники и без обсуждения на форуме?

Платно пишут в сервисе Фриланс. Перейдите по ссылке, прочтите справочные материалы.

Торговые приложения для MetaTrader 5 на заказ
Торговые приложения для MetaTrader 5 на заказ
  • 2021.10.02
  • www.mql5.com
Самый большой фриланс c разработчиками программ на MQL5
 

Здравствуйте, помогите пожалуйста.

Нужен советник, который будет искать и показывать на графике ситуации как на скринах.

В расчетах используются обычный параболик SAR и обычный канал линейной регрессии.

Индикатор показывает искомые ситуации за последние 1000 баров.

Нисходящие волны параболика
Индикатор высчитывает параметры после смены параболика.
Для расчета берутся две волны параболика  следующие одна за другой, 
в данном случае нисходящие волны (точки над ценой).
1) У каждой волны берется самая низшая точка, у волны 1- точка А, у волны 2- точка Б.
2) Уровень точки Б должен быть выше уровня точки А.
3) Эти точки соединяются каналом регрессии и канал должен быть направлен вниз - это 
 искомая формация.

Восходящие волны параболика
Индикатор высчитывает параметры после смены параболика.
Для расчета берутся две волны параболика  следующие одна за другой, 
в данном случае восходящие волны (точки под ценой).
1) У каждой волны берется самая высшая точка, у волны 1- точка А, у волны 2- точка Б.
2) Уровень точки Б должен быть ниже уровня точки А.
3) Эти точки соединяются каналом регрессии и канал должен быть направлен вверх - это 

 искомая формация.


Буду очень признателен. Могу поделится входами.

Файлы:
yxc3e4dpz2.png  64 kb
4cprtquce6.png  62 kb
 
var58 #:

Буду очень признателен. Могу поделится входами.

зачем так издеваться над ParabolicSAR - он и так отлично, показывает входы и выходы.

Снимок экрана 2021-10-05 114315  

Причина обращения: