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

 
Tapochun:
Все зависит от логики индикатора. Чаще всего - да, в функции OnCalculate().
"Функция OnCalculate() вызывается только в пользовательских индикаторах при необходимости произвести расчет значений индикатора по событию Calculate. Обычно это происходит при поступлении нового тика по символу" - как тогда сделать, что бы срабатывал расчет только один раз при появлении свечи. В mql4 делалась какая та проверка помоему.
 
first_may:
"Функция OnCalculate() вызывается только в пользовательских индикаторах при необходимости произвести расчет значений индикатора по событию Calculate. Обычно это происходит при поступлении нового тика по символу" - как тогда сделать, что бы срабатывал расчет только один раз при появлении свечи. В mql4 делалась какая та проверка помоему.
Самое простое, если не первый тик (prev_calculated != 0) и rates_total > prev_calculated.
 
Tapochun:
Самое простое, если не первый тик (prev_calculated != 0) и rates_total > prev_calculated.
Да уж :). Наверное надо найти пример по пересечению двух экспоненциальных скользящих средних (где то видел) и переделать его.
 
first_may:
Да уж :). Наверное надо найти пример по пересечению двух экспоненциальных скользящих средних (где то видел) и переделать его.
Когда начинаешь - лучше всегда делать по примерам! Отдельно строки кода Вам вряд ли помогут. Удачи!
 

Как перехватить событие закрытия сделки на текущем тике? Стандартных средств нет? То есть при открытии сделки надо писать что-то типа:а далее на каждом тике проверять:

//Инициализация
int totalOrders=0;
...
//Открытие новой сделки
int ticket = OrderSend(....)
if(ticket > 0)
    totalOrders++;

а далее на каждом тике проверять:

if(totalOrders != OrdersTotal())
    //Обработка события закрытия сделки
 
gammaray:

Как перехватить событие закрытия сделки на текущем тике? Стандартных средств нет? То есть при открытии сделки надо писать что-то типа:а далее на каждом тике проверять:

а далее на каждом тике проверять:

Вам нужно сравнивать количество отслеживаемых позиций на прошлом тике с количеством на текущем. Если на текущем стало меньше - сохраняем (запоминаем) текущее значение отслеживаемых позиций как "прошлое" и обрабатываем факт закрытия.
 
gammaray:

Как перехватить событие закрытия сделки на текущем тике? Стандартных средств нет? То есть при открытии сделки надо писать что-то типа:а далее на каждом тике проверять:

а далее на каждом тике проверять:

Я не чего не понял.  Значение какое Вы хотите получить?

а то что вы написали я читаю так 

Открытие ордера;

если ордер открылся то

ТоталОрдер =  ТоталОрдер+1;

)  по умолчанию ТоталОрдер =0, но с каждым открытием ордера значение будет увеличиваться , через 10 открытий (значение будет ровно 10 )  счетчик всех когда либо открытых позиции (нет проверки по типу, Магику и символу = он будет плюсовать абсолютно все открытые ордера)

а след. условие выглядит так

если  ТоталОрдер не равен OrdersTotal {}

 
Всем Добрый день ! Обращаюсь к знающим . Нужен простой советник , задачей которого будет изменять стопы на сработанных ордерах по LOW или  HIGH свечей каждый период ТФ . К сожалению сам ,, a table ''. Мож, где уже выкладывали, не нашёл. А что было -  с добавками которые захламляют.
 
 
mefos:
Всем Добрый день ! Обращаюсь к знающим . Нужен простой советник , задачей которого будет изменять стопы на сработанных ордерах по LOW или  HIGH свечей каждый период ТФ . К сожалению сам ,, a table ''. Мож, где уже выкладывали, не нашёл. А что было -  с добавками которые захламляют.
 
Это вам, батенька, в стол заказов. Тут только советуют и помогают с проблемами кода.
 
Ivan Vorontsov:
Это вам, батенька, в стол заказов. Тут только советуют и помогают с проблемами кода.
+++
Причина обращения: