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

Aleksey Vyazmikin:

У меня такая ситуация - нужно получать значение индикатора при открытии бара - советник торгует при появлении нового тика, но беда в том, что индикатор может успеть поменять свое значение.

Поэтому, хочу ловить момент между окончанием временного периода и появлением нового тика - как это реализовать наименее затратно по вычислительным ресурсам?

Слышал, что можно как то задействовать событие в стакане - они чаще бывают тиков, но как это сделать?

Открытие нового бара == появление нового тика. Если тика не будет, то новый бар и не появится. Придёт тик - откроется новый бар, а уж какой по времени - это зависит от того, сколько времени не было тика. Если тика не было дольше, чем секунд в баре, то этот бар будет пропущен и откроется следующий по времени за пропущенным.

В любом случае - ловите появление нового бара и считываете значение индикатора.

Artyom Trishkin:

Открытие нового бара == появление нового тика. Если тика не будет, то новый бар и не появится. Придёт тик - откроется новый бар, а уж какой по времени - это зависит от того, сколько времени не было тика. Если тика не было дольше, чем секунд в баре, то этот бар будет пропущен и откроется следующий по времени за пропущенным.

В любом случае - ловите появление нового бара и считываете значение индикатора.


Сейчас так оно и есть, но тик может быть "сильным" и сбивать значение индикатора на несколько пунктов, вот я и думаю, как от этого избавится.

Aleksey Vyazmikin:

Сейчас так оно и есть, но тик может быть "сильным" и сбивать значение индикатора на несколько пунктов, вот я и думаю, как от этого избавится.

Берите значение индикатора с первого бара, а не с текущего-нулевого.

Artyom Trishkin:

Берите значение индикатора с первого бара, а не с текущего-нулевого.


Хитрый какой - так любой может :)

Впрочем, возможно это будет решение, спасибо, подумаю над этим ещё раз.

Можно ли вызывать MqlTick и получать ask и bid,  во включаемом классе?

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

forexman77:

Можно ли вызывать MqlTick и получать ask и bid,  во включаемом классе?

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

А в чём сомнение???

Alexey Viktorov:

А в чём сомнение???


Пробую прописать:

MqlTradeRequest   mrequest;   
MqlTradeResult    mresult;         
double ask=latest_price.ask;

ошибка выходит

'=' - illegal assignment use    trade.mqh       39      14
forexman77:

Пробую прописать:

ошибка выходит

Разместил внутри функции, ошибка исчезла.
double ask=latest_price.ask;
forexman77:
Разместил внутри функции, ошибка исчезла.

Вот видишь как полезно писать на форум:)))

Стоило только пожаловаться, так сразу ошибка испугалась и исчезла:)))

Удачи.

Alexey Viktorov:

Вот видишь как полезно писать на форум:)))

Стоило только пожаловаться, так сразу ошибка испугалась и исчезла:)))

Удачи.


Спасибо. Ну, я только еще учусь мысли на расстоянии читать)