Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 793

 
Vladimir Karputov:

п. 5. :)


  • Не нужно алертов - делайте Print().
  • Необходимо отсеивать события по:
    • lparam 
    • dparam 
    • и sparam 

Отсеить-то я отсею. Но мой вопрос о другом.
Я пытаюсь понять (голова ж не только, чтоб шапку носить, так ведь?) правильно ли работает эта функция. Так и должно быть или что-то не так?

 
User_mt5:

Пытаюсь получить вызов OnChartEvent по клику мыши на объекте.

...


Вот то, что передаётся для "CHARTEVENT_OBJECT_CLICK"

Событие

Значение параметра id

Значение параметра lparam

Значение параметра dparam

Значение параметра  sparam

Событие щелчка мыши на графическом объекте

CHARTEVENT_OBJECT_CLICK

X координата

Y координата

Имя графического объекта, на котором произошло событие


То есть нужно ловить id==CHARTEVENT_OBJECT_CLICK и sparam==имени Вашего объекта.
 
Vladimir Karputov:

Вот то, что передаётся для "CHARTEVENT_OBJECT_CLICK"

Событие

Значение параметра id

Значение параметра lparam

Значение параметра dparam

Значение параметра  sparam

Событие щелчка мыши на графическом объекте

CHARTEVENT_OBJECT_CLICK

X координата

Y координата

Имя графического объекта, на котором произошло событие


То есть нужно ловить id==CHARTEVENT_OBJECT_CLICK и sparam==имени Вашего объекта.

Вот я поначалу тоже так подумал. Но стринг выдаёт имя объекта, на котором был клик. Т.е. по-видимому, это всё же выходной параметр.
Или я ошибаюсь?

 
User_mt5:

Вот я поначалу тоже так подумал. Но стринг выдаёт имя объекта, на котором был клик. Т.е. по-видимому, это всё же выходной параметр.
Или я ошибаюсь?


Вам нужно словить клик по объекту? Я выше подсказал как.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Вопросы от начинающих MQL5 MT5 MetaTrader 5

Vladimir Karputov, 2017.11.07 13:38


Вот то, что передаётся для "CHARTEVENT_OBJECT_CLICK"

Событие

Значение параметра id

Значение параметра lparam

Значение параметра dparam

Значение параметра  sparam

Событие щелчка мыши на графическом объекте

CHARTEVENT_OBJECT_CLICK

X координата

Y координата

Имя графического объекта, на котором произошло событие


То есть нужно ловить id==CHARTEVENT_OBJECT_CLICK и sparam==имени Вашего объекта.

 

Ага, ага, я, кажется, въехал.
Сама функция вызывается по любому событию (и мышь и клава), а внутри нужно отфильтровать нужное событие.
Спасибо.

 
User_mt5:

Ага, ага, я, кажется, въехал.
Функция вызывается по любому событию (и мышь и клава), а внутри нужно отфильтровать нужное событие.
Спасибо.


Событий (видов событий) несколько: клик, создание, изменение свойств ... То есть сначала нужно отсеивать события по ID, потом по sparam.


 
Vladimir Karputov:

Событий (видов событий) несколько: клик, создание, изменение свойств ... То есть сначала нужно отсеивать события по ID, потом по sparam.


Да, спасибо. Я почему-то подумал, что отсеять можно ещё на уровне вызова ф-ии. И хотел отсеять всё по id, и подставил id в вызов ф-ии.
"Ну, сумасшедший, что возьмёшь!"))
А внутри, конечно, всё легко. Спасибо ещё раз.

 

Для маленького вопроса новую тему не хочу создавать, может новичкам тоже будет полезно узнать как и мне.

В котором часу появляется возможность подать новые заявки на фриланс работу? 

Если вчера все 10 я уже использовал. 

 

Может кто подскажет в какую сторону копать? В Excel есть новые функции «Функции прогнозирования» и т.д.- например «ПРЕДСКАЗ.ETS», «ПРЕДСКАЗ.ЕTS.ДОВИНТЕРВАЛ».

Есть, что-либо похожее в MQL5? Т.е. на входе массив данных – на выходе спрогнозированный массив.

Чтобы можно было построить новую линию, как на скрине, белая линия в нижнем индикаторе.

 

Друзья, помогите чайнику. Замысел следующий: При достижении переменной "Ind" заданного уровня переходим к ожиданию смены направления "Value" при этом во время ожидания "Ind" больше не сверяем.


   if(Ind[0]<=-0.7)
     {
      while(Value[3]>Value[2]<Value[1])
        {
         if(CopyBuffer(InpInd2_Handle,1,SignalBar,3,Value)<=0)
           {
            Recount=true;
            return;
           }
        }
      if(BuyPosOpen) BUY_Open=true;
     }


Как правильно сделать???

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