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

 
Aybulat:
Можно ли снять все заявки и закрыть все позиции в стакане с помощью горячих клавиш? Или может советник какой есть для этого?
Для этих целей Вам необходимо найти торговую панель, поддерживающую данный функционал, либо написать самому скрипт или эксперт, который удалял бы все ордера при нажатии на определенную комбинацию клавиш.
 

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

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

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

 
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;
Причина обращения: