You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
}
IN THE ABOVE CODE, THE "FIRST ORDER" (AS DENOTED BY MAGICNUMBER 150000), IS NOT CLOSING. DURING TRADING CONDITIONS WHERE BOTH THE ORDERS ARE ON AND FILLED, THIS CODE IS CLOSING THE SECOND ORDER (MAGICNUMBER 150001) AND IT IS ALSO MANAGING TO DELETE THE THIRD ORDER(MAGICNUMBER150002) AS THE CODE IS REQUESTING BUT THE SECOND ORDER IS BEING OVERLOOKED. THE ONLY POSSIBLE EXPLANATION I CAN COME UP WITH IS THAT THE CONDITION THAT FORCES THIS PIECE IS "IF ORDERPROFIT >=50" SO IF THAT IS NOT TRUE FOR THE FIRST ORDER, WILL IT NOT "TOUCH" THAT ONE AND CLOSE IT? BASICALLY WHAT I AM TRYING TO DO HERE IS CLOSE BOTH OPEN ORDERS AND WHEN THE SECOND ONE IS AROUND +$50, THAT MEANS THEY NET OUT TO ABOUT EVEN. I CANNOT USE ACCOUNTPROFIT AS I HAVE OTHER EA'S RUNNING INDEPENDENTLY OF THIS ONE.
COULD SOMEONE PLEASE LEND A HELPING HAND IN SUGGESTING HOW I CAN CHANGE THIS TO CLOSE BOTH OPEN ORDERS, NOT JUST THE SECOND OPEN ONE? I KNOW THIS IS PROBABLY TRIVIAL FOR SOME-I AM NOT A COMPUTER PROGRAMMER-JUST KNOW ENOUGH OF THIS STUFF TO BE DANGEROUS! :)
THANK YOU EVERYONE AS ALWAYS FOR THE WONDERFUL FORUM! DANIEL
COULD I USE THE FOLLOWING SOMEHOW?
for(i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i, SELECT_BY_POS);
int type = OrderType();
bool result = false;
switch(type)
{
//Close opened positions
case OP_BUY : result = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),Slippage,Pink);
break;
case OP_SELL : result = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),Slippage,Pink);
break;
case OP_BUYLIMIT : result = OrderDelete( OrderTicket() );
break;
case OP_SELLLIMIT : result = OrderDelete( OrderTicket() );
break;
case OP_BUYSTOP : result = OrderDelete( OrderTicket() );
break;
case OP_SELLSTOP : result = OrderDelete( OrderTicket() );
}
}