Инфа о пополнении и снятии

 

Привет всем! Может кто подсказать возможно ли посредством MQL4 считать информацию о пополнении и снятии со счета?

И еще не могу сообразить как высчитать среднее время торговли по счету... 

Помогите, пожалуйста!

 
Maksim Neimerik:
Привет всем! Может кто подсказать возможно ли посредством MQL4 считать информацию о пополнении и снятии со счета?
if (OrderType() == 6)
{
        // балансовая операция
}

Недокументировано, но работает.

 
Ihor Herasko:

Недокументировано, но работает.

Не понял... если тип ордера селл стоп то... что тогда? Можете поподробнее?

 
Maksim Neimerik:

Не понял... если тип ордера селл стоп то... что тогда? Можете поподробнее?

Прощу прощения. Не 5, а 6.

 
Ihor Herasko:

Прощу прощения. Не 5, а 6.

Тоесть, при переборе ордеров если мы находим ордер с типом 6 то это значит что было либо пополнение либо снятие? И тогда как взять данные оттуда, OrderProfit() что ли?

 
Maksim Neimerik:

Тоесть, при переборе ордеров если мы находим ордер с типом 6 то это значит что было либо пополнение либо снятие? И тогда как взять данные оттуда, OrderProfit() что ли?

Да. Только проходить по истории счета, не по рабочим ордерам.

 
Ihor Herasko:

Да. Только проходить по истории счета, не по рабочим ордерам.

Понял, спасибо! А по среднем времени удержания ордеров можете что-нибудь подсказать?

 
Maksim Neimerik:

Понял, спасибо! А по среднем времени удержания ордеров можете что-нибудь подсказать?

Что именно? Как вычислить или что-то другое?

 
Ihor Herasko:

Что именно? Как вычислить или что-то другое?

да, как вычислить среднее время удержания ордеров?

 
Maksim Neimerik:

да, как вычислить среднее время удержания ордеров?

Так же, как и простое среднее:

  1. Взять разницу времени между закрытием ордера и его открытием.
  2. Сложить разности для всех ордеров.
  3. Разделить полученную сумму на количество найденных ордеров.
 
Maksim Neimerik:

да, как вычислить среднее время удержания ордеров?

просуммировать ( iBarShift(_Symbol,PERIOD_M1,OrderCloseTime())-iBarShift(_Symbol,PERIOD_M1,OrderOpenTime()) ) * 60

и поделить на кол-во ордеров

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