- use /* ... */ to comment out portions of code and recompile until you isolate where.
Print(DoubleToStr(Ticket,3); 1 2 2 ?
for(int i=0;i<=OrdersTotal();i++) { k=OrderSelect(i-1,SELECT_BY_POS);
You are OrderSelect'ing position -1 which is not acceptable.
if(OrderType()==0) cls=Ask; else cls=Bid; bool Ans=OrderDelete(Ticket);
you can't delete an open order ( type 0 is OP_BUY ) and if you are closing orders your loop needs to count down or you will miss orders . . .
Check return values from any functions that provide them and use them to help you, if an OrderDelete returns false report the fact to the log . . . with the relevant error
you can't delete an open order ( type 0 is OP_BUY ) and if you are closing orders your loop needs to count down or you will miss orders . . .
Check return values from any functions that provide them and use them to help you, if an OrderDelete returns false report the fact to the log . . . with the relevant error
Good points about the counting down and return values.
The OrderType is less certain. The comment says he wants to delete pending orders and the code does nothing useful with the OrderType test!
Clearly a test is needed for pending orders, and if anyone suggests using an OrderType > something test they will be sent to the naughty step.
if anyone suggests using an OrderType > something test they will be sent to the naughty step.
bool k; for(int i=0;i<=OrdersTotal();i++) { k=OrderSelect(i,SELECT_BY_POS,MODE_TRADES); int Ticket=OrderTicket(); Print(DoubleToStr(Ticket,0)); bool Ans=OrderDelete(Ticket); }
Thank you everyone for their useful tips. The code given below works good in deleting pending orders.
Until something doesn't work and then you have no idea what happened . . . . check the return values from the OrderSelect and from the OrderDelete . . . if they fail report this fact and the error to the log.
And it will not work when you need to delete multiple orders . . . . you MUST count down not up in the loop . . .
And it will not only delete pending orders . . . it will delete any order . . . . and it will try to select an order that doesn't exist . . .
Until something doesn't work and then you have no idea what happened . . . . check the return values from the OrderSelect and from the OrderDelete . . . if they fail report this fact and the error to the log.
And it will not work when you need to delete multiple orders . . . . you MUST count down not up in the loop . . .
And it will not only delete pending orders . . . it will delete any order . . . . and it will try to select an order that doesn't exist . . .
As I told you I am new one, can you help me with this code.
I am trying an EA. While closing or removing the EA, it should delete all pending orders and close all orders opened by it.
Can you give me a code for this?
Can you give me a code for this?
Yes I can . . . but I'm not going to. If you want to learn I'm happy to help, if you want someone to write code for you then you can simply pay someone to do it. Click here: Jobs
What I have mentioned as problems are very common problems, there are many many posts about these issues, do a little reading and you will understand the problems . . . and then be able to fix them, in the process you will have learned something. Counting down Checking return values
As I told you I am new one, can you help me with this code.
I am trying an EA. While closing or removing the EA, it should delete all pending orders and close all orders opened by it.
Can you give me a code for this?
No One can
The EA can only close the trades the moments it is working on the chart
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
I am getting such an error
'\end_of_program' - unbalanced left parenthesis ~~~~~~ Close_Orders.mq4 (53, 1)
Can any one help me?