Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2175

 
Tenimagalon #:
Я в свое время баловался сетками. Мне человечек такие функции прописывал. Что вообразить сложно. И подтягиваний сетки. И стопы для всех ордеров. И закрытие частично по шагу каждого ордера открытого в сетке. Что я только мог вообразить. Бесполезно. 

а что оказалось - полезным?

 
законопослушный гражданин #:

а что оказалось - полезным?

Полезным всмысле функции в сетках. Или полезным вообще в торговле.? 

Если речь про функции в сеточниках. Да давно было дело точно уже и не помню. Как по мне восстановление закрытых ордеров в сетке. Весьма во флете может помочь. Но и тоже смотря как закрываются ордера. Если в нутри сетки одно,  А если допустим у меня функция была. Закрытие всех ордеров в сетки по тп или ст в пунктах от сетки. Это уже другое. Если у вас доп 5 ордеров бая. И тп 10 п от последнего ордера в сетке. Это одно.  А если у вас 5 ордеров допустим через 10 п а тп каждого 5.тобиж ордер закрывается в сетке это уже иной расклад. 
  Затем неплохая подтягивание ордеров. Допустим рынок пошел вверх. Закрыл вам ордера бай если они внутренние. То бот на из места вставляет ордера сел. 
   Да вообщем трудно сказать. Эффективность функции той или иной зависит от правильности ее применения. И при каких условиях.  

Одно могу сказать если и баловаться сеточниками. То в русле кореляции валют. 
Тобиж при кореляции возникает одна закономерность цена не выходит за определенные диапазон. И можно выжидать просадки и ждать прибыльную сторону. Но на это у меня уже не хватило средств. Так что как то так
 
Привет. Подскажите пожалуйста с какой функцией можно узнать размер лота7
 
Rustam Bikbulatov #:
Привет. Подскажите пожалуйста с какой функцией можно узнать размер лота7

https://www.mql5.com/ru/docs/trading/ordergetdouble

Документация по MQL5: Торговые функции / OrderGetDouble
Документация по MQL5: Торговые функции / OrderGetDouble
  • www.mql5.com
OrderGetDouble - Торговые функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

МТ4, MQL4. Значения линий канала линейной регрессии правильные, если он статичен.

Но если добавить изменения координат, то значения не понятно какие. Хотя сам объект смещается, всё нормально. Что делаю не так? Нужны правильные значения смещающегося объекта.

Файлы:
ns9fkz.png  34 kb
d7i0f62.png  42 kb
 
AleksJan #:

МТ4, MQL4. Значения линий канала линейной регрессии правильные, если он статичен.

Но если добавить изменения координат, то значения не понятно какие. Хотя сам объект смещается, всё нормально. Что делаю не так? Нужны правильные значения смещающегося объекта.

   if(ObjectFind(0,"REGRESSION")!=0)
      ObjectCreate(0,"REGRESSION",OBJ_REGRESSION,0,Time[10],Time[0]);
   else
     {
      ObjectSetInteger(0,"REGRESSION",OBJPROP_TIME1,Time[10]);
      ObjectSetInteger(0,"REGRESSION",OBJPROP_TIME2,Time[0]);
     }
   double c=ObjectGetValueByTime(0,"REGRESSION",Time[10],0);
   double h=ObjectGetValueByTime(0,"REGRESSION",Time[10],1);
   double l=ObjectGetValueByTime(0,"REGRESSION",Time[10],2);
   Comment(DoubleToString(c,Digits),"\n",DoubleToString(h,Digits),"\n",DoubleToString(l,Digits));
 

здравствуйте всем!

у меня открытие сетки происходит по условию:

if(CountOrders()==0)
   {
    if(Bid > iHigh(NULL,PERIOD_D1,1))  //условие для покупки 
    {
     for(x=1;x<=MAX_Lines;x++)  // считает сколько открыто линий сетки отложенными ордерами, чтобы не превышало указанное в исходных параметрах MAX_Lines
     {                                                                                                                                                                                                                                                     //сек/мин/ч/дн/
      if (OrderSend(Symbol(),OP_BUYLIMIT,lot,Ask-((Delta1-Delta)+Delta*x)*Point,slippage,Ask-((Delta1+Delta*(MAX_Lines-1))+SL)*Point,Ask+TP*Point,"",magic,TimeCurrent()+60*60*24*DN,Blue))
      {Print("Open BuyLimit: ",_Symbol);}
      else {Print("Error Open BuyLimit: ",_Symbol," / ",GetLastError());}
                   
     }
    }
           
    if(Ask < iLow(NULL,PERIOD_D1,1))//условие для продажи 
    {
     for(x=1;x<=MAX_Lines;x++)
     {
                                                                                                                                                                       //сек/мин/ч/дн/    
      if (OrderSend(Symbol(),OP_SELLLIMIT,lot,Bid+((Delta1-Delta)+Delta*x)*Point,slippage,Bid+((Delta1+Delta*(MAX_Lines-1))+SL)*Point,Bid-TP*Point,"",magic,TimeCurrent()+60*60*24*DN,Red))
      {Print("Open SellLimit: ",_Symbol);}
      else {Print("Error Open SellLimit: ",_Symbol," / ",GetLastError());}  
     }
    }
   }

лимитки живут сутки. Сегодня заметил, после закрытия лимиток, новые лимитки открываются до выполнения условия: if(Bid > iHigh(NULL,PERIOD_D1,1))

выглядит так:


объясните пожалуйста почему так происходит? Возможно ли Хай вчерашнего дня считается в соответствие с жизнью лимитки?

такая картина с лимитками, которые истекают рано утром, 2:00 -4:00

 
законопослушный гражданин #:

здравствуйте всем!

у меня открытие сетки происходит по условию:

лимитки живут сутки. Сегодня заметил, после закрытия лимиток, новые лимитки открываются до выполнения условия: if(Bid > iHigh(NULL,PERIOD_D1,1))

выглядит так:


объясните пожалуйста почему так происходит? Возможно ли Хай вчерашнего дня считается в соответствие с жизнью лимитки?

такая картина с лимитками, которые истекают рано утром, 2:00 -4:00

Зафиксируй в начале дня максимум/минимум предыдущего дня и по ним работай.

 
Tretyakov Rostyslav #:

Зафиксируй в начале дня максимум/минимум предыдущего дня и по ним работай.

не понял каким образом? по времени?

разве это условие:  iHigh(NULL,PERIOD_D1,1) - не константа само по себе?

 
законопослушный гражданин #:

не понял каким образом? по времени?

разве это условие:  iHigh(NULL,PERIOD_D1,1) - не константа само по себе?

Как вариант попробуй

//--- global
datetime newbar=-1;
double H,L;
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(newbar!=iTime(NULL,PERIOD_D1,0))
     {
      H=iHigh(NULL,PERIOD_D1,1);
      L=iLow(NULL,PERIOD_D1,1);
      newbar=iTime(NULL,PERIOD_D1,0);
     }
   if(CountOrders()==0)
      {
       if(Bid > H)  //условие для покупки 
       {
        for(x=1;x<=MAX_Lines;x++)  // считает сколько открыто линий сетки отложенными ордерами, чтобы не превышало указанное в исходных параметрах MAX_Lines
        {                                                                                                                                                                                                                                                     //сек/мин/ч/дн/
         if (OrderSend(Symbol(),OP_BUYLIMIT,lot,Ask-((Delta1-Delta)+Delta*x)*Point,slippage,Ask-((Delta1+Delta*(MAX_Lines-1))+SL)*Point,Ask+TP*Point,"",magic,TimeCurrent()+60*60*24*DN,Blue))
         {Print("Open BuyLimit: ",_Symbol);}
         else {Print("Error Open BuyLimit: ",_Symbol," / ",GetLastError());}
                      
        }
       }
              
       if(Ask < L)//условие для продажи 
       {
        for(x=1;x<=MAX_Lines;x++)
        {
                                                                                                                                                                          //сек/мин/ч/дн/    
         if (OrderSend(Symbol(),OP_SELLLIMIT,lot,Bid+((Delta1-Delta)+Delta*x)*Point,slippage,Bid+((Delta1+Delta*(MAX_Lines-1))+SL)*Point,Bid-TP*Point,"",magic,TimeCurrent()+60*60*24*DN,Red))
         {Print("Open SellLimit: ",_Symbol);}
         else {Print("Error Open SellLimit: ",_Symbol," / ",GetLastError());}  
        }
       }
  }
Причина обращения: