Good evening.
In my first EA I used the OrdersTotal() function to check whether there are open orders or not:
if(OrdersTotal()==0) DoTrade = 1;
if(DoTrade == 1 && (TipoOperazione==OP_BUY || TipoOperazione==OP_SELL))
{
[code to open 1 order]
}
But when testing it I found out that after the first order is closed OrdersTotal() still returns 1 and no more orders are sent, as you can see in the attached pics.
It looks like I solved the problem substituing the original OrdersTotal() function with this one:
int OpenOrdersNumber()
{
int number = 0;
for(int i = 0; i<OrdersTotal();i++)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==false) break;
if(OrderCloseTime() == 0) number++;
}
return(number);
}
But is it right OrdersTotal() counts also closed orders?
your solution also include OrdersTotal() !
But is it right OrdersTotal() counts also closed orders?
No. Returns market and pending orders count.
It's OrderHistoryTotal().
your solution also include OrdersTotal() !
But is it right OrdersTotal() counts also closed orders?
No. Returns market and pending orders count.
It's OrderHistoryTotal().
Includes OrdersTotal(), but I also check that close time is different from 0. Otherwise, as you can see in the pictures, OrdersTotal() returns 1 even when there are no open orders.
So, if as i thought it is not right that OrdersTotal() counts closed orders, what problem is it? And how can I solve it?
Note that when used live, OrdersTotal() works fine: it returns ONLY the number of open orders. It's only in Strategy Tester that I get this problem.
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
Good evening.
In my first EA I used the OrdersTotal() function to check whether there are open orders or not:
if(OrdersTotal()==0) DoTrade = 1;
if(DoTrade == 1 && (TipoOperazione==OP_BUY || TipoOperazione==OP_SELL))
{
[code to open 1 order]
}
But when testing it I found out that after the first order is closed OrdersTotal() still returns 1 and no more orders are sent, as you can see in the attached pics.
It looks like I solved the problem substituing the original OrdersTotal() function with this one:
int OpenOrdersNumber()
{
int number = 0;
for(int i = 0; i<OrdersTotal();i++)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==false) break;
if(OrderCloseTime() == 0) number++;
}
return(number);
}
But is it right OrdersTotal() counts also closed orders?