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

 
Mihail Matkovskij #:

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

И ObjectCreate! Ужас... (дополнил)

ChartRedraw это не страшно. А вот ObjectCreatе возможно и грузит, если линия создаётся пока не отжата кнопка.

UPD
Да создаётся...

UPD
Хотя нет, не создаётся:

Print(ObjectCreate(0,"H Line",OBJ_HLINE,window,dt,price));
...
2021.12.03 23:15:50.987    USDCHF,M1: false
2021.12.03 23:15:50.977    USDCHF,M1: false
2021.12.03 23:15:50.977    USDCHF,M1: false
2021.12.03 23:15:50.967    USDCHF,M1: false
2021.12.03 23:15:50.957    USDCHF,M1: false
2021.12.03 23:15:50.957    USDCHF,M1: false
2021.12.03 23:15:50.927    USDCHF,M1: false
2021.12.03 23:15:50.907    USDCHF,M1: false
2021.12.03 23:15:50.887    USDCHF,M1: false
2021.12.03 23:15:50.887    USDCHF,M1: false
2021.12.03 23:15:50.467    USDCHF,M1: false
2021.12.03 23:15:50.417    USDCHF,M1: false
2021.12.03 23:15:50.417    USDCHF,M1: false
2021.12.03 23:15:50.417    USDCHF,M1: true
 
Nerd Trader #:
ChartRedraw это не страшно. А вот ObjectCreatе возможно и грузит, если линия создаётся пока не отжата кнопка.

Да создай при загрузке и удали при завершении работы своего приложения. И функциями ObjectSetInteger и ObjectSetDouble двигай. Как же сложно понять...

 
Mihail Matkovskij #:

Да создай при загрузке и удали при завершении работы своего приложения. И функциями ObjectSetInteger и ObjectSetDouble двигай. Как же сложно понять...

Как же сложно понять что мне нужно создать только после нажатия кнопки и удалить после отжатия.
 
Nerd Trader #:

UPD
Да создаётся...

UPD
Хотя нет, не создаётся:

Так или иначе твой проц. взорвётся у такого программиста... :)

 
Nerd Trader #:
Как же сложно понять что мне нужно создать только после нажатия кнопки и удалить после отжатия.

Можно скрыть с чарта, а потом показать.  Как правильно скрыть объект и показать, на форуме об этом было написано. Или отслеживай CHARTEVENT_OBJECT_CLICK - идеальное решение!

 
Mihail Matkovskij #:

Так или иначе твой проц. взорвётся у такого программиста... :)

Я слежу за градусником.

Mihail Matkovskij #:

Можно скрыть с чарта, а потом показать.  Как правильно скрыть объект и показать, на форуме об этом было написано.

Не... я щас придумаю по нормальному.

 
Nerd Trader #:

Я слежу за градусником.

Не... я щас придумаю по нормальному.

Дополнил предыдущее сообщение.

 
if(id==CHARTEVENT_OBJECT_CLICK){
    if(sparam=="button_bs")
      (ObjectCreate(0,"H Line",OBJ_HLINE,0,0,0));
  }

  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)){
      if(id == CHARTEVENT_MOUSE_MOVE){
        if(ObjectMove(0,"H Line",window,dt,price))
          ChartRedraw(0);
      }
    }
  }else ObjectDelete(0,"H Line");

Всё гениальное просто.

 
Nerd Trader #:

Всё гениальное просто.

Ну, где-то рядом... :)

 
Mihail Matkovskij #:

Дополнил предыдущее сообщение.

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