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

 
Volodymyr Zubov #:

Всегда нужно думать, что вырубят электричество и тд...

Советник из истории в любой момент должен сконфигуривать и работать.

Это когда робот является реально работающей торговой системой. Новичкам это делать рано. Им прописать основной алгоритм и протестировать торговую систему, для начала.

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

где  openPrice пробую выразить так, однако выдает ошибку:

possible loss of data due to type conversion


double openPrice()
  {
   double OP = dMA;
   if (GetLotSize()>LotControl) OP = dMA + Deviation * _Point;
   return(OP);
  }
 
Nerd Trader #:

Сделал чтобы после нажатия на кнопку за курсором мыши следовала линия через отрисовку и удаление

Может есть другой способ? А то кулер процессора начинает шуметь :)

Прекрасно. Удаляем, создаём. Создаём, удаляем. И почему проц. шумит... :)

Но мы не откроем документацию и не прочтём о таких прекрасных функциях, как ObjectSetInteger и ObjectSetDouble ...

 
Nerd Trader #:

Сделал чтобы после нажатия на кнопку за курсором мыши следовала линия через отрисовку и удаление

Может есть другой способ? А то кулер процессора начинает шуметь :)

void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam)
  {    
   if(ObjectGetInteger(0,"button_bs",OBJPROP_STATE))
     {
      int      x     =(int)lparam;
      int      y     =(int)dparam;
      datetime dt    =0;
      double   price =0;
      int      window=0;
     
      if(id == CHARTEVENT_MOUSE_MOVE)
        {
         if(ChartXYToTimePrice(0,x,y,window,dt,price))
           {
            if(ObjectMove(0,"H Line",window,dt,price))
              {
               ChartRedraw(0);
              }
           }
        }
     }
   else
     {
      ObjectDelete(0,"H Line");
     }
  }
 
MakarFX #:
ObjectMove вроде смещает, а не задаёт новые координаты?... Хоть в документации написано, что изменяет...
 
MakarFX #:

то что надо, спасибо.


Mihail Matkovskij #:

Прекрасно. Удаляем, создаём. Создаём, удаляем. И почему проц. шумит... :)

Но мы не откроем документацию и не прочтём о таких прекрасных функциях, как ObjectSetInteger и ObjectSetDouble ...

Я прекрасно понимаю почему проц грузится умник. Когда завезут в *.chm поиск от гугла, тогда и будешь мне писать что я открываю и куда не читаю.

 
Nerd Trader #:

то что надо, спасибо.


Я прекрасно понимаю почему проц грузится умник. Когда завезут в *.chm поиск от гугла, тогда и будешь мне писать что я открываю и куда не читаю.

Какой поиск Гугла? :)

https://www.mql5.com/ru/docs/objects

Документация по MQL5: Графические объекты
Документация по MQL5: Графические объекты
  • www.mql5.com
Графические объекты - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Убрал создание линии из события передвижения мыши, тем не менее лучше не стало - кулер шумит, наверное так и должно быть.
   if(ObjectGetInteger(0,"button_bs",OBJPROP_STATE)){
      int      x     =(int)lparam;
      int      y     =(int)dparam;
      datetime dt    =0;
      double   price =0;
      int      window=0;

      if(ChartXYToTimePrice(0,x,y,window,dt,price)){
        ObjectCreate(0,"H Line",OBJ_HLINE,window,dt,price);
        if(id == CHARTEVENT_MOUSE_MOVE)
          if(ObjectMove(0,"H Line",window,dt,price))
            ChartRedraw(0);
      }
      else{
        ObjectDelete(0,"H Line");
      }
  }
 
Nerd Trader #:
Убрал создание линии из события передвижения мыши, тем не менее лучше не стало - кулер шумит, наверное так и должно быть.

Тогда, чистка от пыли, смазка подшипников, замена термопасты... :)

 
Mihail Matkovskij #:

Тогда, чистка от пыли, смазка подшипников, замена термопасты... :)

А если серьезно, то ChartRedraw вызывается чаще чем 24 раза в секунду...

И ObjectCreate! Ужас... 

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