For cancelling other trades, use a global variable "CancelOtherTrades" that is set and evaluated by the TMF.

Code:
int MyTMF()
{
  if(TradeIsPending and CancelOtherTrades == 1)
    return 1;
  if(TradeIsOpen) {
    CancelOtherTrades = 1;
    ThisTrade->manage = 0; // terminate the TMF
  }
  return 0;
}