Как узнать последнее действия с балансом —
списание или зачисление
Особенно актуально этот вопрос стоит при программировании советников для бинарных опционов, где прибыль последнего ордера отображается не так, как в форексе.
В форексе прибыль по закрытому ордеру указывается кв графе Прибыль, а в бинарных опционах, как правило, Прибыль закрытого ордера равна 0, а следующая строка показывает изменение с балансом — зачисление или списание по сработавшему ордеру. На скрине привел пример:
Так вот, чтобы узнать, какое было последнее изменение баланса — списание или зачисление и на какую сумму, воспользуемся одной не задокументированной возможностью MetaEditor’а: OrderType()==6, что и показывает изменение баланса.
Функция:
double isLastPosBalance()
{
datetime t;
int i,j=-1,k=OrdersHistoryTotal();
for(i=0; i<k; i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderType()==6)
{
if(t<OrderCloseTime())
{
t=OrderCloseTime();
j=i;
}
}
}
}
if(OrderSelect(j,SELECT_BY_POS,MODE_HISTORY))
{
return(OrderProfit());
}
return(0);
}
Желаю успехов и оставляйте комментарии.